< Arduino N° 57 | > Arduino N° 59 |
Pilotaggio intermittente di una uscita digitale, con segnalazione della commutazione attraverso un breve impulso che pilota un cicalino (buzzer).
Il ciclo di commutazione viene abilitato portando a massa il piedino S (switch).
Non occorre resistenza di pull-up, già prevista internamente.
Il dispositivo non rappresenta nulla di nuovo ma è un esempio di come si possano elaborare nuove applicazioni da cose già note: l'intermittente (o lampeggiatore) , il "buzzer" attivo (o "cicalino"), il circuito universale di prova, il relay.
/* ----------------- Inizio Programma -------------------------------------------
* Pilotaggio intermittente di un Relay con Arduino
* Segnalazione tramite Buzzer
* Uso delle routines per le operazioni elementari ripetitive.
* Aggiungere il piedino di attivazione del comando!!!!!!!!
* Se non è necessario il relay, come separatore galvanico,
* si può sostituire con un transistore di adeguata potenza.
* Achille De Santis - V5.0 del 09-06-2020
*
*/
// --------------- I/O -------------------------------
#define S 6 // ingresso switch
#define R 13 // Uscita comando relay
#define B 12 // Uscita comando buzzer
// ---------------------------------------------------
const int T1=200, T2=1000;
void intestazione()
{ Serial.println("\n ------------------------------------------------- ");
Serial.println(" - Tecnatron - ing. Achille De Santis - ");
Serial.println(" - Comando uscita intermittente V. 1.0 - ");
Serial.println(" - Segnalazione con buzzer -");
Serial.println(" --------------------------------------------------\n");
}
void buzz()
{
digitalWrite(B,HIGH); // comanda B alto
delay(T1); // attende T1 millisecondi
digitalWrite(B, LOW); // comanda B basso
}
void setup()
{
pinMode (R,OUTPUT); // Relay: viene settato il pin R come uscita
pinMode (B,OUTPUT); // Buzzer: viene settato il pin B come uscita
pinMode (S,INPUT_PULLUP); // Switch: ingresso
Serial.begin(9600); // predispongo la velocità di comunicazione
intestazione(); // intestazione, inviata alla seriale
}
void loop()
{
while (digitalRead(S)==0)
{
digitalWrite(R,1); buzz();
delay(T2);
digitalWrite(R,0);
delay(T2); // ritardo, poi il ciclo si ripete
}
}
// ---------------------- Fine Programma ----------------------------------------
* Pilotaggio intermittente di un Relay con Arduino
* Segnalazione tramite Buzzer
* Uso delle routines per le operazioni elementari ripetitive.
* Aggiungere il piedino di attivazione del comando!!!!!!!!
* Se non è necessario il relay, come separatore galvanico,
* si può sostituire con un transistore di adeguata potenza.
* Achille De Santis - V5.0 del 09-06-2020
*
*/
// --------------- I/O -------------------------------
#define S 6 // ingresso switch
#define R 13 // Uscita comando relay
#define B 12 // Uscita comando buzzer
// ---------------------------------------------------
const int T1=200, T2=1000;
void intestazione()
{ Serial.println("\n ------------------------------------------------- ");
Serial.println(" - Tecnatron - ing. Achille De Santis - ");
Serial.println(" - Comando uscita intermittente V. 1.0 - ");
Serial.println(" - Segnalazione con buzzer -");
Serial.println(" --------------------------------------------------\n");
}
void buzz()
{
digitalWrite(B,HIGH); // comanda B alto
delay(T1); // attende T1 millisecondi
digitalWrite(B, LOW); // comanda B basso
}
void setup()
{
pinMode (R,OUTPUT); // Relay: viene settato il pin R come uscita
pinMode (B,OUTPUT); // Buzzer: viene settato il pin B come uscita
pinMode (S,INPUT_PULLUP); // Switch: ingresso
Serial.begin(9600); // predispongo la velocità di comunicazione
intestazione(); // intestazione, inviata alla seriale
}
void loop()
{
while (digitalRead(S)==0)
{
digitalWrite(R,1); buzz();
delay(T2);
digitalWrite(R,0);
delay(T2); // ritardo, poi il ciclo si ripete
}
}
// ---------------------- Fine Programma ----------------------------------------
Simulazione:
Comando relay con buzzer
Comando relay con buzzer
Nessun commento:
Posta un commento