arret moteur???

Bonjour tout le monde,

J'ai refait le montage donné sur ce site : http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads Tout se passe bien mais maintenant j'aimerai bien pouvoir à certains moments arrêter le moteur complétement mais je n'y arrive pas. Si quelqu'un a une idée, merci d'avance. Bonne journée

je n'ai pas trop regardé le tuto, mais pour arrêté u moteur DC, le plus simple c'est de mettre ses 2 bornes au VCC en même temps. Là, t'es sûr qu'il s'arrête net (c'est même un peu violent...)

sinon, pour ton montage, c'est qu'il y a probablement : - un courant résiduel sur la base du transistor (le fil qui va de la sortie PWM à la base ne serait-il pas un peu long et/ou proche d'un fil d'alim ?). - Ou que ta sortie PWM n'est jamais véritablement à "zéro" (est-ce que la tension présente sur ton entrée analogique ne se prend des parasites par exemple, ou que ton potar est falfouène ? )

J'aurais un gros faible pour une entrée analog qui ne serait jamais véritablement à zéro...

Tu arrives à régler la vitesse? Si non tu as un problème avec ton montage. Si oui, normalement lorsque le potentiomètre est au minimum le moteur devrait s'arrêter. S'il ne s'arrête pas mais qu'il tourne très lentement c'est que analogRead ne retourne jamais 0 sans doute le potentiomètre ne va-t-il pas complètement à zéro. Dans ce cas 2 possibilités: 1) la plus simple fixer un seuil et lorsque la valeur retournée par analogRead passe en dessous de ce seuil forcer analogWrite à 0. 2) la plus compliquée, voir les valeurs min et max retournées par analogRead et utiliser map pour passer dans l'espace des valeurs 0-255 attendu pas analogWrite (au lieu de la simple division par 256 qui est faite dans le code de l'exemple)

Je viens de regarder le lien que tu indiques. Encore une fois il n'y a pas de résistance en entrée du transistor (base). La jonction base-émetteur entre en saturation et le courant de base peut atteindre plusieurs dizaines de mA voire des centaines de mA avec +5V entre la base et l'émetteur!!! Il ne serait pas étonnant qu'un courant trop élevé dans une sortie même s'il ne détruit pas la sortie ne provoque pas des échauffements internes qui font que l'ATmega ne fonctionne plus normalement. Pour commencer essayes avec 1 ou 2kohms en série avec la pin de sortie arduino et la base du transistor.( plus voir nota en fin de message)

Le moteur est alimenté à partir du +5V de la platine arduino. Quelle est sa consommation ? Peut être qu'il écroule le régulateur en consommant trop ? Es-tu alimenté par l'USB, dans ce cas capacité de 500mA.

Si cela ne résouds pas ton problème tu peux envisager de créer un seuil pour te donner une imunité au bruit. Soit la solution logicielle qu'on t'as indiqué soit une solution matérielle.

[u]Premier conseil[/u] pour se protéger des rayonnement parasites (ton TIP a un très grand gain, hfe=1000, il ne lui faut beaucoup pour se mettre à conduire) il faut soigner le cablage. 1) Alim breadboard: pour relier la masse (GND) et l'alim (+5V) utilise deux fils torsadés,spirale assez serrée, ça améliore grandement les choses. 2) places la résistance au plus prés de la base du TIP. 3) pour relier la résistance à l'arduino utilises aussi deux fils torsadés, l'un classiquement réunira la pin de l'arduino à la résistance de base, l'autre qui fera office de blindage sera relié au GND en UNE seule extrémité, [u]l'autre extrémité restant en l'air[/u] sinon tu va créer des courants de masse encore plus perturbateurs. Quelle extrémité relier au GND : en principe du coté utilisation c'est à dire à l'endroit où l'émetteur du transistor est connecté au GND, mais l'électronique des rayonnements est trés complexe et conserve ses mystères et il faut rester humble : dès fois c'est en reliant coté émission (c'est à dire Arduino) que cela fonctionne le mieux surtout que dans ton cas on utilise deux platines séparées l'arduino et la breadboard. Clairement quand des problèmes de rayonnement se posent il faut soigner trés fortement le cablage (il doit être le plus court possible, les fils doivent être fixés et ne plus bouger, le scotch est très utile) et ne pas hésiter à laisser de coté la breadboard pour passer à la plaquette à trous métalisés et au fer à souder.

Solution matérielle : [u]Deuxieme conseil[/u] : Tu peut créer un "seuil de protection" en insérant une diode entre la masse (GND) et l'émetteur du TIP. Tu auras environ 0.8V d'immunité au bruit. Choisir une diode qui accepte le même courant que celui qui passe dans le moteur. Bien sur comme rien n'est gratuit tu perdras 0.8V en amplitude de modulation. Mais même avec une solution logicielle tu perdras, la différence c'est qu'avec le logiciel tu peux faire varier l'amplitude du seuil comme tu le souhaites alors qu'avec une diode c'est par pas de 0.8V.

Nota : En cliquant sur le lien interne à l'article tu as accès à la Datasheet du TIP-120. Tu peux y touver le schéma de ton TIP120 qui est un darlington ( montage à 2 transistors , le premier sert d'amplificateur de courant , le deuxièmme délivre la puissance). Le schéma page 4 de la datasheet est pour la version PNP, pour l'avoir en NPN tu inverses le sens de la fléche pour les emetteurs et tu mets des tensions positives au lieu des négatives. On trouve 2 jonctions base émetteur en série soit environ 2 fois 0.8v = 1.6 V. Ne dépasses pas 2 volts/2.5V sur la base du TIP120, sans quoi tu imposes un courant de saturation dans la base qui peut atteindre plusieurs dizaines de mA voire des centaines de mA et ces mA sont fournis par l'arduino (20mA max par sortie !). Le gain hfe du TIP est égal à 1000, ce qui veut dire que si ton moteur consomme 100mA il suffira de 0,1mA pour le commander. Calcul de la résistance de base : Ic = courant dans le moteur Ib = Ic/1000 Vs = tension de commande max : sortie PWM maximale soit +5Volt permanent Vb = 2*0.8V = 1.6Volt

Rb= (5 - 1.6)/ib

La valeur de Rb n'est pas précise, tu prend à 1 ou 2kohms prés selon ce que tu as au fond de ton tiroir.

le topic ne dériverait-il pas un peu ?

Carouch a-t-il eu sa réponse et / ou trouvé une solution par rapport aux éléments qui lui ont été apportés ?

Edit de Jean-François :

J'ai coupé le sujet en deux.