mercoledì 4 novembre 2020

Arduino N° 67 - Sensore Luci temporizzate

Arduino N°  66

 Achille De Santis

 Arduino N°  68



Fig 1: Sensore di luci temporizzate; 
Fig 2: Sensore di luci temporizzate. collaudo; 























Questo firmware implementa un sensore di luci temporizzate, con un controllore ATmega168.
Il temporizzatore si potrebbe realizzare anche a "logica cablata": a transistori, a relay, a logica TTL, CMOS e quant'altro. Non me ne vogliano, quindi, i "puristi" o i nostalgici. Lo "sketch" viene qui presentato come parte ben funzionante da integrare in dispositivi molto più complessi, con un hardware ridotto veramente al minimo.
Buon lavoro! tecnatronATgmail.com



  
/* ------------------- Inizio programma -----------------------------
 * Sensore Luci temporizzate
 * Achille De Santis 02-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                  - "); 
  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("Temporizzatore ON\t"); 
      ManovraLuci(T1);
      Serial.print("OFF\n"); 
      S=digitalRead(sensore);
    }
}
// ----------------------- Fine programma -------------------------------
 


Simulazione: 


Argomenti correlati:

Nessun commento:

Posta un commento