mercoledì 11 novembre 2020

Arduino N° 68 - Sensore Luci temporizzate - retriggerabile

Arduino N° 67 

 Achille De Santis

 Arduino N°  69


Interruttore per luci temporizzate. Premendo l'interruttore, verso la fine del tempo di accensione, il dispositivo fa ripartire la temporizzazione senza spegnere le luci.


Fig, 1: la scheda di prova;
Fig. 2: collaudo dello sketch su modulo a led;


   






/*  ------
















----------- Inizio programma -----------------------------------------
 * Sensore Luci temporizzate - retriggerabile
 * Achille De Santis 03-11-2020
 * Versione 4.0
 * 
*/
// ---------- I/O ---------------------------------------------   
#define sensore   7        // sensore touch, interruttore 
// ------------------------------------------------------------

const int  T0 = 1000;
const int  T1 = 5000;   // millisecondi

bool S; 
int U = 11;             // uscita digitale per comando luci 
int PreviousTime;

void intestazione()
{ Serial.println(" ---------------------------------------------- ");
  Serial.println(" - Tecnatron - ing. Achille De Santis         - ");
  Serial.println(" - Sensore Luci temporizzate - retriggerabile - "); 
  Serial.println(" - Versione 4.0                               - "); 
  Serial.println(" - I/O                                        - ");
  Serial.println(" - D11: uscita                                - ");  
  Serial.println(" - D7: sensore/interruttore attivo basso      - "); 
  Serial.println(" ---------------------------------------------- ");
}

void ManovraLuci(int t)  
  { 
    digitalWrite(U,HIGH);
    delay(t); 
    digitalWrite(U,!digitalRead(U));
  }
  
void setup() 
{
  Serial.begin(9600);      // setto la velocità di comunicazione
  intestazione();          // intestazione, inviata alla seriale
  pinMode(sensore, INPUT_PULLUP); 
  pinMode(U, OUTPUT); 
  ManovraLuci(T0); // prova
}

void loop() 
{  
  S=digitalRead(sensore);               // lettura valore del sensore al tocco.
  while(S==false)  
    { 
      Serial.print("\nTemporizzatore ON\t"); 
      digitalWrite(U,HIGH);
      delay(T1); 
      S=digitalRead(sensore);
      if (S==true) 
        { digitalWrite(U,LOW);  Serial.print("OFF");  }
    }
}
// -------------------------- Fine programma --------------------------------------



Simulazione: Multivibratore Monostabile,


Argomenti correlati: 


Nessun commento:

Posta un commento