mercoledì 15 luglio 2020

Arduino N° 58 - Pilotaggio intermittente di una uscita digitale

      
Arduino N°  57

 Achille De Santis

 Arduino N°  59 




Fig. 1: Modulo di prova;


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 ----------------------------------------




Nessun commento:

Posta un commento