Esercizi
Esercizio 1:
Nel circuito di figura il led blu lampeggia con un periodo di 2 secondi (2 secondi acceso e 2 secondi spento), il led verde invece si accende solo quando il pulsante è premuto.
Suggerimento: si parta considerando i seguenti sketch che rispettivamente fanno lampeggaire un led con periodo di 1 secondo in non-blocking mode e fa accendere un led in corrispondenza alla pressione di un tasto
unsigned long timenow;
unsigned long lastUpdate = 0;
unsigned long interval = 1000;
boolean statoLed = LOW;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
timenow = millis();
if (timenow >= lastUpdate + interval){ // controlla se è passato 1 secondo
if (statoLed == LOW){
digitalWrite(LED_BUILTIN, HIGH);
statoLed = HIGH;
}
else{
digitalWrite(LED_BUILTIN, LOW);
statoLed = LOW;
}
lastUpdate = timenow;
}
/* qui potrebbero essere messe altre righe di codice che verrebbero eseguite ripetutamente senza alcuna attesa */
}
#define ledpin 12 #define buttonpin 7 bool buttonState = LOW; void setup() { pinMode(buttonpin, INPUT); pinMode(ledpin, OUTPUT); } void loop() { buttonState = digitalRead(buttonpin); // se il pulsante è premuto il valore del pin è HIGH if (buttonState == HIGH) { digitalWrite(ledpin, HIGH); // accendi il led } else { digitalWrite(ledpin, LOW); // spegni il led } delay(100); // Delay a little bit to improve simulation performance }
Ultime modifiche: sabato, 28 marzo 2020, 20:41