bonjour à tous, je reviens vers vous pour un petit soucis tout bête.
j'ai une led qui doit clignoter quand j'appui sur un bouton, en meme temps, un message doit s'afficher sur le lcd si le bouton est appuyé.
Tout fonctionne bien sauf quand je veux faire défiler ce texte sur la gauche en introduisant un delay.
Ce delay me modifie la féquence de clignotement de ma led.
voici mon premier code sans soucis
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(9,8, 5, 4, 3, 2);
int led = 22;
int bouton = 6;
int etatbouton = 1;
int val;
int precedetat= 0;
int cloture = 30;
void setup() {
lcd.begin(16,2);
// put your setup code here, to run once:
pinMode(led, OUTPUT);
pinMode(bouton, INPUT);
pinMode(cloture, OUTPUT);
}
void loop() {
val = digitalRead(bouton);
Serial.begin(9600); //Connection série à 9600 baud
Serial.println( etatbouton);
if ((val == HIGH) && (precedetat == LOW)) {
etatbouton = 1 - etatbouton;
delay(10);
}
precedetat = val;
if (etatbouton == 0) {
ledClignotement();
lcd.setCursor(0, 1);
lcd.print("Cloture 2 : OFF ");
digitalWrite (cloture, LOW);
}
else {
digitalWrite (led, HIGH);
digitalWrite (cloture, HIGH);
lcd.setCursor(0, 1);
lcd.print("Cloture 2 : ON ");}
}
void ledClignotement()
{ digitalWrite (led, HIGH);
delay (200);
digitalWrite (led, LOW);
delay (200);
}
/code]
alors qu'avec ce code , ma led ne clignote plus normalement :
[code] #include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(9,8, 5, 4, 3, 2);
int led = 22;
int bouton = 6;
int etatbouton = 1;
int val;
int precedetat= 0;
int cloture = 30;
void setup() {
lcd.begin(16,2);
// put your setup code here, to run once:
pinMode(led, OUTPUT);
pinMode(bouton, INPUT);
pinMode(cloture, OUTPUT);
}
void loop() {
val = digitalRead(bouton);
Serial.begin(9600); //Connection série à 9600 baud
Serial.println( etatbouton);
if ((val == HIGH) && (precedetat == LOW)) {
etatbouton = 1 - etatbouton;
delay(10);
}
precedetat = val;
if (etatbouton == 0) {
ledClignotement();
digitalWrite (cloture, LOW);
lcd.setCursor(0, 1);
lcd.print("Cloture 2 : OFF ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("-----BOUTON----- ");
delay(400);
}
else {
digitalWrite (led, HIGH);
digitalWrite (cloture, HIGH);
lcd.setCursor(0, 1);
lcd.print("Cloture 2 : ON ");}
}
void ledClignotement()
{ digitalWrite (led, HIGH);
delay (200);
digitalWrite (led, LOW);
delay (200);
}
/code]
merci