Dans ce chapitre au titre étrange, je vais vous présenter un composant incontournable lorsque vient le temps d'interfacer l'Arduino avec d'autres circuits et qu'il est nécessaire de le protéger de tensions qui sont différentes: l'opto-coupleur ou opto-isolateur.
Si nous pouvions ouvrir un tel composant et examiner les éléments qui le composent, nous aurions:
- l'équivalent d'une led,
- l'équivalent d'un photo-transistor (qui s'apparente à une cellule photo-électrique),
www.ermicro.com/blog
Le fonctionnement est simple: lorsque la led émet (en appliquant un courant entre les bornes 1 et 2), le photo-transistor est activé et autorise le passage d'un courant entre ses deux pôles (4 et 5). On remarque immédiatement l'intérêt de ce composant: il n'y a aucun lien physique entre le circuit qui alimente la led et celui qui sert d'interrupteur. Les deux circuits sont isolés l'un de l'autre! et les tensions qui les traversent peuvent être différentes: 5V et 12V par exemple.
Dans la pratique, il existe de nombreux types d'opto-coupleurs, acceptant différents courants et réagissant plus ou moins vites aux changements d'état... Ici, j'utilise le classique 4n35. Il est très polyvalent lorsqu'on désire simplement protéger deux circuits et que la vitesse de basculement n'est pas primordiale.
Les branchements sont simples: on alimente la led avec un courant de 20 à 60mA, orienté comme s'il s'agissait d'une led habituelle. Les ports 4 et 5 servent d'interrupteur. Dans l'exemple du 4n35, le voltage maximum est de 30V et le courant de 100mA (environ) dans le sens "5 vers 4" soit "collecteur vers émetteur". On fera bien attention aux caractéristiques des opto-coupleurs utilisés. La tension acceptée peut être très différente d'un modèle à l'autre...
On remarquera que les ports utilisés sont les 1, 2, 4 et 5.
Si nous désirons simuler un interrupteur contrôlé par une sortie de l'Arduino, alors nous construirons le montage suivant:
Dans cet exemple, l'Arduino contrôle un opto-coupleur 4n35 à l'aide du port de sortie 10. Un signal
Quelques mots sur ce montage:
- la résistance 470ohm sur le port 1 du 4n35 protège la led interne
- le port 5 est connecté à une led de visualisation avec sa résistance de protection
- les ports 2 et 4 sont reliés au
GND - les deux
GND sont reliés afin d'avoir le même point de référence - on prendra soin de bien faire attention au sens des courants qui traversent les ports 1 et 2 ainsi que 5 et 4.
Quelques lignes de programmation permettent d'activer l'interrupteur:
void setup()
{
pinMode( sortie_opto, OUTPUT );
}
void loop()
{
delay( 1000 );
delay( 1000 );
}
Remarque: le fonctionnement de ce montage s'apparente à celui utilisant un transistor TIP122 (vu précédemment) dans le sens où il est possible de contrôler un circuit de voltage différent. On peut faire l'essai avec un signal PWM et faire varier l'intensité lumineuse d'une led... Cependant, il faut vérifier les caractéristiques de l'opto-coupleur afin de s'assurer que la vitesse de basculement est suffisemment rapide... Dans le cas du 4n35, j'ai pu faire le test et reproduire l'exemple du fader comme suit:
void setup()
{
pinMode( sortie_opto, OUTPUT );
}
void loop()
{
for ( int i = 0; i < 256; i += 10 )
{
analogWrite( sortie_opto, i );
delay( 30 );
}
for ( int i = 256; i > 0; i -= 10 )
{
analogWrite( sortie_opto, i );
delay( 30 );
}
}
A l'inverse, il peut être nécessaire de "lire" un signal entrant alors qu'il n'est pas possible de se brancher directement sur le circuit externe. L'opto-coupleur agira exactement comme dans l'exemple suivant, mais en inversant les connections...
Ainsi, le circuit externe contrôlera la led alors qu'une entrée de l'Arduino sera connectée à la partie interrupteur de l'opto-coupleur. Il en résulte le montage suivant (on remarquera l'orientation "tête en bas" de l'opto-coupleur)
Le circuit externe alimenté en 12V est contrôlé par un bouton poussoir... Lorsque le circuit est fermé, la led du 4n35 est alimentée, créant ainsi un jonction entre les ports 5 et 4 de l'opto-coupleur.
Remarque: ici, la logique du signal est différente: lorsque la jonction 5 vers 4 est fermée, le signal produit est
En effet, si on examine le montage: le port 5 de l'opto-coupleur est connecté d'une part à l'entrée 2 de l'Arduino et d'autre part au
On pourrait tout à fait effectuer le branchement inverse, mais nous avons vu précédemment qu'il était plus facile de détecter un état
Enfin, pour vérifier le bon fonctionnement, nous connectons une led de contrôle sur le port 6 de l'Arduino. Voyons les lignes de programmation qui sont nécessaires:
int sortie_led = 6;
void setup()
{
pinMode( entree_opto, INPUT );
pinMode( sortie_led, OUTPUT );
}
void loop()
{
if ( digitalRead( entree_opto ) == LOW )
{
digitalWrite( sortie_led, HIGH );
}
else
{
digitalWrite( sortie_led, LOW );
}
}
Encore une fois, nous avons pu utiliser un signal externe 12V sans risque pour l'Arduino.
Aucun commentaire:
Publier un commentaire