MagPI 8 Page 7

De Le French MagPi
Aller à : Navigation, rechercher

et qui fonctionneront néanmoins ensemble sur le même circuit.


Enfin, nous pouvons voir que pour faire tourner les moteurs, il faut activer GPIO 1 et GPIO 2. Pour les faire tourner en sens inverse, nous devons activer GPIO 3 et GPIO 4. Les articles du MagPi "Sous contrôle" contiennent les informations nécessaires concernant la façon de programmer cela et si vous réalisez ce circuit, alors vous pourriez envisager de concevoir ce programme comme défi pour le mois prochain !


Si, comme moi, vous fabriquez un robot différentiel équipé de deux moteurs, vous aurez besoin de deux de ces circuits, un pour chaque moteur. Cela implique qu'au total vous utiliserez jusqu'à 8 de vos GPIO, ce qui ne laisse pas beaucoup d'entrées ou de sorties de libres pour le reste du robot.

Avertissement de sécurité :

Il peut arriver à certains moments que les deux moteurs soient dirigés, quatre broches du GPIO vont alors envoyer 12 mA chacune. Cela représente un total de 48 mA. Le courant maximum total que le connecteur GPIO entier puisse fournir à un moment donné est de 51 mA.


Alimenter un pont en H directement depuis les broches GPIO atteint quasiment les limites absolues pour agir en terme de sécurité. Afin de pouvoir utiliser toute autre sortie, il serait d'abord nécessaire de mettre toutes les broches GPIO du pont en H à l'état bas pour permettre au courant d'être envoyé ailleurs.


Pour conclure, le courant que le GPIO est capable de fournir étant relativement bas, nous devons chercher un transistor avec un hFE élevé et pouvant également supporter 3 ampères. De tels transistors sont des solutions réellement onéreuses !

À venir...... ?

La prochaine fois, je décrirai un moyen d'augmenter considérablement le nombre de GPIO de votre Raspberry Pi grâce au bus I2C et à un circuit bon marché appelé MCP23008. Cette méthode résoudra le problème de la limitation du courant et permettra à votre robot de bénéficier d'encore plus d'entrées et de sorties tout en rendant possible l'utilisation dans notre circuit de transistors beaucoup moins chers et de hFE plus bas.


BasicGPIOBridgeControl.py :

#! /usr/bin/python
import time
import RPi.GPIO as GPIO

#----------------------------IMPORTANT ------------------------------ #IF GPIO 0, 1 est "1" THEN GPIO 2, 3 doit être "0" ELSE transistor en court-circuit ! #--------------------------------------------------------------------
GPIO.setup(1, GPIO.OUT) GPIO.setup(2, GPIO.OUT) GPIO.setup(3, GPIO.OUT) GPIO.setup(4, GPIO.OUT)
#Fait tourner le moteur en avant pendant 3 secondes GPIO.output(1, True) GPIO.output(2, True) time.sleep(3) #Arrête le moteur GPIO.output(1, False) GPIO.output(2, False) #Fait tourner le moteur à l'envers pendant 3 secondes GPIO.output(3, True) GPIO.output(4, True) time.sleep(3) #Arrête le moteur GPIO.output(3, False) GPIO.output(4, False)

REMARQUE : Si le robot utilise deux moteurs, le programme aurait besoin d'un jeu de 4 GPIO supplémentaires pour contrôler un second pont en H.


Article de Bodge N Hackitt

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils