[TUTORIEL] Contrôler un composant externe à partir d'un GPIO
Posté : sam. 20 déc. 2014 17:58
Contrôler un composant externe à partir d'un GPIO : adapter la tension de contrôle
De nombreux composants et autres circuit externes peuvent être contrôlés par le PI, comme un servomoteur, une carte contrôleur de moteurs, ou même une simple led.
Ces cartes ou composants présentent des "ports de contrôles" pour les commander.
Deux questions se posent alors :
1. Comment alimenter le composant ?
2. Comment le commander ?
Premier réflexe : on lit le datasheet du composant !
1. Alimentation
Le datasheet fournit tension et intensité d’alimentation. Si le besoin dépasse les possibilités du PI, il faut avoir recourt à une alimentation adaptée, séparée.
2. Contrôle
Le contrôle du composant est lui aussi spécifié dans le datasheet. Il pourra (entre autre, mais c'est le plus courant) s'agir de :
-envoyer frais ou faux sous forme d'une tension présente (vrais) ou non (faux), pour par exemple allumer ou éteindre le composant.
-envoyer une "pulsation" sur le port, selon une certaine fréquence, pour contrôler la position d'un servomoteur par exemple.
Dans les deux cas, il faudra s'assurer (toujours avec le datasheet) que le pi peut :
-fournir la tension nécessaire
-fournir l’intensité nécessaire
Si la tension de commande est supérieure à la tension que peut fournir le pi (3.3V sur un GPIO), comment adapter la tension ? Quelques composants passifs et une alimentation externe à la bonne tension va nous le permettre.
Les deux images ci-dessous montrent un même circuit. Les cercles verts représentent des voltmetres. A gauche est mesurée la tension fournie par le GPIO, à droite la tension obtenue.
L'exemple permet de produire une tension de contrôle de 9V à partir d'un GPIO.
Ici, le GPIO envoie "faux" sous la forme de 0V (quelques micro-volts mesurées), et la tension de contrôle restituée reste de 0V (quelques millivolts mesurés).
Ici, le GPIO envoie "vrais" sous la forme de 3.3V (3.3V mesurés), et la tension de contrôle restituée est de 9V (9V mesurés).
Le choix des transistors se fait en lisant leurs datasheet respectif. Les 2N2222 font l'affaire jusque 30V.
Ces transistors "s'ouvent" et se "ferment" à priori assez vite (il faudra le vérifier par la pratique) pour permettre la pulsation type PWM.
PS : un grand merci evotk pour son aide (c'est un euphémisme !) à la mise au point !
De nombreux composants et autres circuit externes peuvent être contrôlés par le PI, comme un servomoteur, une carte contrôleur de moteurs, ou même une simple led.
Ces cartes ou composants présentent des "ports de contrôles" pour les commander.
Deux questions se posent alors :
1. Comment alimenter le composant ?
2. Comment le commander ?
Premier réflexe : on lit le datasheet du composant !
1. Alimentation
Le datasheet fournit tension et intensité d’alimentation. Si le besoin dépasse les possibilités du PI, il faut avoir recourt à une alimentation adaptée, séparée.
2. Contrôle
Le contrôle du composant est lui aussi spécifié dans le datasheet. Il pourra (entre autre, mais c'est le plus courant) s'agir de :
-envoyer frais ou faux sous forme d'une tension présente (vrais) ou non (faux), pour par exemple allumer ou éteindre le composant.
-envoyer une "pulsation" sur le port, selon une certaine fréquence, pour contrôler la position d'un servomoteur par exemple.
Dans les deux cas, il faudra s'assurer (toujours avec le datasheet) que le pi peut :
-fournir la tension nécessaire
-fournir l’intensité nécessaire
Si la tension de commande est supérieure à la tension que peut fournir le pi (3.3V sur un GPIO), comment adapter la tension ? Quelques composants passifs et une alimentation externe à la bonne tension va nous le permettre.
Les deux images ci-dessous montrent un même circuit. Les cercles verts représentent des voltmetres. A gauche est mesurée la tension fournie par le GPIO, à droite la tension obtenue.
L'exemple permet de produire une tension de contrôle de 9V à partir d'un GPIO.
Ici, le GPIO envoie "faux" sous la forme de 0V (quelques micro-volts mesurées), et la tension de contrôle restituée reste de 0V (quelques millivolts mesurés).
Ici, le GPIO envoie "vrais" sous la forme de 3.3V (3.3V mesurés), et la tension de contrôle restituée est de 9V (9V mesurés).
Le choix des transistors se fait en lisant leurs datasheet respectif. Les 2N2222 font l'affaire jusque 30V.
Ces transistors "s'ouvent" et se "ferment" à priori assez vite (il faudra le vérifier par la pratique) pour permettre la pulsation type PWM.
PS : un grand merci evotk pour son aide (c'est un euphémisme !) à la mise au point !