Adapter prgm chrono sur afficheur 4d Systems

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..

Bonjour,

Pour info: Je n'ai jamais touché a 4D sys. , je me considère comme un noob averti dans le domaine!
Mon intervention et les infos seront en conséquence :wink: et apprécié en connaissance de cause^^
Et m'excuse si mon français vous pique les yeux :confused:

Je me permet de commencer par des questions supposées pertinente :cold_sweat: :

  • Pourquoi ne pas avoir glissé le lien sous la ref. de l'écran 4D Systems , par confort pour celui qui accepterai de vous aidez?

  • Le code présenté ne correspond pas à la demande, surement celui fonctionnant sur l'I2C, alors pourquoi nous le fournir?

  • Vous êtes vous donné la peine de lire les différentes doc du produit?

Les écrans 4D Sys. intègrent un ensemble matériel capable d'offrir une interface fonctionnelle. En soi, un système se suffisent a lui même. Je t'apprend rien étant donné que tu as utilisé l'IDE de la marque...
J'imagine que s'est chose faite, mais a la place d'utilisé un arduino pour offrir des GPIO, je regarderai si l'écran n'en est pas pourvu!
A défaut, et après une lecture en diagonal des documentations fournies, on apprend que l'écran possède un port série, ou plutôt UART si j'oserai dire^...
A partir de là, il devient imaginable le cheminement a prendre pour réalisé ton projet!

Définir un protocole de communication:
Coté arduino: géré les différents éléments raccordés a celui-ci (port UART, bouton, leds, capteurs, etc...), et définir des messages selon l'action souhaitée, pour une transmission/réception sur le port UART.
Coté écran: réceptionné les messages, et faire l'action prévue suivant le message prédéfini. Définir des boutons tactiles et envoyer vers l'arduino le messages correspondant...

Courage :wink: