< Arduino N° 55 | > Arduino N° 57 |
Questo semplice programma è utile ai neofiti per familiarizzarsi con l'uso dei comandi digitali e con le temporizzazioni.
Il riscontro visivo è di immediata comprensione per chi comincia a destreggiarsi con Arduino o con i controllori programmabili, in generale.
Il relay viene comandato in modalità "monostabile", con la temporizzazione impostata nel FW. In pratica, il comando impulsivo sul pulsante determina l'eccitazione del relay per il tempo impostato, indipendente dal comando.
Il buzzer avverte acusticamente che il comando è stato eseguito.
Volendo, invece, collegare un altoparlante dovrete operare alcune modifiche, HW e SW:
- modificare il SW ed inserire un generatore di tono di B.F;
- modificare l'HW inserendo una capacità di accoppiamento sull'uscita D12, in serie ad opportuna resistenza.
/* ------------------------ 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 R 13 // Uscita comando relay
#define B 12 // Uscita comando buzzer
#define S 6 // ingresso switch
// --------------------------------------------------
const int T1=200, T2=1000;
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
}
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 -------------------------------------
Nessun commento:
Posta un commento