Voilà mon petit programme avance,
J'ai un barrière laser rouge qui lorsqu'elle est coupé déclenche l'allumage d'une led. J'ai installé un potentiomètre qui me permet d'afficher sur le LCD un nombre qui va de 0 à 100. J'aimerais récupérer le résultat de cet affichage pour allumé une autre led avec un décalage dans le temps de 0 à 100 secondes.
Comment procédé ?
#include <LiquidCrystal.h>
// initialisation librairie LCD
const int RS=2;
const int E=3;
const int D4=4;
const int D5=5;
const int D6=6;
const int D7=7;
const int RVar=0; //potentiomètre 1 "col"
const int RVar1=1; //potentiomètre 2 "fond"
const int RVar2=2; // potentiomètre 3 "Travers"
const int photoIR=3; //cellule mesure de lumière ARCHE
const int Led=8;
int mesureIR=0; //Infrarouge initialisation
int mesureBrute=0; // Potard initialisation
int seuil=100; //Infrarouge seuil sensiblité passage pièce
float mesure;
float potard;
LiquidCrystal lcd(RS,E,D4,D5,D6,D7);
void setup() {
// set up LCD indication nb colonne et case:
lcd.begin(16, 2);
lcd.clear();
delay(10);
// Print a message to the LCD.
lcd.print("Piochel 2013");
delay(1000);
lcd.clear();
delay (10);
lcd.print("Initialisation...");
delay(2000);
lcd.clear();
delay (10);
pinMode (Led, OUTPUT);
Serial.begin(115200);
}
void loop() {
mesureBrute=analogRead(RVar);
mesure=map(mesureBrute,0,1023,0.0,1000.0);
//lcd.clear();
//delay(5);
lcd.home();
lcd.print("Col");
lcd.setCursor(6,0);
lcd.print("Fond");
lcd.setCursor(13,0);
lcd.print("Tra");
//1er potard
potard=mesure/10.0;
lcd.setCursor(0,1);
lcd.print(potard,0);
//delay(200);
//2e potard
mesureBrute=analogRead(RVar1);
mesure=map(mesureBrute,0,1023,0.0,1000.0);
potard=mesure/10.0;
lcd.setCursor(7,1);
lcd.print(potard,0);
if (mesure < 1000) lcd.print(" ");
if (mesure < 100) lcd.print(" ");
if (mesure < 10) lcd.print(" ");
//delay(100);
//3e potard
mesureBrute=analogRead(RVar2);
mesure=map(mesureBrute,0,1023,0.0,1000.0);
potard=mesure/10.0;
lcd.setCursor(13,1);
lcd.print(potard,0);
if (mesure < 1000) lcd.print(" ");
if (mesure < 100) lcd.print(" ");
if (mesure < 10) lcd.print(" ");
//delay(100);
mesureIR=analogRead(photoIR);
if (mesureIR<seuil) {//Serial.println("Piece detecte");
digitalWrite (Led, HIGH);
}
else {
digitalWrite(Led,LOW);
}
//delay(10);
}
j'ajouterais donc une LED sur le pin 8
Impératif, il ne faut pas bloquer le déclenchement d'un second passage avec une fonction delay.
Est-ce possible ?