Show Posts
|
|
Pages: [1] 2
|
|
1
|
International / Français / Re: Metro, shift register 74hc595, interuption , un beau casse tete!!!
|
on: January 25, 2013, 11:36:10 am
|
je cherche a comprendre mieux métro, mais je ne suis pas un as de la programmation, en fait je suis un parfait néophyte, j'ai réussit a coder deux ou fois truc en recopiant des bouts de codes a droit a gauche l’année dernière sur des utilisations de waveshield, mais je suis assez mauvais en anglais (mais les traduction google m'aident un peu, ) et je n'ai pas été longtemps à l’école : alors je m'y attelle à tâtons et les didacticiels du site du zero sont en berne!!! comme je le disais, les élément ou je me permet du delay surviennent à un moment ou le reste du système est immobilisé, cela dit , en vue d’améliorations futurs .... mais j'ai du mal à piger le truc pour faire des chenillards en metro , je viens de tomber sur ca: http://playground.arduino.cc/Code/Timer ca a l'air bien aussi mais je m'y perd un peu... si tu peut m'orienter sur l’utilisation de metro avec 9 led parce que je n'arrive qu'a les faire clignoter toutes ensembles, merci
|
|
|
|
|
2
|
International / Français / Re: Metro, shift register 74hc595, interuption , un beau casse tete!!!
|
on: January 24, 2013, 03:34:17 pm
|
excusez ma confusion, je ne suis pas trop rigoureux ,j' ai testé pleins de truc et je me melange, la j"en suis là, #include <Servo.h> #include <Metro.h> Metro ledMetro = Metro(1500); Servo myservo; boolean etat = HIGH;
const int buttonPin = 2; // bouton sur pin 2 const int reedrelay = 12; // led 12 sortie pour reed int ledPins[] = {14,15,16,17,18,19,8,10,11}; int buttonState = 0;
void Mapattern() { int delayTime = 200; for(int i = 8; i >= 0; i--){ digitalWrite(ledPins[i], HIGH); delay(delayTime); } for(int i = 0; i <= 8; i++){ digitalWrite(ledPins[i], LOW); delay(delayTime); } }
void setup() { pinMode(reedrelay, OUTPUT); pinMode(buttonPin, INPUT); myservo.attach(9); // servo sur pin 9 myservo.write(40); //initialise le servo en position repos zero delay(20); // pour stabilisation }
void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { // bouton etat haut detecté digitalWrite(reedrelay, HIGH); // led ON delay(100); myservo.write(178); // va en butée inverse delay(350); // stabilisation 250 ms digitalWrite(reedrelay, LOW); // led OFF myservo.write(40); // retour en zero delay(20); // pour stabilisation Mapattern(); } else { if (ledMetro.check() == 1) { // check if the metro has passed it's interval .
for (int i = 0; i <= 8; i++ ) { digitalWrite(ledPins[i], etat); etat=!etat; for(int i = 8; i >= 0; i--){ digitalWrite(ledPins[i], etat); }}}}
//verifier les histoires de chenillard }
ca marche , mais c'est pas le top niveau création de paterne lumineuses
|
|
|
|
|
3
|
International / Français / Re: Metro, shift register 74hc595, interuption , un beau casse tete!!!
|
on: January 24, 2013, 10:34:07 am
|
heu c'est pour moi la question? si oui , j'ai juste trouvé aucun exemple de code comme ca , alors comme je suis un novice qui fait des test avec des arduino qui fonctionnent, des fois , en piquant des bouts de codes a droite a gauche,mais qui n'ai aucune formation ni en elec ni en programmation ,(mais je jouais beaucoup aux lego )je me disait que peut être que ca marche que sur 2.3.4 comme les interruptions sur 2 et 3 par exemple, je me pose peut être trop de questions , un peu comme dans la vie?  mais si tu me dit que ca ne pose pas de problème, alors voila déjà une avancé pas mal, là j'ai donc des del sur 3->19 mais si je passe en 74hc595 ça libéré de la place oups je viens de me rendre compte que j'ai 9 lampe a gérer donc un 74hc595ne suffit plus argll!!! donc je reste comme je suis mais je dois trouver comment temporiser mes animations avec autre chose que delay!!!!! quelqu'un saurait m'orienter? j'ai déjà essayé de comprendre mstimer2 et metro mais je ne vois pas comment on fait avec 9 led merci
|
|
|
|
|
4
|
International / Français / Metro, shift register 74hc595, interuption , un beau casse tete!!!
|
on: January 24, 2013, 08:25:29 am
|
bonjour, je suis en train de chercher comment , associer tout ca: Metro, shift register 74hc595 et interuption Mon programme doit commander une animation lumineuse de 8 led, donc j'opte pour l'utilisation du registre shift qui permet de coder ça en séquence binaire bien pratique car visuelles, Cette animation doit pouvoir être interrompue à tout moment par un appui sur un bouton , que j'ai donc câblé en pin2 pour bénéficier de l’interruption, qui, lui déclenche un relais qui commande une prise d'image , un servo moteur et une autre animation lumineuse.la partie italique ne me pause pas de problème, pour l'instant mais je n'ai pas encore intégrer le 74h595 cela dit, si je m'en tiens a ce que je lis , ce CI a besoin des pin 2.3.4 or j'y ai un bouton (sur la 2) et qui doit être hyper réactif, j'ai un peut de mal à piger l'utilisation de metro pour intercaler mes allumage/extinction de leds et la doc la dessus est un peut maigre, je précise que l'utilisation de delay() est impossible en première partie pour ne pas rater l’appui sur le bouton mais que ca ne pause pas de problème après cet appui, voici le code #include <Servo.h>
Servo myservo;
const int buttonPin = 2; // bouton de la ciblesur pin 2 const int ledPin = 12; // led 12 sortie pour relais reed int ledPins[] = {14,15,16,17,18,19,8,10,11}; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); myservo.attach(9); // servo sur pin 9 myservo.write(40); //initialise le servo en position repos zero delay(20); // pour stabilisation }
void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { // bouton etat haut detecté digitalWrite(ledPin, HIGH); // led ON delay(1000); myservo.write(178); // va en butée inverse delay(250); // stabilisation 250 ms digitalWrite(ledPin, LOW); // led OFF myservo.write(40); // retour en zero delay(20); // pour stabilisation
/* si la cible est atteinte, les led font un truc a la k2000 à etoffer plus tard */ int delayTime = 100; for(int i = 8; i > 0; i--){ digitalWrite(ledPins[i], HIGH); delay(delayTime); for(int i = 1; i <= 8; i++){ digitalWrite(ledPins[i], LOW); delay(delayTime); } }for(int i = 0; i <= 8; i++){ digitalWrite(ledPins[i], HIGH); delay(delayTime); for(int i = 8; i >= 0; i--){ digitalWrite(ledPins[i], LOW); delay(delayTime); } } } //reste a intégrer des animation (type MaFonction1,MaFonction2...)avant l'impact } bonne journée et merci a ceux qui prendrais le temps de me lire et de me conseiller, parce que la je sèche un peu
|
|
|
|
|
6
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 21, 2013, 02:32:14 am
|
bonjour, bein je continue...maintenant que j'ai intégré une interruption, j'ai bien réussi a récupérer mon impulsion mais je n'arrive pas a mes fin concernant le servo, //leds ok relais ok mais pas servo #include <Servo.h> Servo myservo; const int relayreed = 12; // pin 12 sortie pour reed appareil photo; int impact = 0; int ledPins[] = {14,15,16,17,18,19,8,10,11,};
void setup() { attachInterrupt( 0, mouche, RISING ); for(int i = 0; i < 9; i++){ pinMode(ledPins[i],OUTPUT); pinMode(relayreed, OUTPUT); myservo.attach(9); // servo sur pin 9 myservo.write(45); //initialise le servo en position repos zero } }
void loop() { if (impact == 1) { // si un choc a été détecté photo(); } { oneAfterAnotherLoop(); }}
void photo(){ digitalWrite(relayreed, HIGH); myservo.write(178); // va en butée inverse delay(20); // pour stabilisation myservo.write(45); // retour digitalWrite(relayreed, LOW); // led OFF delay(20); // pour stabilisation impact = 0; } void mouche(){ impact = 1; } void oneAfterAnotherLoop(){ int delayTime = 100; //the time (in milliseconds) to pause between LEDs //make smaller for quicker switching and larger for slower //Turn Each LED on one after another for(int i = 0; i <= 8; i++){ digitalWrite(ledPins[i], HIGH); //Turns on LED #i each time this runs i delay(delayTime); //gets one added to it so this will repeat } //8 times the first time i will = 0 the final //time i will equal 7; //Turn Each LED off one after another for(int i = 8; i >= 0; i--){ //same as above but rather than starting at 0 and counting up //we start at seven and count down digitalWrite(ledPins[i], LOW); //Turns off LED #i each time this runs i delay(delayTime); //gets one subtracted from it so this will repeat } //8 times the first time i will = 7 the final //time it will equal 0 }
donc j'ai mes p'tites lumières, ma photo mais pas de relevage,
|
|
|
|
|
7
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 20, 2013, 09:50:43 am
|
bonjour , nouveau blocage! j' ai intégré une deco lumineuse, qui fonctionne , pour l'instant la fonction est simple, mais par contre la lecture de mon bouton se fait en fin de boucle lumineuse, je voudrais donc attacher une fonction interupt, mais je crois savoir qu'on ne peut pas utiliser delay avec, voici le code #include <Servo.h>
Servo myservo;
const int buttonPin = 2; // bouton sur pin 2 const int relayreed = 12; // led 12 sortie pour reed appareil photo
int buttonState = 0;
int ledPins[] = {14,15,16,17,18,19,8,10,11,};
void setup() { for(int i = 0; i < 9; i++){ pinMode(ledPins[i],OUTPUT); pinMode(relayreed, OUTPUT); pinMode(buttonPin, INPUT); myservo.attach(9); // servo sur pin 9 myservo.write(45); //initialise le servo en position repos zero delay(20); // pour stabilisation } }
void loop() { oneAfterAnotherLoop();
buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { // bouton etat haut detecté digitalWrite(relayreed, HIGH); // led ON myservo.write(178); // va en butée inverse delay(250); // stabilisation 250 ms digitalWrite(relayreed, LOW); // led OFF myservo.write(40); // retour en zero delay(20); // pour stabilisation {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], HIGH); //allume tout delay(100); } {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], LOW); //etteind tout delay(100); } {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], HIGH); //allume tout delay(100); } {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], LOW); //etteind tout delay(100); } {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], HIGH); //allume tout delay(100); } {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], LOW); //etteind tout delay(100); } }} void oneAfterAnotherLoop(){ int delayTime = 300; for(int i = 0; i <= 8; i++){ digitalWrite(ledPins[i], HIGH); delay(delayTime); }
for(int i = 8; i >= 0; i--){ digitalWrite(ledPins[i], LOW); delay(delayTime); } } en plus je ne parvient pas a faire un effet flash (tout les led allumée /eteintes 3x, bref je coince et si une bonne ame qui passe par là peut"corriger ma copie" ca m'aiderais grandement Merci
|
|
|
|
|
9
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 07, 2013, 09:18:23 am
|
|
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,
|
|
|
|
|
10
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 06, 2013, 09:55:49 am
|
|
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;
|
|
|
|
|
12
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 06, 2013, 07:13:45 am
|
|
pour etre precis, le montage pausé sur la table, sans rien toucher , la led clignote, de temps en temps ,
|
|
|
|
|
14
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 06, 2013, 06:26:17 am
|
rebonjour ca a l'air mieux effectivement ,(c'est ce que je faisait de mon coté pendant ta reponse,  merci, mais saurais tu comment je peux sécuriser la chose histoire de ne pas déclencher sans raisons , car même si c'est moins fréquent, ca arrive encore oui , je suis sur le 5v de l'arduino, pas bien???
|
|
|
|
|
15
|
International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!!
|
on: January 06, 2013, 06:04:41 am
|
|
merci pour vos réponses , rectification , ca semble plutot bien, je modifie les valeur de timming mais ca semble être ok avec toutefois des parasites, peut on faire quelque chose pour gérer les rebonds et autres parasite?? un moindre geste qui frolle la patte 2 et ça déclenche, même un simple fil relié à rien inséré suffit à déclencher.
|
|
|
|
|