Go Down

Topic: un bouton , un servo, un arduino, plus de cerveau!!! (Read 2 times) previous topic - next topic

moelleux

ok mais je ne crois pas que le probleme vienne de la , si je met un bout de patte de resistance ou un fil dans le pin 2, ca fait du yoyo , la led clignote et le servo piétine en position haute (sans rien brancher au bout) ca le fait aussi avec un autre arduino, donc c'est pas un probleme de board...j'ai aussi changer l'interupteur, mêmes symptomes;

moelleux



   
une bonne nuit de sommeil, et sans rien changer tout est rentré dans l'ordre.... mon rationalisme en prend un coup, j'aimerais bien parvenir a recréer le truc pour comprendre, en tout cas merci a vous, maintenant je voudrais rajouter rajouter un "chenillard" sur le système,

par exemple des lampes (un peut comme un vieux flipper ou un manege par exemple je possède 8 lampes un peu retro que je voudrais voir d'allumer une après l'autre sur une séquence reguliere (ou même fantaisiste), mais qui s'allumeraient toutes ensemble en cas de contact sur mon bouton genre flash 3x
avec des transistores (j'ai plein de pict31c)

les exemples ne manquent pas sur le net pour coder ca mais ce qui m'embête c'est qu'il me semble que je vais perdre le coté instantané non? comment melanger le code d'un chenillard je ne comprend pas bien les histoires d'unteruption,

B@tto

Il faut se servir des interruptions temporelles, il y a des libs pour simplifier le code mais c'est vraiment pas dur à comprendre donc jte conseille de t'y pencher 10 min ça te sera très utile ;)

http://playground.arduino.cc//Main/MsTimer2
http://playground.arduino.cc//Code/Metro

En gros il s'agit simplement de stocker la valeur millis() qui te donne le temps écoulé depuis le lancement du programme et d'y ajouter ton intervalle. Ensuite dans ta boucle tu compares cette valeur à millis(). Dès que millis() est supérieur à ta valeur, c'est que ton temps s'est écoulé et tu lances ta routines (éteindre ou allumer la LED par exemple). Ainsi du te passe des delay() et pendant ce temps tu peux faire autre chose.

C'est d'ailleurs ce qui se cache derriere les delay() : un compteur se remet à zero quand tu appelles la fonction, et quand il atteint le bon compte le code se poursuit. sauf que pendant qu'il compte tu ne fais rien ...

fdufnews

Quote
une bonne nuit de sommeil, et sans rien changer tout est rentré dans l'ordre.... mon rationalisme en prend un coup, j'aimerais bien parvenir a recréer le truc pour comprendre

Tu travailles sur une plaque d'essai ou sur un circuit soudé?
Par ce que sur les plaques d'essai, il y a assez souvent des mauvais contacts et on peut chercher longtemps la source d'un problème de ce genre qui disparait/réapparait  miraculeusement lorsque l'on bouge un fil ou déplace la plaque d'essai.

moelleux

breadboard, je pense que c'a venais de la ,
-> ok B@tto je vais faire un tour sur les liens , merci,

Go Up