mercoledì 1 luglio 2020

Arduino N° 56 - Comando relay con buzzer avvisatore

Arduino N°  55 

 Achille De Santis

 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.
   

Sul piedino D12 di uscita va collegato un "buzzer" cioè un "ronzatore" attivo, NON un altoparlante che manderebbe in corto l'uscita stessa, con conseguenze dannose sia per l'uscita che per l'altoparlante.

Volendo, invece, collegare un altoparlante dovrete operare alcune modifiche, HW e SW:


  1. modificare il SW ed inserire un generatore di tono di B.F;
  2. 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 -------------------------------------


Simulazione: 


Argomenti correlati:

> Arduino N°  57

Nessun commento:

Posta un commento