non è la solita domanda su come si usa il millis o almeno fin ora non mi è capitato di trovare risposta
tipica applicazione di millis(); con bluetooth e secondo seriale
#include <SoftwareSerial.h>
SoftwareSerial bt (6, 7);
int data = 0;
int ventola = 8;
unsigned long startTime1 = 0;
unsigned long currentTime = 0;
int interval = 5000;
void setup() {
Serial.begin(19200);
bt.begin(9600);
pinMode(ventola, OUTPUT);
}
void loop() {
if (bt.available() > 0) {
data = bt.read();
Serial.print("comando ricevuto: ");
Serial.println(data);
}
if (data == 100) {
digitalWrite(ventola, HIGH);
startTime1 = currentTime;
data = 0;
}
// qui:
if (currentTime - startTime1 > interval) {
digitalWrite(ventola, LOW);
Serial.println("dentro?"); //come posso farlo entrare solo una volta? e non farlo entrare all inizio?
}
Serial.println(currentTime - startTime1);
currentTime = millis();
}
la mia domanda, che potete vedere anche nel commento al codice è: come faccio a fargli eseguire quella condizione segnata solo una volta? e sopratutto come potrei fare a non farlo entrare inizialmente?
p.s: so che potrei risparmiarmi una variabile eliminando currentTime