const int analogInPin = A0; // pin analogico su cui é collegato il potenziometro
int sensorValueOriginale = 0; // variabile in cui viene memorizzato il valore analogico di partenza del potenziometro
int sensorValueGiro = 0;
const int ledContaGiro=13;
const int ledMotore = 10;
int ledState = LOW;
long currentMillis = 0;
long previousMillis = 0; // memorizzerà l'ultima volta a LED è stato aggiornato
long interval = 100; // intervallo in cui a lampeggiato (millisecondi)
int incomingByte = 0;
int contaGiro = 0;
int giaLetto = 0;
void setup()
{
delay(1000); // attende 1 secondo, nel caso di problemi
pinMode(ledContaGiro, OUTPUT);
Serial.begin(9600); // abilita comunicazione seriale hw
sensorValueOriginale = analogRead(analogInPin); // leggi il valore analogico
}
void loop()
{
sensorValueGiro = analogRead(analogInPin);
if (sensorValueGiro == sensorValueOriginale && giaLetto == 0){
contaGiro = contaGiro + 1;
giaLetto = 1;
currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW){
ledState = HIGH;
}
else{
ledState = LOW;
}
digitalWrite(ledContaGiro, ledState);
}
sensorValueGiro = analogRead(analogInPin);
Serial.println(contaGiro);
}
if (sensorValueGiro < (sensorValueOriginale - 2) || sensorValueGiro > (sensorValueOriginale + 2)) {
giaLetto = 0;
}
}
io ho implementato questo programma con un'aiuto su varie parte e la mia intenzione sarebbe quella di far accendere il ogni volte che il potenziometro ovvero sensorValueGiro compie un giro e diventa uguale a sensorValueOriginale dovrebbe accendersi il led e restare acceso per 300 millisecondi e poi rispegnersi ma non capisco perchè si accende a caso potete aiutarmi pls