Nextion - Afficher et changer la valeur delay d'un prog. Arduino

Bonjour à tous,

Je suis débutant, j'aurais besoin de réponses pédagogiques et simples.

Voilà ou j'en suis, j'ai fais un programme qui me permet que lorsque un objet passe devant un capteur (ici un lazer) , un appareil se met en route, (ici une électrovanne "EV").

J'ai établi 2 délais :
1er // le lazer est coupé, on attend X seconde puis on démarre l'EV.
2eme // l'EV est actionné pendant X seconde.

Pour mon projet j'ai besoin de pouvoir changer rapidement ces 2 valeurs X.

Maintenant ma question est t'il possible avec un Nextion de créer une interface afin de changer ces valeurs.
Sinon comment changer les délais d'un programme simplement sans passer par un ordinateur.
L'idée de pouvoir changer les valeurs d'un programmes avec un petit écran me plait beaucoup.

Merci d'avance,

Duinocalement.

Bien évidemment.
Rien ne t'empêche de saisir les valeur de deux champs avec des boutons +/-, ou plus élaboré.

Ensuite il est possible de stocker les deux valeurs dans l'EEPROM pour les relire en cas de redémarrage.

J'ai déjà fait cela avec un petit écran 1.8 pouces et un encodeur rotatif. Avec un écran tactile, ce sera encore plus simple.

Salut,

Merci pour ta réponse. J'ai découvert l'arduino depuis seulement 2semaines, je trouve ça passionnant.

Dans ta réponse je découvre l'EEPROM.

  1. D'après se que j'ai lu, c 'est une mémoire morte. En effet c 'est intéressant. Cette mémoire est elle intégré au Nextion ? ou faut t'il la rajouter au montage ?
    Je n'ai pas encore commander l’écran car j'attend de bien comprendre ce que je vais faire. Mais il semble que le logiciel Nextion permet de faire les tests sans écran.

  2. Dans un premier temps J'aimerai afficher les 2 valeurs "delay" (fin du programme si dessous.
    Comment procède t'on ? J'imagine que je dois dire à l'Arduino transmet cette valeur au Nextion.
    Et ça je ne sais pas faire.

/*
 * Laser Sensor 
 * Declanche electrovanne sur pin 8, avec delais de mise en route.
 */

#define DETECT 2                   // pin 2 for  sensor
#define ACTION 8                   // pin 8 for EV 


void setup() {
  Serial.begin(9600);
  Serial.println("Robojax.com Laser Module Test");
  pinMode(DETECT, INPUT);                    //define detect input pin
  pinMode(ACTION, OUTPUT);                   //define ACTION output pin
}

void loop() {

  int detected = digitalRead(DETECT);        // read Laser sensor
 
  if( detected == HIGH)
  
  {
    digitalWrite(ACTION,LOW);                // EV off
    Serial.println("Detected!");

  }else{
    delay(2000);                              // delais avant activation
    digitalWrite(ACTION,HIGH);                // EV ON
    Serial.println("No laser");               
    delay(1000);                              // duree d activation
  }

}

Merci d'avance,

Duinocalement.

Cette mémoire est elle intégré au Nextion ? ou faut t'il la rajouter au montage ?

Rien à ajouter. Elle est embarquée dans le microcontrôleur de la carte ARDUINO.

Désolé mais je ne connais absolument pas Nextion.

Merci beaucoup pour tes réponses ,

je n'ai plus qu'a attendre que quelqu'un d’expérimenté ds le domaine puisse m'aider.
Au passage c'est tu si il est possible de faire ça en bluetooth avec un un smartphone ?

Merci d'avance,

Duinocalement.

Bonjour,

Il faut d'abord créer ton interface avec le logiciel nextion, ensuite tu affiches via une liaison série en donnant le nom de l'objet et les infos à ajouter.
Tu peux envoyer les commandes directement en texte par la liaison série (c'est de que je fais en général) ou utiliser la librairie nextion.

Il y a de nombreux tuto sur le net par exemple celui ci en français sur youtube.

Salut,

Encore merci pour vos réponses.
J'ai beau chercher aucun tuto ne m'aide à se sujet.
Le tuto Cyrob est très bien mais il ne va pas plus loin (2vidéos) principalement sur l'interface Nextion.
La communication entre arduino et nextion est succincte. Les tutos sur la liaison série s’arrête principalement à l'envoie d'un message "hello world". ou faire varier une led 0/1. Et pour couronner le tout je suis une bille en anglais.
Rien n'explique comment je peux envoyer et modifier mon code pour envoyer ma valeur "delay" sur un écran (nextion ou simple lcd) et la modifier ensuite.
En même temps delay stop le programme donc il est peut être pas possible de lire cette donné ou la changer. je ne sais pas.
J’atteins certainement mes limites en terme de compréhension dans un domaine que je découvre tout juste.

Je pense que je n'aurais pas plus d'aide sur le sujet. Je tente une dernière question.
Je vais tenter un autre topic avec "Encodeur rotatif et LCD", on verra bien.

Dans mon cas je cherche à pouvoir changer 2 valeurs "delay" à l'aide d'outils. encodeur rotatif et lcd, nextion smartphone....

Quel est le moyen le plus simple ?
Par ou commencer ? Dans mes recherches et mon apprentissage sur ce sujet.

Duinocalement.

Il y a bien plein d’exemple sur comment communiquer par entre nextion et arduino.

Par contre, là où tu as un problème c’est d’utiliser delay() qui bloque ton code et c’est pas l’idéal.

Étudie déjà l’utilisation de millis() pour avoir des actions non-bloquantes.

Quand tu maîtriseras ça: sur ton nextion tu pourrais faire 2/3 boutons (plus, moins, validation) pour envoyer à ton arduino ta valeur de « delay »

Comme Henri, je ne connais pas le Nextion, mais je le vois comme un écran un peu élaboré qui peut exécuter des commandes liées à une interface homme machine.
Du coup, je verrais mieux deux sliders avec un bouton de validation. Ce lien montre comment créer un slider et des boutons. Mais c'est en anglais, il faut le traduire automatiquement si nécessaire.