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 :smiley-red
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à,
Code:
#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? smiley-roll-blue

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
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
5  International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!! on: January 21, 2013, 04:24:05 pm
ha non en fait la photo ne se fait qu'a la fin de la pattern lumineuse, pas d’interruption  smiley-cry smiley-cry smiley-cry
comprend pô!!!!!
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,

Code:
//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
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
8  International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!! on: January 07, 2013, 10:35:21 am
breadboard, je pense que c'a venais de la ,
-> ok B@tto je vais faire un tour sur les liens , 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;
11  International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!! on: January 06, 2013, 08:28:29 am
tu m'en dirais un peut plus??? c'est quoi le debouncing , (en gros je vois , mais techniquement ? du code a rajouter?) merci
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 ,
13  International / Français / Re: un bouton , un servo, un arduino, plus de cerveau!!! on: January 06, 2013, 06:46:11 am
meme sans le servo dans le circuit, ca"clignotte" 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,  smiley-wink 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.
Pages: [1] 2