Bonjour , cela fais plusieurs jours que je test différente chose pour arriver à faire fonctionné mon programme et à faire marché un peut tous ensemble, mais je me heurte à un problème sur ma boucle Loop().
quand je lance le programme ma boucle fonctionne correctement. quand ma cellule détecte une présence cela active mon relais qui fais passé le 5V(arduino) sur ma Pin 7 avec une résistance Pull-Up. mais une fois la partie de la boucle lancé elle continue sur la même partie sans prendre en compte que la pin7 (CelulleOn) n'a plus de courant (HIGH) et es donc repassé en ( LOW ) si je me trompe pas .
Merci pour votre aide.
ps: mon Code es un peut en fouille , je suis novice en programmation arduino.
voici mon Code complet :
#include "NexButton.h"
#include "NexText.h"
#include "NexNumber.h"
#include "NexSlider.h"
#include <Nextion.h>
#include <Arduino.h>
#include <Stepper.h>
#include <AccelStepper.h>
#include <SoftwareSerial.h>
//definie les pin moteur et le setp pour le moteur
#define dirPin 9
#define stepPin 8
#define stepsPerRevolution 1600
//Pin des cellules etiquete
#define ETIQON 7
#define ETIQOFF 5
//etat des cellules
int CelulleOn = LOW;
int CelluleOFF = LOW;
//pin etiqueteuse ON/OFF
#define Etiq 12
//patie etiqueteuse/Nextion
//SoftwareSerial nextionSerial(17, 16);
#define nexSerial Serial2
//declaration des elements nextion - exemple :( page ID = 0, element ID= 1, name = "b0")
NexText t0 = NexText(1,1, "to");
NexButton b0 = NexButton(1, 2, "b0");
NexButton b1 = NexButton(1, 3, "b1");
NexText t1 = NexText(1,4, "t1");
NexText t5 = NexText(1,13, "t5");
NexSlider h0 = NexSlider(1,5, "h0");
NexText t2 = NexText(1,6, "t2");
NexText t6 = NexText(1,14, "t6");
NexSlider h1 = NexSlider(1,7, "h1");
NexText t3 = NexText(1,8, "t3");
NexButton b2 = NexButton(1, 9, "b2");
NexButton b3 = NexButton(1, 10, "b3");
NexText t4 = NexText(1,11, "t4");
NexText t7 = NexText(1,15, "t7");
NexSlider h2 = NexSlider(1,12, "h2");
//registre des boutons
NexTouch *nex_listen_list[]={
&b0,&h0,
&b1,&h1,
&b2,&h2,
&b3,
NULL
};
//changement etat du bouton ON etiqueteuse
void b0PopCallback (void *ptr){
b0.setText("-ON-");
digitalWrite(Etiq, HIGH);
}
//changement etat du bouton OFF etiqueteuse
void b1PopCallback (void *ptr){
b1.setText("-OFF-");
digitalWrite(Etiq, LOW);
}
//changement du texte du slider retard etiq
void h0PopCallback (void *ptr) {
uint32_t numberRE = 0;
char temp[1] = {0};
h0.getValue (&numberRE);
utoa(numberRE, temp, 0);
//analogWrite(2, numberRE);
}
void setup (void) {
Serial2.begin(9600);
// Nexion
nexInit();
//etiqueteuse
pinMode (ETIQON, INPUT);
pinMode (ETIQOFF, INPUT);
Serial.println("Cellule initialisé");
//etiqueteuse info - Nextion
b0.attachPop(b0PopCallback, &b0);
b1.attachPop(b1PopCallback, &b1);
//b2.attachPop(b2PopCallback, &b2);
//b3.attachPop(b3PopCallback, &b3);
h0.attachPop(h0PopCallback, &h0);
//h1.attachPop(h1PopCallback, &h1);
//h2.attachPop(h2PopCallback, &h2);
//moteur
// declaration des pins moteur
pinMode(stepPin, OUTPUT); // pin en sortie
pinMode(dirPin, OUTPUT); // pin en sortie
}
void loop (void){
//etiqueteuse info nexion
nexLoop (nex_listen_list);
//presence d'un produit
CelulleOn = digitalRead(ETIQON);
if (CelulleOn == HIGH){
Serial.println("Detection d'un flacon");
//CelulleOn = LOW ;
// Régle le sens de rotation dans le sens des aiguilles d'une montre: (hight : cw / low : CCW )
// Faites tourner le moteur pas à pas d'un tour:
for (int i = 0; i < stepsPerRevolution; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(100);
digitalWrite(stepPin, LOW);
delayMicroseconds(100);
Serial.println("Etiquette envoyé");
//delay ("25000");
//Serial.println(CelulleOn);
//while (1){};
}
}
else
Serial.println("ATTENTE---");
//delay ("500");
}



