bonjour, je viens de me procurer un afficheur de chez 4d Systems, le Gen4-uLCD-70DT-AR, et aprés avoir suivi quelques tuto en vidéo, je suis complétement bloqué. J'essaie d'adapter mon programme a l'écran, mais je ne trouve aucune solution. Mon projet étant un chronométré, j'ai pensé qu"un écran plus grand et avec un workshop indépendant de l'IDE arduino serait simple (j'étais sur un écran i2c avant) mais cela s'avére galére. J'ai fait l'interface de ce chronométre sur l'afficheur et son workshop, mais impossible de trouver comment adapter mon programme a ce langage.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20, 20, 4);
unsigned long time; // time = fonction millis
long t1=0; // t1= Départ
long t2=0; // t2= Arrivée
long t3=0; // t3= temps de course
long t4=40050; // t4= temps record a initialiser avant démarrage ( a mettre en ms )
boolean statdep = false;
boolean statar = false;
void setup() {
pinMode(9, INPUT); // bouton poussoir
pinMode(7, INPUT); // bouton poussoir
pinMode(5, OUTPUT); // LED Bleue
pinMode(4, OUTPUT); // LED Rouge
pinMode(10, OUTPUT); // buzzer
lcd.init(); // initialisation de l'afficheur
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("RDV arrivee !");
lcd.setCursor(0,1);
lcd.print("CHRONO / Flavio");
lcd.setCursor(0,2);
lcd.print("Record :");
lcd.setCursor(9,2);
lcd.print(t4*pow(10,-3));
lcd.setCursor(14,2);
lcd.print("s");
}
void loop() {
time=millis();
if (digitalRead(9))
{
delay(50);
statdep = !statdep;
}
if (digitalRead(7))
{
delay(100);
statar = !statar;
}
if (statdep==true)
{
lcd.clear();
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
lcd.print("3 !");
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
lcd.print(" 2 !");
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
lcd.print(" 1 !");
digitalWrite(10, LOW);
digitalWrite(4, LOW);
delay(1000);
digitalWrite(5, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Depart !");
digitalWrite(10, HIGH);
t1=time;
statdep = !statdep;
delay(300);
digitalWrite(10, LOW);
}
if(t1!=0)
{
while(t3>1);
{
lcd.setCursor(0,1);
lcd.print((time-t1-3096.5)*pow(10,-3));
lcd.setCursor(6,1);
lcd.print("s");
delay(25);
}
}
if (statar==true)
{
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Arrivee !");
t2=time;
statar = !statar;
digitalWrite(5, LOW);
}
t3=t2-t1-3000;
// différence entre les 2 temps
if (t3>1)
{
delay(800);
lcd.noBacklight();
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(10, LOW);
delay(750);
lcd.backlight();
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
delay(500);
lcd.noBacklight();
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(10, LOW);
delay(250);
lcd.backlight();
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
delay(200);
lcd.noBacklight();
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(10, LOW);
delay(150);
lcd.backlight();
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
delay(100);
lcd.noBacklight();
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(10, LOW);
delay(50);
lcd.backlight();
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
delay(25);
lcd.noBacklight();
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(10, LOW);
delay(10);
lcd.backlight();
lcd.clear();
if (t3<t4)
{
lcd.setCursor(0, 0);
lcd.print("Old record =");
lcd.setCursor(13,0);
lcd.print(t4*pow(10,-3));
lcd.setCursor(18,0);
lcd.print("s");
lcd.setCursor(0, 1);
lcd.print("NOUVEAU RECORD !");
lcd.setCursor(0, 2);
lcd.print("Tps course =");
lcd.setCursor(13, 2);
lcd.print(t3);
lcd.print(" ms");
lcd.setCursor(0, 3);
lcd.print(" = ");
lcd.print(t3*pow(10,-3));
lcd.print(" s ");
for (int i=0; i <= 4; i++) {
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
delay(200);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(10, LOW);
delay(200);
}
}
else
{
lcd.setCursor(0, 0);
lcd.print("Record non battu !");
lcd.setCursor(0, 1);
lcd.print("Record piste=");
lcd.setCursor(14,1);
lcd.print(t4*pow(10,-3));
lcd.setCursor(18,1);
lcd.print("s");
lcd.setCursor(0, 2);
lcd.print("Tps course =");
lcd.setCursor(13, 2);
lcd.print(t3);
lcd.print("ms");
lcd.setCursor(0, 3);
lcd.print(" = ");
lcd.print(t3*pow(10,-3));
lcd.print(" s ");
}
}
}
Mon but serait de faire au moins, défiler un timer sur l'afficheur et comment faire pour ensuite, faire une interface.
Merci d'avance..