Bonjour à tous,
je suis débutant sur Arduino et je rencontre un petit problème avec mon montage. Pour être bref, je réalise un petit séquenceur (genre chenillard) dont je règle la vitesse via un contacteur rotatif à 5 positions.
Tout ceci fonctionne, mais j'aimerai pouvoir initialiser la séquence depuis ma console qui peut envoyer du 5v. J'ai placé une résistance de 10k entre la broche et la masse, mais là, rien ne se passe quand j'envoie du 5v sur la broche.
J'ai alors testé l'inverse, mais là lorsque j'allume l'arduino, la séquence se lance seule sans que je fasse quoi que ce soit...
Là je sèche... Je pense que j'ai du faire une grossière erreur dans mon code, mais laquelle ?
Si une âme charitable passe par là...
Voilà le code :
int interval = 1000;
byte pr = 1;
const int E5V = 12;
byte etat_broche = digitalRead(E5V);
void setup ()
{
Serial.begin(9600);
pinMode (A0, INPUT_PULLUP);
pinMode (A1, INPUT_PULLUP);
pinMode (A2, INPUT_PULLUP);
pinMode (A3, INPUT_PULLUP);
pinMode (A4, INPUT_PULLUP);
pinMode (E5V, INPUT_PULLUP);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
if (digitalRead (A1) == LOW) {interval = 2000;}
if (digitalRead (A2) == LOW) {interval = 3000;}
if (digitalRead (A3) == LOW) {interval = 4000;}
if (digitalRead (A4) == LOW) {interval = 5000;}
}
void loop ()
{
// on lit l'état de la broche
Serial.print(etat_broche);
// tant qu'il n'y a rien sur la broche, on fait rien
while (digitalRead(E5V) == LOW)
{
}
// sinon on lance
Serial.print(etat_broche);
for (pr=1; pr <6; pr++)
{
delay(interval);
digitalWrite(pr, etat_broche);
}
delay(2000);
digitalWrite (2, LOW);
digitalWrite (3, LOW);
digitalWrite (4, LOW);
digitalWrite (5, LOW);
}