//Bottone pin D2
//Led pin D3
#define BOTTONE 2
#define LED 3
void setup(){
//Imposto il pin D2 come input e resistenza di pull-up interna
pinMode(BOTTONE, INPUT_PULLUP);
//Pin led come output
pinMode(LED, OUTPUT);
//Spengo il led, non necessario ma metterlo non fa male
digitalWrite(LED, LOW);
}
void lampeggia(uint8_t n_volte){
//Accendo e spengo il led per n volte
//delay in millisecondi; 1 secondo == 1000 millisecondi
for(uint8_t i = 0; i < n_volte; i++){
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
}
void loop(){
//digitalRead legge lo stato del pin in input, in questo caso se il bottone non
//è premuto sta ad 1 perchè ha una resistenza interna che lo tiene constantemente
//su 5Volt, questo per evitare di lasciare il pin di input in floating, cioè in uno
//stato incerto
if(digitalRead(BOTTONE) == true){
//Bottone non premuto lampeggia solo 10 volte
lampeggia(10);
}
//Bottone premuto lampeggia 20 volte
else{
lampeggia(20);
}
//Fermo l'esecuzione del codice
while(true){}
}