pugliasos newlogoDEF

Orario della segreteria: tutti i martedì, dalle ore 17 alle 19, su appuntamento.

Mediante un pulsante si vuol passare da un funzionamento che coinvolga tre LED (rosso, giallo e verde) ad uno lampeggiante del LED giallo.  Ci serviremo di una variabile in cui salvare lo stato del pulsante con cui determinare la commutazione.

Il semaforo unidirezionale con commutazione fra comportamento normale e lampeggiante html 8ed402a51846228f

 

Il codice:

 

#define red1 9

#define yel1 10

#define gre1 11

#define puls 2

boolean statoP = 0;

 

void setup() {

pinMode(red1, OUTPUT);

pinMode(yel1, OUTPUT);

pinMode(gre1, OUTPUT);

pinMode(puls, INPUT);

}

 

void loop() {

if (digitalRead(puls) == HIGH) statoP = !statoP ;

delay(250);

if (statoP == 1) {

digitalWrite(yel1, LOW);

digitalWrite(red1, LOW);

digitalWrite(gre1, HIGH);

delay(6000);

digitalWrite(gre1, LOW);

digitalWrite(yel1, HIGH);

delay(1500);

digitalWrite(yel1, LOW);

digitalWrite(gre1, LOW);

digitalWrite(red1, HIGH);

delay(6000);

}

if (statoP == 0) {

digitalWrite(red1, LOW);

digitalWrite(gre1, LOW);

digitalWrite(yel1, HIGH);

delay(1000);

digitalWrite(yel1, LOW);

delay(1000);

}

}

 


 http://sistemisds.altervista.org/

   Si può rendere più frendly il codice con l'introduzione di due funzioni: una per il funzionamento normale, l'altro per quello lampeggiante.

   Per la presenza della funzione delay() la commutazione avviene se il pulsante viene tenuto premuto alla fine della fase normale o lampeggiante, cioè durante l’accensione del rosso nel primo caso e del giallo nel secondo. In definitiva, conviene tenere premuto il pulsante finché non avviene la commutazione.

Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Read more
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline