Buongiorno,
una mera curiostà, tra gli esempi che riporto qui sotto voi quale preferite e perchè ?
VERSIONE 1
#define ledPin 15
unsigned int blinkingFrequency = 1000;
unsigned long oldBlinkingTime = 0;
bool ledStateOn;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
}
void loop() {
if(millis() - oldBlinkingTime >= blinkingFrequency) {
if(ledStateOn == true) {
digitalWrite(ledPin, LOW);
ledStateOn = !ledStateOn;
} else {
digitalWrite(ledPin,HIGH);
ledStateOn = !ledStateOn;
}
oldBlinkingTime = millis();
}
}
VERSIONE 2
#define ledPin 15
unsigned int blinkingFrequency = 1000;
unsigned long oldBlinkingTime = 0;
bool ledStateOn;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
}
void loop() {
if(millis() - oldBlinkingTime >= blinkingFrequency) {
digitalWrite(ledPin, ledStateOn? HIGH : LOW);
ledStateOn = !ledStateOn;
oldBlinkingTime = millis();
}
}
VERSIONE 3
#define ledPin 15
unsigned int blinkingFrequency = 1000;
unsigned long oldBlinkingTime = 0;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
}
void loop() {
if(millis() - oldBlinkingTime >= blinkingFrequency && digitalRead(ledPin) == HIGH) {
digitalWrite(ledPin, LOW);
oldBlinkingTime = millis();
}else if(millis() - oldBlinkingTime >= blinkingFrequency && digitalRead(ledPin) == LOW) {
digitalWrite(ledPin, HIGH);
oldBlinkingTime = millis();
}
}
so che molto dipende da come uno è abituato a programmare, ma questa mia curiosità nasce dal fatto che molte volte mi fermo a pensare come sia meglio scrivere il mio codice, sicuramente qualcuno di più esperto potrà dire la sua per sanare questa mia curiosità