Autor: Victoria TANTANA -333CC
Sistem creat pentru pulverizarea unei solutii dezinfectante, atunci cand senzorul detecteaza prezenta unei persoane. Avand in vedere contextul epidemiologic cu care ne confruntam, un astfel de dispozitiv ar fi util in vederea respectarii normelor recomandate de igiena.
Ideea care sta la baza acestui proiect este de a realiza vaporizarea substantei, fara a necesita contactul fizic cu dispozitivul, reducand astfel riscul de raspandire a virusului.
Senzorul PIR se declanseaza in momentul in care detecteaza miscare, in continuare, pinul D2 din arduino UNO primeste o tensiune de 5V. Pe pinul D3 se va deschide baza tranzistorului MJE-13003 si se va activa releul care este conectat in colectorul acestui tranzistor. Pe pinul A0 se va citi tensiunea de pe potentiometru, obtinandu-se o valoare intre 0 si 1023. Pentru a obtine un interval de [0,10]s de activare a pompei, fac val/102. Voi aplica un delay de 1000ms la fiecare ciclu.
Dezvoltare: Pentru dezvoltarea programului software am folosit Arduino IDE.
Bibiolteci folosite: LiquidCrystal_I2C.h folosita pentru a permite comunicarea cu I2C-ul, si implicit cu LCD-ul.
#include <Wire.h> #include <LiquidCrystal_I2C.h> //I2C pins declaration LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); #define RELAY_PIN 3 #define PIR_PIN 2 void setup() { Serial.begin(9600); //Definesc 16 coloane a cate 2 randuri ale display-ului lcd lcd.begin(16,2); lcd.backlight(); //Setez cursorul pe randul stanga sus lcd.setCursor(0,0); lcd.print(" Auto "); //Setez cursorul pe randul stanga jos lcd.setCursor(0,1); lcd.print(" - Calibrare - "); delay(5000); // Iesire senzor conectata la D2 pinMode(PIR_PIN,INPUT_PULLUP); // Bobina releu conectata la D3 pinMode(RELAY_PIN,OUTPUT); } void loop() { // Citim inputul de pe pinul analog A0: int potVal = analogRead(A0)/102; lcd.setCursor(0,0); lcd.print("Timp spray: s"); lcd.setCursor(12,0); lcd.print(potVal); // dynamic effect delay(150); if(digitalRead(PIR_PIN)) { //Activam mecanismul digitalWrite (RELAY_PIN,1); for (int i=0;i < potVal;i++) { char s[100]; sprintf(s,"Timp: %d sec ",i); lcd.setCursor(0,1); lcd.print(s); delay(1000); } digitalWrite (RELAY_PIN,0); lcd.setCursor(0,1); lcd.print(" ...Delay... "); // Delay intre pulverizari delay(3000); } }
Proiectul indeplineste functionalitatea dorita, care este ilustrata in schema electrica. In urma realizarii acestuia, am invatat cum sa folosesc arduino in vederea prelucrarii informatiilor preluate de catre un senzor si sa afisez pe display date in conformitate cu starea la un moment de tip. Consider ca implementarea actuia m-a ajutat sa pun in practica notiunile invatate.