Aller au contenu


Photo
- - - - -

L293D : Défaut de fabrication ?


3 réponses à ce sujet

#1 Tsou'

Tsou'

    Nouveau membre

  • Membres
  • 31 messages
  • Gender:Female

Posté 19 mars 2014 - 12:14

Bonjour,

J'aimerais avoir quelques avis concernant le problème que je rencontre, je suis en plein test du L293D et je suis entrain de coder toute la partie programmation de mon futur petit engin.
J'ai donc utilisé une breadboard, sur laquelle j'ai fait mes divers branchements, qui fonctionnent pour tout sauf ... une pin out, il s'agit de la 3Y. (http://www.ti.com/lit/ds/symlink/l293d.pdf)
Chose assez embêtante, quand j'utilise mon voltmètre pour voir ce qui sort des différentes pin, toutes les pin out me sortent du 2 ~ 2.2V sauf celle-là. Mes différentes led s'allument aussi correctement, sauf bien sûr, celle connectée à la pin 3Y. Il s'agit de la partie "Motor right turns right" de mon code, et de la led verte de droite, située sur la ligne 'g' de ma breadboard.

Ici deux photos de mon montage (Ce n'est pas très voyant, mais les deux pins enable sont connectées entre-elles. Je les mets HIGH quand je veux faire tourner les moteurs, et en LOW quand je veux les couper.)
P3190001.JPG

P3190004.JPG

Et voici mon code,

import RPi.GPIO as GPIO, time

GPIO.setmode(GPIO.BCM)
enable = 14 # Two pins enable are inter-connected

motorLeftA = 24 # 1A, take a look at the data-sheet
motorLeftB = 23 # 2A

motorRightA = 21 # 3A
motorRightB = 22 # 4A

# Enabling the pins, and avoiding it to be HIGH
GPIO.setup(enable, GPIO.OUT)
GPIO.output(enable, GPIO.LOW)
GPIO.setup(motorLeftA, GPIO.OUT)
GPIO.output(motorLeftA, GPIO.LOW)
GPIO.setup(motorLeftB, GPIO.OUT)
GPIO.output(motorLeftB, GPIO.LOW)
GPIO.setup(motorRightA, GPIO.OUT)
GPIO.output(motorRightA, GPIO.LOW)
GPIO.setup(motorRightB, GPIO.OUT)
GPIO.output(motorRightB, GPIO.LOW)


#----------------------
# Motor left turns left
#----------------------
#GPIO.output(motorLeftA, GPIO.HIGH)
#GPIO.output(motorLeftB, GPIO.LOW)

#-----------------------
# Motor left turns right
#-----------------------
GPIO.output(motorLeftA, GPIO.LOW)
GPIO.output(motorLeftB, GPIO.HIGH)

#-----------------------
# Motor right turns left
#-----------------------
#GPIO.output(motorRightA, GPIO.HIGH)
#GPIO.output(motorRightB, GPIO.LOW)

#------------------------
# Motor right turns right
#------------------------
GPIO.output(motorRightA, GPIO.LOW)
GPIO.output(motorRightB, GPIO.HIGH)

# Enable to HIGH
GPIO.output(enable, GPIO.HIGH)

time.sleep(3)

GPIO.cleanup()


#2 transistance

transistance

    Habitué

  • Membres
  • PipPip
  • 411 messages

Posté 19 mars 2014 - 11:20

Bonjour,

Il faut procéder par étape. Ecarte la partie informatique en testant ton double pont en H à base de L293D (tu ne le précise pas mais je suppose que c'est l'utilisation que tu en fait) seul. Donc, en pratique il faut refaire au moins 2 tests :
- L'un en mettant l'entrée broche 10 à l'état bas via un fil et l'entrée broche 15 à l'état haut via un 2éme fil sans oublier la broche ENABLE à l'état haut par un dernier fil.
- Pour l'autre test il suffit d'inverser les états sur les entrées 10 et 15. Si ça ne marche toujours pas (à supposé que ton montage soit correct et exempt de défaut...par ex un fil qui se coupe dans la gaine ça se voit pas mais ça rend faux ton montage) c'est que ton L293D est cuit... et il y a peu de chance que ce soit un "Défaut de fabrication"...

Le mieux serait d'avoir un second L293D tout neuf pour être fixé.

Au pire, un pont en H c'est relativement rapide, simple et pas cher à faire (pour des petits moteurs, 2 NPN type 2n2222, 2PNP type 2N2907, 4 diodes types 1N4148 et hop!)

N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"


#3 Tsou'

Tsou'

    Nouveau membre

  • Membres
  • 31 messages
  • Gender:Female

Posté 19 mars 2014 - 01:41

Merci pour ta réponse.

J'ai donc fait les différents tests, et je cerne déjà mieux le problème. Quand je n'utilise pas d'informatique, que j'alimente les différentes entrées avec le voltage qui convient, ça fonctionne parfaitement.
J'ai donc testé la chose, avec mon montage précédent, en alimentant en 3.3V les entrées qui convenaient. Résultat... Ca fonctionne. J'ai donc utilisé mon voltmètre pour tester un peu le tout, ça semble correct. Mais une fois que je remplace le 3.3V par mon GPIO (n° 21), ça ne fonctionne plus. Un second coup de voltmètre m'indique que ... Le GPIO ne sort absolument rien, pas même un dixième de volt, absolument rien.
J'ai re-re-(re...)vérifié le code, l'ortographe de mes variables a l'air bonne, tout est initialisé comme il faut. Je ne sais donc pas trop quel peut être le problème. Je vais tester avec un autre GPIO, mais ça m'embêterait un peu d'en savoir un défectueux.

Edit : En changeant de GPIO ça fonctionne tout à fait... J'ai utilisé mon voltmètre sur le GPIO, il ne me sort rien. (il s'agit de la broche n°13, correspondant au GPIO n°21)

#4 transistance

transistance

    Habitué

  • Membres
  • PipPip
  • 411 messages

Posté 19 mars 2014 - 06:00

Content d'avoir été utile ! :)

Pour ton histoire de GPIO, c'est vrai qu'il est assez fragile. Une petite isolation galvanique quand c'est possible (via photocoupleurs par exemple) entre le GPIO du RPI et le monde extérieur n'est pas du luxe et se révéle souvent salvateur quand on bidouille.

N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"




Répondre à ce sujet



  


1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users