Proiectarea Unui Sistem Electronic de Monitorizare a Temperaturii Si Detectie a Gazului In Cadrul Unei Incintedoc

=== Proiectarea unui sistem electronic de monitorizare a temperaturii si detectie a gazului in cadrul unei incinte ===

Universitatea Tehnică „Gheorghe Asachi”

Facultatea de Electronică, Telecomunicații și Tehnologia Informației

Proiect de diplomă

Coordonator Științific: Absolvent:

Conferențiar dr. ing. Tecla Castelia Goraș Savin Gabriel Ionuț

Iași

2016

Universitatea Tehnică „Gheorghe Asachi”

Facultatea de Electronică, Telecomunicații și Tehnologia Informației

Specializarea Electronică Aplicată și Sisteme Inteligente

Proiectarea unui sistem electronic de monitorizare a temperaturii și detecție a gazului în cadrul unei incinte

Iași

2016

Cuprins

Memoriu Justificativ

Având în vedere dezvoltarea industrială, care a cunoscut o creștere în România ultimilor ani, cumulate cu analizele recente efectuate de specialiști în domeniu, se poate afirma că în industrie se simte deja o creștere, ramurile acesteia cele mai prolifice ale ultimei perioade fiind: domeniul alimentar, metalurgic, industria prelucrătoare, alături de cea constructoare de mașini. Creșterea producției conduce, în mod evident și inevitabil, la o creștere a pieței construcțiilor, fiind necesară, având in vedere cele menționate anterior, montarea unor instalații aferente construcțiilor ce se dezvoltă tot mai mult și într-un ritm cât mai accelerat.

Dintre instalațiile obligatorii în anumite circumstanțe se evidențiază, la un anumit punct, și sistemele de detecție și avertizare la incendiu. Detecția unui focar de incendiu se realizează prin identificarea unora sau mai multe dintre multiplele forme de manifestare ale acestuia, respectiv fum, radiație termică, gaze toxice, flacăra. Această detecție menționată mai sus constituie atât primul, cât și cel mai important mijloc de protecție la incendiu, deoarece oferă posibilitatea lichidării sale înainte ca focul să se extindă, caz in care rezultatele pot fi dezastruoase (pierderi de vieți omenești, pagube materiale importante).

Tema a fost astfel aleasă considerând că dezvoltarea într-un ritm tot mai alert a societății și implicit a pieței construcțiilor va conduce la necesitatea unor sisteme de alarmare în caz de incendiu și de detectare a gazelor cu potențial periculos sau chiar letal.

Se poate afirma, așadar, că tema aleasă este una cu un important impact în viața socială și personală, întrucât s-a dorit dintotdeauna, și mai ales cu precădere în prezentul moment, o siguranță sporită în cadrul spațiilor de muncă sau de locuit.

Capitolul I

Introducere

Informații generale

Un sistem electronic de monitorizare a temperaturii și detecție a gazului în cadrul unei incinte este definit ca fiind un ansamblu complex de echipamente electronice cu rolul de a asigura supravegherea unei clădiri sau incinte în vederea detectării, semnalizării și avertizării asupra scurgerilor de gaze.

Aceste instalații de semnalizare și detecție a incendiilor aferente construcțiilor se stabilesc în funcție de riscul de incendiu, tipul de clădiri, de categoria de importanță a construcțiilor și de parametrii ce trebuie supravegheați cum ar fi:

temperatura din încăpere;

fumul;

emanațiile de gaze periculoase;

flacără.

Alegerea unui anumit sistem de detecție trebuie să se facă încă din faza de proiectare a construcției, pe baza unor criterii normative ce au ca scop principal siguranța utilizatorilor. Avându-se în vedere condițiile specifice existente la nivelul operatorilor economici, prin introducerea sistemului de protecție împotriva scurgerilor de gaze, se urmărește a se obține un anumit grad de siguranță în exploatarea construcțiilor, reducându-se astfel nivelul riscului de explozie.

1.2 Principiul de funcționare a sistemului de detecție și monitorizare a temperaturii

Echipamentul de control și semnalizare (centrala de detecție și semnalizare) este “creierul”  unei instalații de semnalizare a scurgerilor de gaze și monitorizare a temperaturii și îndeplinește următoarele funcții:

recepționează semnale de la detectoarele și declanșatoarele manuale de alarmare conectate;

determină dacă aceste semnale corespund unei condiții de alarmă;

indică o condiție de alarmă acustică și optică, atât local, cât și la distanța; în cazul prezentei lucrări, această indicare a condiției de alarmă se va realiza doar la nivel local;

indică în mod precis locul scurgerilor de gaze prin afișare la panoul LCD integrat;

înregistrează oricare din aceste informații;

dispozitiv de transmisie în cazul defectării unei componente;

echipamente de alimentare cu energie.

Întrucât un sistem de detecție și monitorizare de genul celui prezentat ar presupune costuri materiale considerabile, pretabile mai degrabă unei companii cu un capital care să permită cercetarea și dezvoltarea unui model complex și complet, sistemul considerat și dezvoltat pentru partea practică a acestei lucrări este unul simplificat și adaptat la mijloacele materiale disponibile la momentul realizării acestuia.

Considerând cele afirmate, s-a dezvoltat o parte practică a acestei lucrări, care să susțină suportul teoretic ce va fi dezvoltat in paginile următoare.

În cazul prezentei lucrări sistemul de detecție este unul conceput pentru sesizarea prezenței gazelor și monitorizarea temperaturii fiind alcătuit din două părți principale: o parte hardware și o parte software.

Partea hardware corespunzătoare acestei lucrări conține:

un modul de dezvoltare Arduino Uno R3;

un senzor de gaz;

un senzor de temperatură, care monitorizează temperatura din încăpere;

două leduri de culoare albă care reprezintă instalația de iluminat din incintă; aceste leduri se sting în momentul în care se detectează particule de gaz, prin aceasta înțelegându-se deconectarea incintei de la sursele de energie electrică;

un led roșu care luminează intermitent atunci când sunt detectate scurgeri de gaze în cadrul incintei considerate;

alarmă/buzzer cu rol de a avertiza acustic prezența particulelor de gaz;

un servomotor, care va fi montat pe ușa incintei și care în momentul detecției particulelor de gaz, va acționa ușa, aceasta deschizându-se ;

cooler, care începe să ventileze încăperea în momentul în care senzorul de temperatură detectează o valoare mai mare decât cea prestabilită inițial;

un display/ecran LCD, pentru afișarea informațiilor referitoare la starea sistemului de detecție, valoarea temperaturii înregistrate în cadrul incintei considerate.

un stabilizator de tensiune;

o sursă de 12V, pentru alimentarea sistemului.

1.3 Schema electronica de principiu a sistemului

Figura 1.1 – Schema electronică a sistemului de monitorizare a temperaturii și gazului

Capitolul II

Descrierea componentelor din schema electronică

2.1 Modulul de dezvoltare Arduino Uno R3

2.1.1 Generalități

Compania Arduino este una care fabrică și dezvoltă, atât plăcuțe de dezvoltare bazate pe microcontrolere, cât și partea de software ce este menită funcționării și programării acestora cu ușurință. Pe lângă toate acestea, compania cuprinde și o colectivitate uriașă care se ocupă cu producerea și repartizarea de proiecte care au ca obiectiv principal, fabricarea de mecanisme electronice capabile să poată intui și supraveghea activități variate sau fenomene existente în viața reală.

Designul plăcilor Arduino este conceput de câțiva furnizori și folosesc o gama destul de variată de microcontrolere. Astfel plăcile acestea de dezvoltare pot fi foarte utile într-o gamă variată de proiecte și aplicații datorită pinilor de intrare (IN), ieșire (OUT) analogici și digitali puși la dispoziția utilizatorului. Plăcile Arduino permit încărcarea programelor software dezvoltate de utilizator, existente în calculatorul personal, prin intermediul interfeței de comunicații seriale și prin USB. Compania Arduino pune la dispoziția utilizatorilor un program ce poate fi descărcat gratis de pe pagina oficială a producatorului (https://www.arduino.cc). Acest software este un mediu de dezvoltare integrat ( IDE – „Integrate Development Environment”) ce a fost conceput special pentru programarea cu ușurință a microcontrolerelor în limbaje de programare precum C și C++.

În anul 2005 a fost lansat pe piață prima plăcuță de dezvoltare produsă de compania Arduino. Această plăcuță a fost adresată unei game largi de utilizatori (de la utilizatori începători până la utilizatori avansați) și avea ca principale obiective crearea de dispozitive inteligente competente să comunice cu mediul înconjurător prin intermediul unor senzori electronici și a unor sisteme cu acționare mecanică. Astfel cu ajutorul acestei plăcuțe se puteau dezvolta aplicații variate cum ar fi: roboti simpli, roboti inteligenti, detectoare de lumină sau de mișcare. Aceste plăcuțe de dezvoltare se găsesc de regulă în comerț sub forma unor kit-uri de asamblat dar se găsesc și sub formă preasamblată.

Arduino Uno R3 (Figura 2.1) este o placă de dezvoltare care se bazează pe microcontrolerul ATmega328P. Acest microcontroler conține:

14 pini digitali de Intrare/Ieșire (IN/OUT) din care 6 pini pot fi utilizați ca ieșire PWM (PWM – „Pulse Width Modulation”);

6 pini analogici de intrare, un cristal de cuarț la o frecvență de 16.000Hz (16MHz);

conexiune USB;

un buton de reset;

mufă ICSP prin care se poate realiza programarea directă a microcontrolerului.

Figura 2.1 – Arduino Uno R3

2.1.2 Microcontrolerul ATmega 328P

Specificații tehnice ale acestui microcontroler sunt prezentate mai jos.

Figura 2.2 – Microcontrolerul ATmega 328P – configurația pinilor

Figura 2.3 – Schema bloc a microcontrolerului ATmega 328P

Microcontrolerul ATmega328P este un microcontroler pe 8 biți realizat în tehnologia CMOS și face parte din familia de procesoare AVR și care este caracterizat printr-un set redus de instrucțiuni (RISC). Arhitectura RISC permite execuția mai multor instrucțiuni într-un singur ciclu de tact, ceea ce duce la îmbunătățirea performanței de 10 ori față de procesoarele convenționale care operează la aceeași frecvență de lucru.

Figura 2.4 – Schema bloc a arhitecturii AVR

Funcția principală a nucleului AVR este de a asigura funcționarea corectă a programului. În scopul de a crește performanța de lucru a procesorului, AVR folosește o arhitectura de tip Harvard având memoriile separate. Aceste microcontrolere sunt destinate aplicațiilor simple: controlul motoarelor, controlul fluxului de informatie pe portul USB, etc. Pe baza acestui nucleu firma Atmel a dezvoltat mai multe familii de microcontrolere, cu diferite structuri de memorie și de interfețe intrare/ieșire(IN/OUT), destinate diferitelor clase de aplicații.

Acest tip de microcontroler este prevăzut cu o gamă largă de dispozitive intrare/ieșire (IN/OUT) și de periferice încorporate. Conține un timer programabil cu circuit de prescalare, surse de întrerupere interne și externe, un timer de urmărire cu oscilator independent, un circuit oscilant de tip RC,6 moduri de operare de tip SLEEP (STAND-BY) și POWER DOWN cu rol in economisirea energiei. Cele 6 moduri de operare cu consum redus sunt:

Idle Mode – CPU este oprit dar interfețele USART, SPI, TWI, CAD, comparatorul analogic, timerele și sistemul de întreruperi continuă să funcționeze. O cerere de întrerupere readuce procesorul în stare de funcționare.

ADC Noise Reduction Mode – CPU este oprit însă convertorul analog-digital, întreruperile externe, interfața TWI, timerul programabil și timerul de urmărire continuă să funcționeze.

Power-down Mode – Oscilatorul extern este blocat însă rămân active întreruperile externe, interfața TWI și timerul de urmărire.

Power-save Mode – Este similar cu modul Power-down cu diferența că și timerul programabil continuă să funcționeze.

Standby Mode – Este identic cu modul Power-down cu deosebirea că oscilatorul continuă să funcționeze.

Extended Standby Mode – Este disponibil atunci când este folosit un oscilator cu cuarț, iar in rest este identic cu modul Power-down.

Specific arhitecturii Harvard, procesoarele folosesc spații de memorie și magistrale de acces separate pentru coduri (program) și pentru date. Toate procesoarele au memorie de program de tip flash integrată. Memoria de program poate fi programată fără scoaterea ei din sistem ceea ce permite efectuarea rapidă de upgrade-uri în programe. Programarea se poate face in două moduri: serial și paralel. Procesoarele au memorie de date integrată de tip RAM pentru variabile și memorie de tip EEPROM pentru stocarea constantelor.

O altă calitate remarcabilă a acestor microcontrolere este consumul redus de energie. Domeniul tensiunilor de alimentare este cuprins între 1.8 V și 5 V. Procesoarele folosesc 6 moduri diferite de funcționare cu consum redus ceea ce asigură reducerea consumului când microcontrolerul nu este activ. La frecvența de tact de 1 MHz și la o tensiune de alimentare de 3 V procesorul activ consuma 1,1 mA, iar în regim POWER DOWN consumul se reduce la o valoare mai mică de 1μA.

Acest microcontroler oferă posibilitatea de control al frecvenței tactului prin software de la 0 MHz la valoarea de 16 MHz prin care se garantează o viteză maximă de execuție atunci când este nevoie, iar în restul timpului microcontrolerul poate trece în STAND-BY unde consumul de energie este minim.

Microcontrolerele AVR folosesc o stivă software organizată în memoria SRAM (memoria de date). Stiva este folosită în principal pentru stocarea temporară a datelor, pentru stocarea variabilelor locale și pentru stocarea adreselor de revenire din întreruperi sau la apelul subrutinelor. Accesarea stivei se efectuează cu ajutorul registrului contor de stivă SP (Stack Pointer) care este actualizat de procesor la fiecare accesare a stivei. Stiva operează pe principiul LI-FO (Last Input – First Output) și evoluează prin decrementarea adreselor. La încarcarea unei date în stivă SP este decrementat, iar la citire este incrementat, astfel ca SP indică întotdeauna prima locatie liberă din vârful stivei. Dimensiunea stivei este limitată de dimensiunea memoriei de date SRAM instalate. Deoarece procesorul nu setează automat la pornire adresa de început a stivei (care este adresa cea mai mare a zonei de memorie alocată stivei) acest lucru trebuie efectuat de utilizator prin program. Pentru transferul de date in stivă procesorul folosește instrucțiunea PUSH, iar pentru transferul din stivă instrucțiunea POP.

Microcontrolerul ATmega328P conține o memorie flash pentru programe, reprogramabilă. Deoarece toate instrucțiunile nucleului AVR sunt de 16 sau 32 biți, memoria flash este organizată pe cuvinte (16 biti) în formatul 8Kx16. Pentru securitatea software-ului, spațiul pentru memoria de programe flash este împărtit în două secțiuni: secțiunea de program boot și secțiunea pentru programe de aplicație. Memoria flash suportă aproximativ 100.000 de cicluri de scriere/ștergere.

Memoria de date SDRAM este organizată pe octeți. Primele 96 de adrese din spațiul memoriei SDRAM sunt rezervate fișierului de registre, iar urmatoarele 1024 de locații sunt dedicate datelor interne SDRAM. Din fișierul de registre fac parte cele 32 de registre de uz general, iar restul de 64 de adrese sunt rezervate registrelor asociate dispozitivelor intrare/ieșire. Memoria SRAM are o capacitate între 128 B(bytes) și 4 KB în funcție de tipul particular al microcontrolerului. În cazul microcontrolerului ATmega328P memoria de date are o capacitate de 2KB. SRAM-ul este accesat cu instrucțiuni de acces atât direct cât și indirect, folosind registrul pointer. SRAM-ul este folosit de asemnea și pentru constituirea stivei.

Toate microcontrolerele AVR conțin o arie de memorie EEPROM (EEPROM – „Electrically Erasable Programmable Read-Only Memory”) internă folosită pentru stocarea constantelor. ATmega328P conține 1024 octeți de memorie de date EEPROM. Aceasta este organizată ca un spațiu separat de date, în care pot fi citiți și scriși biți individuali. EEPROM-ul are o durată de viața de aproximativ 100.000 de cicluri scriere/ștergere. Scrierea și citirea în EEPROM decurge diferit față de o memorie SRAM. Timpul de acces pentru o operație de scriere este de 2,5÷4 ms în funcție de valoarea tensiunii de alimentare.

Pinii digitali, analogici și de alimentare

Pinii digitali

După cum am menționat anterior, Arduino Uno R3 este prevăzut cu 14 pini digitali intrare/ieșire(IN/OUT) din care 6 pini pot fi utilizați ca pini de ieșire PWM. În general, pinii digitali pot fi folosiți atât pentru citire cât și pentru scriere și pot diferenția doar două stări (HIGH/LOW) fără a avea abilitatea de a distinge fin între plaja de tensiuni aplicată. Atunci când pe pin este aplicat un voltaj el va citi valoarea High și va raporta Low dacă nu va detecta nici un voltaj. Pentru a putea configura acești pini ca pini de intrare sau ieșire și pentru a putea utiliza unul din pini trebuie să folosim funcții speciale cum ar fi:

PinMode() – această funcție are următoarea sintaxă PinMode(pin, mode).

Parametrul „pin” reprezintă numărul pinului pe care dorim sa îl setăm, iar cu ajutorul parametrului „mode” putem configura pinul respectiv ca pin de intrare (INPUT) sau de ieșire(OUTPUT).

DigitalWrite() – prin intermediul acestei funcții putem atribui valoarea HIGH sau LOW unui pin. Astfel dacă un pin a fost configurat ca pin de ieșire (OUTPUT) prin intermediul funcției anterioare PinMode(), atunci tensiunea va fi setată valorii corespunzătoare: 5V (sau 3,3V) pentru HIGH și 0V(ground) pentru LOW. Dacă pinul a fost configurat ca pin de intrare(INPUT) putem activa(HIGH) sau dezactiva(LOW) rezistența internă. Aceasta are o valoare cuprinsă între 20kΩ and 50kΩ.

DigitalRead() – prin intermediul acestei funcții se poate citi valoarea (HIGH sau LOW) de pe un anumit pin. Sintaxa acestei funcții este DigitalRead(pin) unde parametrul pin reprezintă numărul pinului.

Anumiți pini digitali pot îndeplini și alte funcții cum ar fi:

D0 (RX) – primește informații trimise prin USB;

D1 (TX) – trimite informații către USB;

D2,D3 – pot fi utilizați pentru a genera întreruperi;

D3,D5,D6,D9,D10,D11 – permit scrierea de valori analogice (în intervalul 0

1024) prin transmiterea de tensiuni în intervalul 0-5 V (pinii pentru ieșirea PWM);

D10, D11, D12, D13 – emulare interfață serială (SPI – Serial Peripheral

Interface) prin intermediul unei biblioteci specifice interfeței seriale;

D13 – LED intern conectat prin rezistență . Acest LED este fie aprins (starea ON) când pinul are valoarea HIGH, fie stins (starea OFF) când pinul are valoarea LOW.

Pinii analogici

Arduino Uno R3 are 6 pini analogici notați corespunzător de la A0 la A5. Acești pini

analogici sunt doar de citire, adică pot citi doar datele de intrare, fără a putea emite un semnal. Pinii analogici sunt folosiți pentru a citi precis date de la senzorii analogici având o plajă de 1024 valori posibile și putând să citească valori de la 0 la 5V

Pinii de alimentare

Arduino Uno R3 poate fi alimentat direct prin conexiunea USB, prin intermediul unei

unei surse externe sau prin intermediul pinilor GND- Vin. Acesta poate lucra la voltaje cuprinse în intervalul 6-20 V. În cazul tensiunilor de sub 7V se poate întampla ca la calcule intense Arduino sa devina instabil (de exemplu auto reset). În cazul tensiunilor ce depășesc valoarea de 12V se poate întampla ca stabilizatorul de tensiune sa se supraîncalzească, caz în care se recomandă montarea unui radiator pentru a se evita distrugerea întregului sistem.

Pinii de alimentare sunt următorii:

Vin – tensiunea de intrare când se folosește o sursă externă;

5V – este tensiunea de ieșire ce provine de la stabilizatorul de tensiune aflat pe placă. Această tensiune poate proveni fie de la o sursă externă, fie de la portul USB, fie de la alte surse stabilizate de 5V;

3,3V – această tensiune provine din interiorul plăcuței și suportă un curent maxim de 50mA;

GND – este pinul de masă;

IOREF – prin intermediul acestui pin de alimentare se furnizează tensiunea cu care funcționează microcontrolerul în parametrii optimi.

Comunicare

Prin comunicare se înțelege posibilitatea conectării unui modul Arduino cu un computer, cu un alt microcontroler, cu un alt modul Arduino sau cu alte dispozitive periferice.

În cazul modulului de dezvoltare Arduino Uno R3, comunicarea se poate realiza prin trei metode distincte și anume:

Comunicarea prin „Software Serial”;

Comunicarea prin interfața serială periferică denumită și „Serial Peripheral Interface” (SPI);

Comunicarea prin conectarea circuitelor integrate metodă denumită și „Inter-Integrated Circuit” (I2C).

Software Serial

Software Serial este o comunicare de tip serială care presupune utilizarea unei librării software care realizează comunicarea folosind oricare doi pini digitali ai modulului Arduino, renunțându-se astfel la utilizarea pinilor RX și TX ai microcontrolerului. Pinii RX și TX sunt specializați în realizarea acestui tip de comunicare.

Interfața serial periferică

Interfața serial periferică (SPI – „Serial Peripherical Interface”) este un protocol de date serial sincronă folosită de microcontroler pentru comunicarea cu unu sau mai multe dispozitive periferice, rapid și pe distanțe scurte. Acest tip de interfață poate fi utilizată și în cazul comunicării dintre două microcontrolere. Prin intermediul conexiunii SPI există mereu un microcontroler ce va avea ca funcție controlul și monitorizarea dispozitivelor periferice. În cadrul acestui tip de interfață se va considera un dispozitiv master (care de obicei este reprezentat de microcontroler) și un dispozitiv slave (reprezentat de unul din periferice). Comunicarea SPI se realizează printr-o conexiune specifică fiecărui dispozitiv și prin trei conexiuni comune corespunzătoare tuturor dispozitivelor. Cele trei conexiuni comune sunt:

MISO (Master In Slave Out) – conexiune utilizată de Slave pentru a trimite date către Master;

MOSI (Master Out Slave In) – conexiune utilizată de Master pentru a trimite date către Slave;

SCK (Serial Clock) – semnalul de tact care sincronizează transmisia de date generată de Master.

Conexiunea specifică fiecărui dispozitiv este:

SS (Slave Select) – conexiune utilizată de Master pentru a activa sau dezactiva un dispozitiv Slave.

Când pinul dispozitivului SS (Slave Select) este în 0 logic (LOW) dispozitivul slave comunică cu masterul. Când pinul este in 1 logic (HIGH) dispozitivul slave ignoră comunicarea cu masterul.

În cazul Arduino UNO, pinii Arduino SPI sunt:

MISO – pinul digital 12;

MOSI – pinul digital 11;

SCK – pinul digital 13;

Pinul default SS este pinul digital 10. În cazul în care este mai mult de un dispozitiv SPI, vom folosi mai mulți pini Slave Select, nu doar pinul digital 10, fiecare dispozitiv fiind conectat cu câte un pin Slave Select distinct.

Inter – Integrated Circuit

Interfața tip „Inter-Integrated Circuit” (I2C) este o interfață serie care a fost definită din dorința de simplificare și standardizare a liniilor de date. Prin aceasta soluție s-a reușit reducerea numărului de linii la două. Popular această conexiune mai este cunoscută și sub denumirea de „comunicare pe două fire” sau „Two Wire Interface” (TWI). Un astfel de sistem este constituit, de regulă, dintr-unul sau mai multe microcontrolere și o serie de echipamente periferice.

După cum am menționat mai sus realizarea unui sistem I2C presupune interconectarea unor circuite integrate (specializate) prin numai două linii. Cele două linii de semnal sunt denumite "serial data" (SDA) și "serial clock" (SCL). Fiecare circuit integrat are o adresă unică și poate funcționa fie ca transmițător, fie ca receptor, în funcție de tipul circuitului.

În cazul Arduino UNO, pinii I2C pentru Arduino sunt pinul analogic 4 (care este pinul SDA) și pinul analogic 5 (care este pinul SCL). Pentru a folosi un dispozitiv I2C, vom conecta pinul SDA al dispozitivului cu pinul SDA al Arduino, pinul SCL al dispozitivului cu pinul SCL al Arduino.

Conectarea prin USB

USB-ul este o magistrală serial, cea mai raspandită la ora actuală prin care se poate face conexiunea dispozitivelor periferice la un computer. În categoria dispozitivelor periferice intră: mouse-ul, tastatura, imprimanta, scanner-ul, telefoanele mobile sau dispozitivele de stocare externă. USB a fost conceput în anul 1996 pentru că se dorea oferirea utilizatorilor a unei interfețe universale cu o mare viteza de transfer, ușor de folosit și mult mai ieftină.

Avantajele acestei magistrale seriale comparativ cu vechea interfață (RS232) sunt:

Dispozitivele periferice pot fi alimentate prin USB sau pot fi cu alimentare proprie;

Viteza de transfer a datelor pornește de la 1.5Mbps(USB 1.0) și poate ajunge până la 5Gbps(USB 3.0);

Permite utilizarea ușoară de către utilizator(adaugarea sau eliminarea unui dispozitiv periferic se face cu ușurință).

utilizatorul poate conecta aproximativ 130 de dispozitive periferice prin USB la un computer.

Un cablu de conexiune prin USB este alcătuit din 4 fire. Pe două fire se transmit datele dintre periferic și calculator iar celelalte două sunt folosite pentru transferul tensiunii de alimentare (de aproximativ 4.9 5.1 V) și tensiunii de referința (masa – Gnd). Portul USB permite cuplarea și decuplarea dispozitivului periferic în orice moment. Sistemul de operarare software al computerului este capabil să se adapteze la orice modificare fizică.

Placa Arduino UNO se conectează la portul USB al calculatorului folosind un cablu de tip USB A-B (Figura 2.5).

Figura 2.5 – Cablu USB de tip A-B

Software-ul de programare – Arduino IDE

Programarea placuței de dezvoltare Arduino Uno R3 se face prin intermediul softului fără licență pus la dispoziție de către producător. Pentru utilizarea acestui program acesta trebuie inițial descărcat de pe pagina web a producătorului iar apoi trebuie instalat pe un computer. După instalare placa Arduino trebuie conectată prin USB la computer. În momentul conectării prin portul USB, placa Arduino este alimentată cu o tensiune care va asigura funcționarea optimă a întregului sistem.

Mediul de dezvoltare integrat al Arduino („Integrated Development Environment” – IDE) conține un editor de text pentru scrierea codului, o zonă de mesaje, o consola de text, o bară de instrumente cu butoane pentru diferite funcții și o serie de meniuri.

Figura 2.6 – Arduino IDE

Programele scrise prin intermediul Arduino IDE se mai numesc și schițe (sketches). Aceste schițe sunt scrise în editorul de text și sunt salvate cu extensia *.ino. Editorul de text permite utilizatorului să aducă modificări textului. În zona de mesaje se vor afișa diferite informații cu privire la memoria ocupată de program sau eventualele erori ce pot sa apară la compilare. În colțul din dreapta jos sunt afișate informații referitoare la numele plăcii ce urmează a fi configurată și la portul serial (în cazul nostru: „Arduino/Genuino Uno on COM3”). Butoanele de pe bara de instrumente permit verificarea și încarcarea programului dar și posibilitatea de a crea, deschide și salva schițe.

Verify – verifică codul în vederea existențelor erorilor de compilare

Upload – încarcă codul în placa Arduino New – creează o schiță nouă Open – deschide o schiță existentă Save – salvează schița curentă

Serial Monitor – asigură comunicarea prin portul serial

În meniul File sunt incluse următoarele funcții:

New – creează noi proiecte;

Open – deschide un proiect;

Open Recent – oferă o listă scurtă a celor mai recente schite;

Sketchbook – arată schițele actuale din structura proiectului;

Examples – orice exemplu furnizat de Software-ul Arduino (IDE) sau bibliotecă apare în acest element de meniu;

Close – închide schița curentă;

Save/Save as – permite salvarea schiței curente cu un alt nume;

Print – imprimare;

Preferences – permite modificarea setărilor programului (limba, fontul);

Quit – închide toate ferestrele programului.

În meniul Edit avem acces la următoarele funcții:

Undo/Redo – ne întoarcem cu unul sau mai mulți pași pe parcursul editării;

Cut – se elimină textul selectat din editor și îl plasează în clipboard;

Copy – multiplică textul selectat în editorul și îl plasează în clipboard;

Copy for Forum – copiază codul din schiță în clipboard într-o formă adecvată pentru a fi postat pe forum;

Copy as HTML – copiază codul din schiță în clipboard într-o formă adecvată pentru a putea fi postat pe o pagină web;

Paste – pune conținutul din clipboard la poziția cursorului, în editorul;

Select all – selectează și scoate în evidență întregul conținut al editorului;

Comment/Uncomment – se adaugă sau se șterge indicatorul pentru comentariu „//” la începutul fiecărei linii selectate;

Increase/Decrease Indent – adaugă un spațiu la începutul liniei selectate;

Find – permite căutarea în schița curentă a unui cuvânt sau grup de cuvinte;

Find next – permite căutarea elementului următor;

Find Previous – permite căutarea elementului anterior.

În meniul Sketch sunt disponibile următoarele funcții:

Verify/Compile – verifică schița in vederea existenței erorilor de compilare;

Upload – încarcă codul pe placa Arduino;

Upload Using Programmer – permite suprascrierea programului încarcat pe placă; Această funcție permite utilizarea în întregime a capacității memoriei flash;

Export Compiled Binary – salvează fișierul cu extensia *.hex pentru a putea fi folosit pe alte dispositive;

Show Sketch Folder – deschide folderul care conține schița curentă;

Include Library – adaugă o bibliotecă nouă în schița curentă prin înserarea sintagmei #include la începutul codului;

Add File – adaugă un fișier sursă pentru schița curentă.

Un alt meniu important este Tools unde se întalnesc următoarele funcții:

Auto Format – aranjează automat codul sursă în pagină;

Archive Sketch – creează o arhivă (*.zip) schiței curente. Arhiva este plasată în același director cu schița;

Fix Encoding & Reload – fixează posibilele incompatibilități între schița curentă și sistemul de operare;

Serial Monitor – se deschide fereastra monitorului serial și inițiază schimbul de date cu orice panou conectat pe portul selectat;

Board – permite selectarea plăcii pe care dorim să o programăm;

Port – acest meniu conține toate dispozitivele seriale;

Programmer – permite selectarea unui programator hardware atunci când nu se folosește conexiunea prin USB (serială) ;

Get Board Info – această funcție oferă informații referitoare seria placii precum și modelul acesteia.

Senzorii de temperatură

Aspecte generale

Creșterea deosebită a automatizării sistemelor de producție necesită folosirea unor componente care să fie capabile să primească și să transmită informații referitoare la procesul de producție. Senzorii îndeplinesc aceste funcții și importanța lor a crescut în ultimii ani în procesul de măsurare și de control al proceselor tehnologice. Sensorul furnizează informațiile unui controler sub forma unor variabile de proces. Prin variabile de proces se înțeleg mărimi fizice care caracterizează procesul tehnologic respectiv: temperatura, presiunea, forța, lungimea, unghiul de rotație, nivel, debit, viteză, acceleratie, ultrasunete, proximitate, radiații optice, magnetice, ș.a.

Există sensori pentru majoritatea mărimilor fizice care reacționează la una din aceste mărimi și transmit semnale relevante. Caracteristicile principale ale senzorilor sunt:

Un senzor este un convertor care transformă o mărime fizică (de exemplu temperatură, distanță, presiune) într-o altă mărime mai ușor de evaluat, în mod uzual, o mărime electrică.

Un senzor nu trebuie să genereze întotdeauna un semnal electric. De exemplu o valvă pneumatică generează un semnal pneumatic la ieșire sub forma unei schimbări de presiune.

Senzorul este un dispozitiv care poate monitoriza un proces prin semnalizarea erorilor, analizarea acestora și transmiterea informațiilor către alte componente.

Temperatura reprezintă una dintre mărimile cele mai frecvent măsurate în numeroase domenii datorită faptului că în majoritatea proceselor fizice, chimice, biologice, naturale sau artificiale, intervin fenomene de natură termică. Se apreciază că în aplicațiile industriale, în medie, 50% din totalul punctelor de măsurare și peste 20% din cel al buclelor de reglare au ca obiect temperatura sau alte mărimi termice.

Supravegherea sau reglararea temperaturii pot fi întâlnite practic în toate ramurile industriale, principalele scopuri fiind optimizarea fluxurilor termice în procesele tehnologice, întocmirea bilanțurilor de energie termică, evaluarea și reducerea pierderilor prin transfer de căldură, asigurarea și menținerea anumitor condiții climatice in fazele de producție, depozitare sau transport.

Valorile temperaturilor care trebuiesc măsurate variază în limite largi de la -200 °C, până la 3000 – 3500 °C. Totodată este important de subliniat faptul că, dat fiind implicațiile tehnico-economice deosebite, măsurarile trebuie efectuate cu precizie ridicată și mijloacele de măsurare utilizate să nu exercite influențe nedorite asupra proceselor respective. Mediile ale căror temperatura se măsoară se pot afla în oricare dintre cele 3 stari de agregare posibile (solid, lichid și gazos). Pot astfel să apară situații variate, cum ar fi: măsurarea temperaturii unor fluide sau chiar solide în mișcare, măsurări de temperaturi locale sau pe suprafețe mari, în zone și la distanțe ușor accesibile sau dimpotrivă. Senzorii( traductoarele) de temperatură se mai numesc și temometre.

În funcție de tipul ieșirii și modul de comandă, traductoarele de temperatură sunt:

Analogice;

Cu intrări și ieșiri numerice;

Cu ieșiri numerice;

Pentru monitorizarea proceselor.

Un traductor analogic dă la ieșire o tensiune care depinde liniar de temperatură.

La traductoarele cu intrări și ieșiri numerice, datele numerice sunt transmise spre un mictrocontroler printr-o magistrală serie.

Traductoarele cu ieșire numerică au diverse tipuri de ieșiri numerice pe o singură linie. Aceste traductoare pot avea incorporate linii de întarziere, caz în care datele de ieșire sunt sub forma frecvenței unui semnal analogic

Traductoarele pentru monitorizarea proceselor, au rolul de a monitoriza tensiunile de alimentare ale sistemului.

Traductoarele de temperatură se pot clasifica în două mari categorii:

Cu contact cu obiectul măsurat;

Fără contact cu obiectul măsurat.

Traductoarele de temperatură cu contact cu obiectul de măsurat, conține un element sensibil care se află in contact direct cu mediul. Traductoarele de temperatură cu contact reprezintă categoria cea mai frecvent utilizată. Un astfel de traductor este capabil sa măsoare temperature cuprinse în intervalul -200 °C și 1600 °C. Problema cea mai importantă, din punct de vedere al preciziei, este aceea a influenței pe care o exercită introducerea elementului sensibil asupra câmpului de temperatură existent în mediul de măsurat. Un alt aspect care trebuie avut în vedere este cel referitor la regimul dinamic al traductoarelor de temperature cu contact. Transferul de căldură de la mediul de măsurat la elementul sensibil necesită un anumit timp, de dorit cât mai redus, până la echilibrul termic. De asemenea trebuie accentuată necesitatea unor mijloace de protecție a elementului sensibil la scufundarea acestuia în medii corozive sau metale topite.

Traductoarele cu contact se impart în două categorii:

Termometre cu contact cu senzori neelectrici;

Termometre cu contact cu senzor electrici.

Traductoarele de temperatură fără contact se folosesc la măsurarea temperaturilor mai ridicate cuprinse în intervalul 3000 °C – 3500 °C, la măsurarea temperaturii pe suprafețe, sau în cazul unor obiecte aflate în mișcare. Aceste traductoare funcționează pe baza radiațiilor emise de corpurile aflate la temperaturi înalte. Elementul sensibil la acest tip de traductoare este situat în afara mediului, a cărei temperatură se măsoară, are capacitatea de a detecta, la o distanță convenabilă, energia radiantă pe o anumită lungime de undă. Traductoarele de temperature fără contact, fiind folosite la temperaturi înalte, se mai numesc și traductoare de tip pirometric.

Senzorul de temperatură LM35

Descriere și caracteristici

Senzorul de temperatură LM35 este un dispozitiv electronic fabricat de compania Texas Instruments și face parte din categoria termometrelor cu contact direct cu obiectul de măsurat. LM35 este un circuit integrat, care masoară temperatura cu precizie. LM35 oferă o tensiune de ieșire care este liniar proporțională cu temperatura în grade Celsius.

Figura 3.1 – Senzorul LM 35

Dispozitivul LM35 are un avantaj față de senzorii de temperatură calibrați în grade Kelvin, deoarece utilizatorul nu este nevoit să extragă tensiune mare de la ieșire pentru a obține o valoare convenabilă în grade Celsius. LM35 nu necesită nici o calibrare externă pentru a furniza o acuratețe de ±0,25 °C la temperatura camerei și de ±0,75 °C pentru o temperatură ce depașește -50 °C și +125 °C. Costul mic al acestui senzor se datorează prin faptul că la nivelul substratului din siliciu se realizează o calibrare automată. Impedanța scazută de ieșire și calibrarea precisă a dispozitivului simplifică intefațarea cu un circuit de reglare a temperaturii. Dispozitivul este alimentat prin intermediul unei surse simple de alimentare. Pe măsură ce dispozitivul atrage un curent de 60 μA de la sursa de alimentare senzorul se încălzește foarte puțin cu o valoare de aproximativ 0,1 °C. Acest senzor poate lucra în cele mai bune condiții la o temperature cuprinsă în intervalul -55 °C și +150 °C ( -40°C și +110°C ).

Caracteristicile principale ale acestui senzor sunt prezentate în continuare:

Este calibrat direct în grade Celsius;

Are o acuratețe de ±0,25 °C la o temperatură de 25 °C;

Are un domeniu extins de măsurare a temperaturii cuprins în intervalul -55 °C și +150 °C;

Lucrează cu tensiuni cuprinse în intevalul 4 V și 30 V;

Impedanță mica de ieșire (0.1 Ω ) pentru o sarcină de 1 mA;

Configurația pinilor și funcții

Figura 3.2 – Configurația pinilor

LM35 are trei pini de conectare.

În pinul VS se va conecta borna pozitivă a sursei de alimentare. Valoarea tensiunii de intrare trebuie sa fie cuprinsă în domeniul 4V-30V;

Pinul GND reprezintă masa și se conectează la borna negativă a sursei de alimentare;

Pinul Vout este chiar ieșirea analogică a senzorului de temperatură.

Specificații

Figura 3.3 – Caracteristici tipice de performanță

Alimentarea

Senzorul de temperatură LM35 este foarte ușor de folosit în diverse aplicații datorită valorilor numeroase ale tensiunii de alimentare ce îi pot fi atribuite (4V-30V). În medii zgomotoase se recomandă montarea unui condensator cu o capacitate aproximativă de 0,1 μF. Acest condensator trebuie să se conecteze între pinul VS și GND.

Senzorii chimici

Aspecte generale

Din ce în ce mai mult, în numeroase procese industriale se produc, prelucrează, depozitează și se utilizează o cantitate apreciabilă de substanțe care, în amestec cu aerul sau alte substanțe, pot forma amestecuri explozive. Față de această situație, în scopul creșterii siguranței în funcționare a obiectivelor, se pune problema de a depista, în timpul util, pericolul de explozie și în mod implicit, de a se lua măsuri de înlăturare a pericolului. Soluționarea acestei probleme implică, de fapt, rezolvarea a două cerințe: detectarea concentrațiilor de gaze și vapori combustibili din aer și alarmarea înainte de atingerea unor valori potențial periculoase.

Traductoarele pentru analiza gazelor (analizoarele de gaze) sunt destinate, în general măsurării unui singur component dintr-un amestec de gaze. Funcționarea lor se bazează pe măsurarea unui parametru fizic sau electrochimic al amestecului analizat.

În funcție de parametrul măsurat, analizoarele de gaze sunt de mai multe tipuri:

Cu măsurarea conductivității termice;

Cu măsurarea căldurii de reacție;

Cu măsurarea absorbției în infraroșu;

Cu măsurarea susceptibilității magnetice;

Cu măsurarea emisiei optice;

Cu măsurarea masei atomice.

Senzorul semiconductor pentru gaz MQ-2

Generalități privind senzorii semiconductori pentru detecția gazului

Senzorii semiconductori pentru gaz inventați de Naoyoshi Taguchi sunt produși și comercializați de firma Figaro începând din anul 1968. Din 1968 până în 1990 numai în Japonia sau utilizat 50 milioane de senzori.

Semiconductoarele se caracterizează printr-o conductivitate de ordinul ∈[, ] , intermediară între conductivitatea metalelor ∈[ , ] și conductivitatea materialelor izolatoare ∈[,] . La semiconductoare, conductivitatea variază în limite foarte largi, fiind sensibilă la orice modificare chimică a materialului intervenită chiar și în straturile superficiale exterioare. De asemenea, orice modificare a concentrației impurităților se răsfrânge asupra conductivității electrice a semiconductorului.

Pe principiul modificării conductivității electrice se bazează senzorii de gaze cu cristale semiconductoare.

Descrierea generală a senzorului MQ-2

Figura 4.1 – Senzorul semiconductor de detecție a gazului MQ-2

Materialul semiconductor care intră în componența senzorului MQ-2 este bioxidul de staniu (SnO2), o substanță relativ comună ce este utilizată pentru glazurarea de culoare albă a porțelanurilor. Atunci când se detectează molecule de gaz sensibilitatea senzorului crește proporțional cu cantitatea de gaz. Placa pe care vine încorporat acest senzor de gaz (MQ-2) are în componență un rezistor de protecție și un potențiometru pentru reglarea sensibilității.

Senzorul de gaz MQ-2 poate detecta cu ușurință:

Gaz petrolier lichefiat (GPL);

Propan;

Metan;

Butan;

Hidrogen;

Fum.

Principiul de funcționare

Figura 4.2 – Structura internă a senzorului semiconductor cu bioxid de staniu MQ-2

Principiul de funcționare al acestui tip de senzor este destul de simplă. Semiconductorul (SnO2) este încălzit la o temperatură cuprinsă în intervalul 100 °C și 400 °C prin intermediul unor bobine parcurse de curent electric. Ansamblul este înglobat într-o capsulă poroasă de metal care permite difuzia liberă a amestecului de gaz-aer către cristalul semiconductor, în scopul oxidării, dar oprește propagarea înspre exterior a eventualei flăcări ce s-ar putea forma.

La contactul amestecului gaz-aer cu suprafața semiconductorului are loc procesul de oxidare care conduce la consumarea moleculelor de oxigen ce sunt conținute în stratul de suprafață al semiconductorului. Modificarea conținutului de oxigen molecular conduce la creșterea conductivității electrice a cristalului. Această creștere este proporțională cu concentrația de gaz combustibil și poate fi exprimată printr-o relație de forma:

C = K ⋅ A unde:

C – concentrația amestecului gaz-aer;

K – constanta specifică tipului de semiconductor;

A – valoarea conductivității electrice.

Un dezavantaj al acestui senzor îl reprezintă faptul că acesta este sensibil la orice amestec de gaz – aer neputând specifica care este gazul analizat. Acest lucru este pe deplin explicabil având în vedere că, deși energia termică cedată în urma procesului de oxidare catalitică sau consumul de oxigen molecular este diferit de la gaz la gaz, capul detector nu poate preciza ce tip de gaz este analizat.

Caracteristici tehnice și configurația pinilor

Specificațiile acestui senzor sunt:

Dimensiuni : 32mm x 32mm x 30mm;

Tensiunea de lucru: 5V ± 0,2V;

Timpul de răspuns: <10s;

Timpul de revenire la condițiile inițiale: <30s;

Rezistența de încălzire: 31 Ω;

Curentul de încălzire: <181 mA;

Puterea de încălzire: <900 mW;

Temperatura de lucru: -20°C și +50°C

Senzorul MQ-2 are 4 pini:

Vcc;

D0;

A0;

Ground. Figura 4.3 – Pinii de conectare ai senzorului MQ-2

Servomotoare

Aspecte generale

În literatura de specialitate sub denumirea de servomotoare se includ motoarele electrice fabricate special pentru a fi utilizate în sistemele automate de poziționare și acționare care în general sunt de puteri reduse. Pentru puteri mai mari se folosesc motoarele electrice convenționale, care sunt elemente de execuție mai lente, cu constante de timp mai mari dar și cu randament mult mai bun.

Servomotoarele sunt motoare electrice speciale, de curent continuu sau curent alternativ cu viteză de rotație reglabilă într-o gamă largă în ambele sensuri având ca scop deplasarea într-un timp prescris a unui sistem mecanic (sarcina) de-a lungul unei traiectorii date, realizând totodată și poziționarea acestuia la sfârșitul cursei cu o anumită precizie. Servomotoarele alimentate cu o tensiune continuă se numesc servomotoare de curent continuu, în timp ce servomotoarele alimentate cu o tensiune alternative se numesc servomotoare de curent alternative.

Sistemele de reglare automată moderne impun servomotoarelor următoarele criterii de performanță:

Gamă largă de modificare a vitezei unghiulare în ambele sensuri;

Funcționare stabilă la viteză foarte mică;

Fiabilitate și robustețe ridicată;

Raport cuplu/moment de inerție cât mai mare;

Caracteristici de reglare liniare;

Dimensiuni reduse și performanță ridicată.

Servomotorul SG-90

Specificații tehnice

Figura 5.1 – Servomotorul SG-90

Dimensiuni: 22,2mm x 11,8mm x 31mm;

Greutatea: 9g;

Viteza de lucuru: 0,1s/60° (grade);

Tensinea de alimentare: 4,8V-5,2V;

Temperatura de lucru: 0°C și +55°C.

Principiul de funcționare și control

Servomotorul SG-90 este un dispozitiv electronic de dimensiuni reduse care se poate roti cu un unghi cuprins în intervalul 0° – 180°. Acesta servomotor conține un motor DC (curent continuu), un potențiometru, un ansamblu de roti dințate și un circuit de control. Ansamblul de roți dințate contribuie la creșterea cuplului.

Servomotorul SG-90 este controlat prin PWM (Pulse Width Modulation) care este transmis prin intermediul firelor de control. Acesta citește câte un impuls PWM care vine prin pinul de control la fiecare 25ms iar lățimea impulsului va determina unghiul de rotire al servomotorului. De exemplu un impuls cu o lățime de 1,5ms va determina o rotire de 90°. Dacă lățimea impulsului este mai mică de 1,5ms unghiul de rotire va fi apropiat de 0°, în timp ce o lățime mai mare de 1.5ms va determina o rotire de aproximativ 180°. În general un servomotor poate fi rotit la 0° la 180° însă în unele cazuri unghiul maxim de rotire poate ajunge la 210° în funcție de tipul de aplicație pentru care a fost conceput.

Figura 5.2 – Configurația PWM

Configurația pinilor

Servomotorul SG-90 este prevăzut cu 3 pini de culori diferite. Configurația acestora este următoarea:

Pinul de culoare roșu este pinul Vcc unde se conectează borna pozitivă(+) a sursei de alimentare;

Pinul de culoare maro este pinul Gnd (ground) unde se conectează borna negative(-) a sursei de alimentare;

Pinul de culoare portocaliu este pinul de control al semnalului PWM.

Stabilizatoare electronice

Generalități

Toate circuitele electrice sunt proiectate să lucreze cu o anumită tensiune de alimentare considerată optimă. În practică însă, tensiunile de alimentare variază între anumite limite. Unele circuite sunt mai tolerante față de aceste variații, altele mai puțin. Pentru a rezolva problema acestor variații au fost dezvoltate o serie de circuite electronice care mențin constantă tensiunea de la ieșire(tensiunea stabilizată), în condițiile variației tensiunii de intrare (între anumite limite), a curentului de sarcină și a temperaturii. Aceste circuite poartă denumirea de stabilizatoare de tensiune. Astfel stabilizatorul de tensiune transformă sursa de tensiune nestabilizată într-o sursă de tensiune stabilizată.

Stabilizatoarele de tensiune se clasifică după mai multe criterii, cum ar fi:

După mărimea stabilizată avem:

de tensiune continuă sau alternativă;

de curent;

de frecvență.

După metoda de comandă a elementului de stabilizare:

liniare;

în comutație.

După modelul de conectare a elementului regulator în raport cu sarcina:

cu element de reglare serie;

cu element de reglare paralel.

După metoda de stabilizare distingem:

parametrice (în buclă deschisă);

cu reacție (în buclă închisă).

Stabilizatorul LM7805

Stabilizatorul LM7805 este un stabilizator de tensiune liniar integrat, care reunește într-o singură capsulă toate componentele necesare unui stabilizator liniar performant din toate punctele de vedere. Primele două cifre din codul stabilizatorului (78) reprezintă tipul tensiunii stabilizate (78XX este destinat tensiunilor positive iar 79XX este destinat tensiunilor negative), iar ultimele două cifre (05) reprezintă valoarea tensiunii stabilizate. De exemplu, LM7805 este un stabilizator de tensiune pozitivă care oferă la ieșire 5V.

Figura 6.1 – Stabilizatorul LM7805

Stabilizatorul LM7805 permite obținerea unor tensiuni de ieșire foarte stabile și de valori foarte precise ceea ce îl face util în foarte multe aplicații, însă are un randament destul de scăzut: doar o mică parte din energia consumată la intrare este oferită la ieșire. Din acest motiv stabilizatoarele din aceasta familie (LM78XX), sunt folosite pentru a manipula puteri care rar depășesc câțiva Watti. Pentru puteri mai mari dificultățile și costurile suplimentare implicate de răcirea elementelor active (a tranzistoarelor) impun utilizarea unor stabilizatoare de tensiune cu randament mai crescut.

Specificații tehnice

LM7805 este un stabilizator prevăzut cu 3 pini și este integrat într-o capsulă de tip TO-220.

Caracteristici:

Curentul de ieșire maxim: 1A;

Valoarea tensiunii de ieșire(stabilizate): 5V;

Protecție la supraîncălzire;

Protecție la scurt circuit;

Temperatura de lucru cuprinsă în intervalul -40°C și 125°C;

Deoarece tensiunea de alimentare a sistemului de detecție și monitorizare va fi de 12 V se poate întampla ca stabilizatorul de tensiune să se supraîncălzească. În acest caz se recomandă montarea unui radiator pentru a se evita distrugerea stabilizatorului.

Pentru alegerea radiatorului trebuie să ținem cont de condițiile de compatibilitate dintre capsulă stabilizatorului și radiator.

Figura 6.2 – Tipul de radiator ce este compatibil cu TO-220 (capsula stabilizatorului)

Valorile tehnice din catalog ale acestui stabilizator sunt:

Figura 6.2 – Valori tehnice

Configurația pinilor

LM7805 este prevăzut cu 3 pini ca și alte modele de stabilizatoare aparținând aceleiași familii (LM78XX).

Pinul 1(Vin) – este pinul pe care se introduce tensiunea de intrare (6-36V) ce urmează să fie stabilizată la valoarea de 5V;

Pinul 2(Gnd) – pinul de masă

Pinul 3(Vout) – este pinul pe care se citește valoarea stabilizată a tensiunii de ieșire(5V).

Figura 6.3 – Configurația pinilor

Display-ul LCD

Aspecte generale

Un display cu cristale lichide (LCD – „Liquid Crystal Display”) este alcătuit dintr-o matrice de celule lichide care devin netransparente sau își modifică culoarea sub acțiunea unui curent sau câmp electric. În general rolul unui astfel de dispozitiv este de a afișa diverse caractere (litere, cifre) dar și imagini de diferite dimensiuni. Potrivit noțiunilor de fizică procesul se poate demonstra ținând cont de caracteristica cristalelor lichide. În momentul în care aceste cristale sunt alimentate cu o anumită tensiune electrică pot influența sensul de polarizare a luminii. Un ecran LCD poate fi controlat electronic printr-un codificator de caractere numerice și alfabetice. Un astfel de dipozitiv are un consum foarte redus de energie și nu produce însuși lumina. Astfel aceste cristale, constituie un amestec chimic de natură organică care se gasește în stare de lichid. Proprietatea acestor cristale este de a trece de la o stare de transparență la o stare de netransparență prin ordonarea moleculelor atunci cănd sunt controlate de o tensiune electrică corespunzătoare. Mai exact, prin polarizarea electrică a unor molecule de cristale lichide aflate în opoziție cu restul „câmpului” se creează o imagine vizibilă.

Un astfel de display LCD se utilizează de regulă în diverse aplicații cum ar fi: semnalizări electronice, ceasuri digitale, electrocasnice, computer de bord la autoturisme

Funcționarea ecranelor cu LCD

Ecranele LCD color sunt formate din celule care contin cristale lichide. Aceste celule sunt protejate de două straturi de sticlă transparentă. Cristalele se reorientează și filtrează lumina albă generată de o sursă aflată în spatele ecranului. Filtrele de culoare, combina roșu, verde și albastru(RGB) pentru a creea culoarea dorită. Ecranele LCD reproduc lumina printr-un proces de substracție: din lumina albă sunt extrase componente spectrale astfel încât să rezulte culoarea dorită.

Pentru afișarea informațiilor alfa-numerice pe ecranul LCD există două metode:

metoda segmentelor (afișează caractere numerice similar celulelor cu 7 segmente);

metoda matricei (afișează caractere alfa-numerice și imagini folosind matrice de puncte).

Figura 7.1 – Ecran LCD monocrom: a) cu 7 segmente; b)alfa-numeric

Ecranul LCD 16×02 TC1602A

În acest proiect am folosit un ecran LCD monocolor alfa-numeric de tip 16×02. Acest tip de display este utilizat într-o gamă largă de aplicații datoriă consumului redus de energie. Primul grup de cifre (16) reprezintă numărul maxim de caractere ce pot sa apară pe o singură linie, iar al doilea grup de cifre(02) reprezintă numărul de linii disponibile pe care se poate face afișarea informațiilor. Un astfel de display conține un registru de comandă și un registru de date.

Figura 7.2 – Ecranul LCD TC1602A

Caracteristici tehnice:

Tensiunea de alimentare: 5V;

Temperatura de lucuru: -10°C și +60°C;

Tipul de afișare: 2 linii x 16 caractere pe linie;

Figura 7.3 – Schema bloc a display-ului TC1602A

TC1602A este prevăzut cu 16 pini. Configurația pinilor este prezentată în tabelul următor:

Figura 7.4 – Configurația pinilor

Capitolul III

Implementarea practică a proiectului

Conectarea componentelor

În primă fază conectarea componentelor, precum și programarea lor s-a făcut pe o placă de test (breadboard). Pentru realizarea proiectului pe placa de test am avut nevoie de următoarele componente.

Arduino uno R3;

Senzor de gaz MQ-2;

Senzor de temperatura LM35;

Servomotor SG-90;

Un display LCD 16×02;

Un buzzer;

Un cooler; Figura 8.1 – Placa de test (breadboard)

Leduri și rezistențe;

Fire de conexiune;

Un breadboard este o plăcuță electronică care permite conectarea extrem de simplă a componentelor electronice, prin intermediul unor fire de conexiune de tip tată – tată. Prin intermediul acestei plăci se pot face modificări cu ușurință în ceea ce privește modul de conexiune al componentelor electronice, se pot introduce foarte ușor alte componente electronice, deoarece conectarea componentelor se face fără lipire. Această placă de test este reutilizabilă, are liniile conectate între ele ceea ce o face foarte utilă în diverse aplicații de dificultate diferită.

Conform schemei electronice prezentate în capitolul introductiv componentele se conectează astfel:

1. Conectarea display-ului cu placa Arduino Uno se face astfel:

Pinul 1(VSS) se va conecta la pinul GND;

Pinul 2(VDD) se va conecta la pinul +5V;

Pinul 3(V0) se va conecta în serie cu două rezistențe de 10kΩ pentru unui contrast bun, apoi se va conecta la pinul GND;

Pinul 4(RS) se va conecta la pinul 12;

Pinul 5(RW) se va conecta la pinul 11;

Pinul 6(E) se va conecta la pinul 10;

Pinii 7,8,9,10 rămân fără conexiune;

Pinul 11(D4) se va conecta la pinul 5;

Pinul 12(D5) se va conecta la pinul 4;

Pinul 13(D6) se va conecta la pinul 3;

Pinul 14(D7) se va conecta la pinul 2;

Pinul 15(A) se va conecta la pinul 13;

Pinul 16(K) se va conecta la pinul GND;

2. Senzorul de temperatură LM35 se conectează cu placa Arduino conform schemei:

Figura 8.2 Conectarea senzorului LM – 35

3. Conectarea senzorului de gaz MQ-2 se face similar cu cea a senzorului de temperatură, doar că ne vom conecta la un alt pin analogic(de regula la pinul A0), iar pinul D0 va rămâne fără conexiune.

4. Conectarea servomotorului cu placa Arduino se face destul de simplu. Cei doi pini de alimentare se conectează la GND respectiv la 5V, iar cel de-al treilea pin care e pinul de control al semnalului PWM se conectează la un pin digital care oferă ieșire PWM( la pinul 3, 5, 6, 9, 10 sau 11).

Figura 8.3 – Conectarea servomotorului la placa Arduino

5. Conectarea difuzorului(buzzer-ului) cu placa Arduino se face astfel:

Un pin se va conecta la GND iar celalalt la pinul digital 8.

Figura 8.4 – Conectarea buzzer-ului la placa Arduino

Urmărind toate indicațiile de conectare ale tuturor componentelor am realizat următorul montajul de test:

Figura 8.5 – Montajul de test

Realizarea circuitului imprimat

Un circuit imprimat ( „ Printed Circuit Board” – PCB) este un circuit prefabricat unde conductoarele de legătură și componentele electronice sunt realizate sub formă de benzi înguste.

Prin intermediul unui cablaj imprimat se realizează o conexiune a unui grup de componente electronice. Un cablaj imprimat având rolul de a susține mecanic componentele electronice, se realizează pe o placă neprelucrată de cablaj imprimat brut . O astfel de placă este fabricată dintr-un strat izolator de grosime variabilă pe care se montează fie o folie de cupru (simplu strat) fie două (dublu strat). Grosimea stratului izolator este de aproximativ 1,5 – 1,7 mm însă aceasta poate fi mai mare în funcție de tipul aplicației. Ca și izolator se folosește în mod normal un material ce este alcătuit din fibră de sticlă (FR4). În figura 8.3 se prezintă un cablaj neprelucrat.

Figura 8.6 – Cablaj neprelucrat

Pentru realizarea unui cablaj imprimat sunt necesare parcurgerea următoarelor etape.

Pornind de la schema electronică a montajului se face proiectarea cablajului cu ajutorul programului Eagle 7.6.0.

Figura 8.7 – Cablajul proiectat în Eagle

Se decuplează placa la dimensiunile dorite.

Se lustruiește și se curăță placa folosind un burete de bucătarie și acetonă (cu cât folia de cupru strălucește mai mult cu atât placa este mai bine lustruită).

Figura 8.8 – Placa obținută în urma curățării

Se printează circuitul pe o hârtie foto (lucioasă).

Figura 8.9 – Cablajul printat

Cablajul printat se pune peste placa lustruită, apoi folosind un fier de călcat se apasă placa aproximativ 5 minute.

După răcire se curăță placa până când dispare orice urmă de hârtie.

Se refac eventualele trasee dezlipite cu un marker iar apoi se introduce placa într-o soluție de corodare (clorură ferică) timp de aproximativ 20 de minute.

Figura 8.10 – Plăcuța obținută în urma corodării

Se atașează pe partea opusă a plăcuței, folosind același principiu ca la etapa 5, fața principală a cablajului(figura 8.11), apoi se montează componentele și se lipesc.

Figura 8.11 – Fața principală a cablajului.

Figura 8.12 – Circuitul imprimat final

Funcționarea detaliată a proiectului

După realizarea celor două circuite imprimate următoarea etapă a constat în montarea tuturor componentelor în carcasă. În figura 8.10 se prezintă toate componentele montate în carcasă.

Într-o primă etapă se alimentează sistemul cu o tensiune de 12V folosind o sursă de calculator ATX. Pentru pornirea sau oprirea sistemului se acționează butonul ON/OFF situat pe placa imprimată.

Figura 8.10 – Montajul final

După pornirea sistemului se aprinde LED-ul de culoare verde, servomotorul montat pentru deschiderea/închiderea ușii se resetează pentru a porni din condiția inițială setată în programul sursă, iar imediat după, are loc inițializarea senzorului de detecție a gazului. Această inițializare durează aproximativ 30 de secunde și constă în încălzirea semiconductorului la o temperatură de aproximativ 80°C – 100°C. Mai multe informații despre inițializarea și funcționarea senzorului sunt prezentate în subcapitolul 2.3.2.3. După această inițializare sunt afișate pe display informații referitoare la concentrația de gaz exprimată în procente precum și informații referitoare la temperatura mediului ambiant din incintă exprimată în grade Celsius.

Figura 8.11 – Monitorizarea temperaturii și a concentrației de gaz

În momentul în care temperatura din incintă depașește valoarea de prag setată la 30°C microcontrolerul determină pornirea coolerului situat în partea superioară a carcasei. Odată cu pornirea coolerului pe display apare și următorul mesaj cu caracter informativ:„TEMP RIDICATA !!!”. Cooleru se oprește când temperatura scade sub valoarea de 30°C.

În momentul în care concentrația de gaz din incintă depașește valoarea de 20% microcontrolerul determină declanșarea alarmei prin intermediul buzzerului, servomotorul se rotește de la valoarea inițială (60° – ușa inițial închisă) la valoarea finală de 140° ceea ce va determina deschiderea ușii, iar pe display va aparea mesajul „EVACUARE CLADIRE!!!”, urmat de mesajul „PERICOL EXPLOZIE !!!”. Când concentrația de gaz scade, alarma se oprește, iar servomotorul revine la poziția inițială (ușa se închide).

Rezumat

Această lucrare de diplomă este structurată în mai multe capitole în care sunt prezentate aspectele teoretice și practice ale unui sistem de control al temperaturii și detecție a gazului dintr-o incintă.

În primul capitol se prezintă importanță utilizării unui sistem de control și detecție a gazului. Totodată în acest capitol sunt prezentate aspectele generale ale acestui sistem, modul de funcționare precum și principalele avantaje ale unui astfel de sistem.

În al doilea capitol sunt prezentate și descrise toate componentele electronice conținute în sistemul de monitorizare și control. Cel de-al doilea capitol este divizat în sașe subcapitole. În primul subcapitol este prezentat placa de dezvoltare Arduino Uno R3. Acest subcapitol conține aspecte informative începând cu cele generale și încheind cu programarea modulului.

În cel de-al doilea subcapitol sunt prezentate aspecte generale ale senzorilor de temperatură, precum și noțiuni referitoare la senzorul de temperatură LM35

În al treilea subcapitol se prezină toate informațiile referitoare la senzorii de detecție a gazului precum și modul de funcționare al senzorului MQ-2.

În subcapitolul 4 sunt prezentate toate aspectele generale și teoretice ale servomotoarelor de curent continuu.

În subcapitolul 5 se prezintă toate informațiile referitoare la stabilizatoare electronice, iar în ultimul subcapitol este prezentat funcționarea unui display monocolor cu 2 linii și 16 caractere pe linie.

În capitolul 3 se descrie funcționarea detaliată și realizarea practică a acestui proiect.

Concluzii și îmbunătățiri ce pot fi aduse proiectului

În prezenta lucrare de diplomă se prezintă importanța punerii în practică a unui sistem de monitorizare a temperaturii și de detecție a gazului. În general, un sistem amplu de detecție poate conține diverse componente. Din cele prezentate anterior se cunoaște faptul că sistemul proiectat în cadrul acestei lucrări este unul simplificat și este alcătuit din următoarele componente principale: un modul Arduino care este totodată „creierul” acestui sistem, un senzor de gaz și un senzor de temperatură.

Un sistem de detecție a gazului este un sistem de siguranță ce a fost dezvoltat în industria construcțiilor în ultimii ani. Așadar, se recomandă adesea montarea unui astfel de sistem în orice clădire sau incintă în care este prezentă o instalație de gaz funcțională. Sistemele de monitorizare a temperaturii și detecție a gazului au rolul de a avertiza acustic orice fel de detecție a unei eventuale scurgeri de gaze prevenind producerea unor evenimente dezastruoase (incendii sau explozii) din care pot rezulta pierderi de vieți omenești sau pagube materiale.

Partea practică dezvoltată în cadrul acestui proiect poate fi completată cu următoarele îmbunătățiri:

montarea unui modul GSM. Prin intermediul acestui modul se poate informa utilizatorul prin SMS sau apel telefonic de eventualele scurgeri de gaze;

montarea unui modul wireless. Cu ajutorul acestui modul utilizatorul poate monitoriza și controla sistemul de la distanță prin intermediul unui dispozitiv (telefon, laptop) conectat la internet;

montarea unei pompe de apă pentru stingerea în timp util a incendiului;

montarea unui sistem antiefracție care sa conțină camere video de supraveghere, senzori de prezență;

montarea unui sistem de control acces;

instalarea de panouri solare, care sa permită alimentarea sistemului când se întrerupe alimentarea cu energie electrică.

Bibliografie

Cărți consultate:

Liliana Vornicu – Albu, Traductoare electronice, Editura Pim, Iași, 2013, ISBN 987-606-13-1420-1

Mihail Florea, Dispozitive electronice – note de curs

Site-uri consultate:

https://ro.wikipedia.org/wiki/Arduino

https://www.arduino.cc/en/Main/ArduinoBoardUno

http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf

http://profs.info.uaic.ro/~vcosmin/pagini/resurse_arduino/Cursuri//3/Arduino_7_SoC.pdf

https://www.arduino.cc/en/Reference/SoftwareSerial

https://www.arduino.cc/en/Reference/SPI

http://www.meo.etc.upt.ro/materii/cursuri/ISMT/5.pdf

https://www.robofun.ro/docs/curs/344231212/CursGratuitArduino-Lectia4-Modalitati%20deComunicare.pdf

https://www.arduino.cc/en/Guide/Environment

http://users.utcluj.ro/~mbirlea/z/01z.htm

http://circuitdigest.com/article/servo-motor-basics

https://www.fairchildsemi.com/datasheets/LM/LM7805.pdf

https://en.wikipedia.org/wiki/Liquid-crystal_display

https://cdn-shop.adafruit.com/datasheets/TC1602A-01T.pdf

http://www.ti.com/lit/ds/symlink/lm35.pdf

http://www.micropik.com/PDF/SG90Servo.pdf

https://www.seeedstudio.com/depot/datasheet/MQ-2.pdf

https://ro.wikipedia.org/wiki/Circuit_imprimat

Anexă

Codul sursă al sistemului de monitorizare.

#include <LiquidCrystal.h> // biblioteca specifică lcd-ului

#include <Servo.h> // biblioteca specifică servomotorului

LiquidCrystal lcd(5, 4, 3, 2, 1, 0); // setarea adreselor LCD-ului(pinii care i-am utilizat pentru afișare)

Servo myservo; // funcție pentru controlul servomotorului

const int gasPin = A1; // seteaza pinul A1 pentru constanta gasPin

const int temp =A0;//setează pinul A0 pentru constanta temp

int alarma = 12;//setează pinul 12 pentru declanșarea alarmei

int ventilare = 6;//setează pinul 6 pentru cooler

int lumina = 7;//setează pinul 7 pentru lumina

int buzz=8;//setează pinul 8 pentru buzzer

int ledgaz=11;//setează pinul 11 pentru ledul senzorului de gaz

int senzor;// declară variabila senzor

int gaz;// declară variabila gaz

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

byte L1[16]={

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

0b11111,

};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// funcție pentru setările lcd- ului și a pinilor

void setup()

{

lcd.begin(16, 2);//inițializează interfața LCD și specifică dimensiunea de afișare a displayului(16 coloane, 2 linii)

pinMode(alarma, OUTPUT); //configurează pinul alarmă(12) ca pin de ieșire

pinMode(lumina, OUTPUT);// configurează pinul 7 ca pin de ieșire

pinMode(buzz, OUTPUT);//configurează pinul 8 ca pin de ieșire

pinMode(ledgaz, OUTPUT);//configureaza pinul 11 ca pin de ieșire

pinMode (temp, INPUT); //configurează pinul A0 ca pin de intrare

pinMode(ventilare, OUTPUT);

digitalWrite(ventilare,LOW);// setează pinul 6 în starea low(0 V)

myservo.attach(9); //setează pinul 9 pentru controlul PWM al servomotorului

myservo.write(60);//setează valoarea inițială a sevomotorului la 60 de grade(ea poate fi aleasă între 0 și 180 de grade)

lcd.createChar (1,L1);

lcd.print(char(1));

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

lcd.setCursor(1, 0); //setează cursorul lcd pe poziția:coloana 1 linia 0

lcd.print("Proiect Licenta "); //se afișeazaă pe coloana 1 linia 0

lcd.setCursor(0, 2);

lcd.print(" 2016");

delay(2000); // se setează o întârziere de 2 secunde

lcd.clear();// șterge afișarea lcd-ului și poziționează cursorul pe poziția 0 0(coltul din stanga sus)

lcd.print("Nume");

lcd.setCursor(0, 2);

lcd.print("Savin Gabriel");

delay(2000);

lcd.clear();

lcd.print("Grupa");

lcd.setCursor(0, 2);

lcd.print(" 5401");

delay(2000);

lcd.clear();

lcd.print("Specializare");

lcd.setCursor(0, 2);

lcd.print(" Electr. Aplic.");

delay(2000);

lcd.clear();

lcd.setCursor(1, 0);

lcd.print("init. senzor");

lcd.setCursor(1, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(2, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(3, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(4, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(5, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(6, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(7, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(8, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(9, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(10, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(11, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(12, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(13, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(14, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(15, 1);

lcd.print(char(1));

delay(2000);

lcd.setCursor(16, 1);

lcd.print(char(1));

delay(2000);

}

void loop()

{

lcd.setCursor(8, 0);//setează cursorul lcd-ului pe linia 0 coloana 8

lcd.print(char(1));

lcd.setCursor(8, 1);

lcd.print(char(1));

digitalWrite(ledgaz, HIGH);//setează valoarea HIGH(5V) pinului 11(ledgaz)

delay(50);// întârziere de 50ms

digitalWrite(ledgaz,LOW); //atribuie pinului 11 valoarea LOW(0v)

delay(2000);//întârziere de 2 secunde

float Real_Voltage = analogRead(temp)* 0.004882814;//calcularea tensiunii reale plecând de la valoarea tensiunii pe pinul analogic A0

float Temp_C = Real_Voltage * 80.0;// convertește valoarea tensiunii în grade Celsius

delay(200);

senzor=analogRead(gasPin);//atribuie variabilei senzor valoarea citită de pe pinul analogic A1

gaz = map(senzor, 0, 1000, 0, 100);//atribuie variabilei gaz

delay(200);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Conditii normale

if(Temp_C<30&gaz<20)

{

myservo.write(60); //setează valoarea servomotorului la valoarea inițială de 60 de grade(ușa este închisă)

digitalWrite(buzz, LOW);//setează buzzerul pentru alarmă în starea Low( buzzerul e oprit)

digitalWrite(ventilare, LOW);//seteaza coolerul în starea low( coolerul este oprit)

digitalWrite(lumina, HIGH);//seteaza lumina high( ledurile sunt aprinse)

lcd.clear();//sterge conținutul display-ului

lcd.setCursor(0, 1);//setează cursorul displayului pe linia 1 coloana 0

lcd.print(" ");

lcd.print(gaz);//afișează valoare concentrației de gaz

lcd.print("%");

lcd.setCursor(2, 0);

lcd.print("GAZ:");

lcd.setCursor(11, 0);

lcd.print("temp:");

lcd.setCursor(10, 1);

lcd.print(Temp_C);//afișează valoarea temperaturii

lcd.print("C");

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Monitorizare GAZ

if(gaz>20&Temp_C<30)

{

digitalWrite(ledgaz, HIGH);//aprinde ledul corespunzator gazului

lcd.clear();

myservo.write(140); //setează valoarea de 140 grade servomotorului(se deschide ușa)

digitalWrite(lumina, LOW);//se sting ledurile interioare(se setează în starea low)

digitalWrite(buzz, HIGH);//se activează alarma (se setează valoarea HIGH pe pinul 8)

lcd.setCursor(0, 0);//se mută cursorul pe coloana 0 linia 0

lcd.print("PERICOL");//se afișează mesajul pe coloana 0 linia 0

lcd.setCursor(0, 1);

lcd.print("EXPLOZIE");

delay(700);//întârziere de 700ms

lcd.clear();

lcd.setCursor(7, 0);

lcd.print(char(1));//activează toti biții

lcd.setCursor(7, 1);

lcd.print(char(1));

lcd.setCursor(6, 0);

lcd.print(char(1));

lcd.setCursor(6, 1);

lcd.print(char(1));

lcd.setCursor(5, 0);

lcd.print(char(1));

lcd.setCursor(5, 1);

lcd.print(char(1));

lcd.setCursor(4, 0);

lcd.print(char(1));

lcd.setCursor(4, 1);

lcd.print(char(1));

lcd.setCursor(3, 0);

lcd.print(char(1));

lcd.setCursor(3, 1);

lcd.print(char(1));

lcd.setCursor(2, 0);

lcd.print(char(1));

lcd.setCursor(2, 1);

lcd.print(char(1));

lcd.setCursor(1, 0);

lcd.print(char(1));

lcd.setCursor(1, 1);

lcd.print(char(1));

lcd.setCursor(0, 0);

lcd.print(char(1));

lcd.setCursor(0, 1);

lcd.print(char(1));

delay(700);

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Monitorizare TEMPERATURA

if(gaz<20&Temp_C>30)

{

digitalWrite(lumina, HIGH);//Ledurile sunt aprinse

digitalWrite(ventilare, HIGH);//ACTIVARE VENTILATOR

lcd.clear();

lcd.setCursor(8, 0);

lcd.print("!!TEMP!!");//afișează mesajul pe linia 0 coloana 8

lcd.setCursor(8, 1);

lcd.print("RIDICATA");//afișează mesajul pe linia1 coloana 8

delay(700);

lcd.clear();

lcd.setCursor(7, 0);

lcd.print(char(1));

lcd.setCursor(7, 1);

lcd.print(char(1));

lcd.setCursor(8, 0);

lcd.print(char(1));

lcd.setCursor(8, 1);

lcd.print(char(1));

lcd.setCursor(9, 0);

lcd.print(char(1));

lcd.setCursor(9, 1);

lcd.print(char(1));

lcd.setCursor(10, 0);

lcd.print(char(1));

lcd.setCursor(10, 1);

lcd.print(char(1));

lcd.setCursor(11, 0);

lcd.print(char(1));

lcd.setCursor(11, 1);

lcd.print(char(1));

lcd.setCursor(12, 0);

lcd.print(char(1));

lcd.setCursor(12, 1);

lcd.print(char(1));

lcd.setCursor(13, 0);

lcd.print(char(1));

lcd.setCursor(13, 1);

lcd.print(char(1));

lcd.setCursor(14, 0);

lcd.print(char(1));

lcd.setCursor(14, 1);

lcd.print(char(1));

lcd.setCursor(15, 0);

lcd.print(char(1));

lcd.setCursor(15, 1);

lcd.print(char(1));

lcd.setCursor(16, 0);

lcd.print(char(1));

lcd.setCursor(16, 1);

lcd.print(char(1));

delay(700);

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

EVACUARE

if(gaz>20&Temp_C>30)

{

lcd.clear();

myservo.write(140); //deschide usa

digitalWrite(lumina, LOW);//funcție pentru stingerea ledurilor

digitalWrite(buzz, HIGH);//activare alarmă

lcd.setCursor(0, 0);

lcd.print("!!!EVACUARE!!!!!"); //afișează mesajul pe linia 0 coloana 0

lcd.setCursor(0, 1);

lcd.print("!!!!!CLADIRE!!!!");//afișează mesajul pe linia 1 coloana 0

delay(1000);//întârziere 1 secundă

lcd.clear();

lcd.setCursor(8, 0);

lcd.print(char(1));

lcd.setCursor(8, 1);

lcd.print(char(1));

lcd.setCursor(9, 0);

lcd.print(char(1));

lcd.setCursor(9, 1);

lcd.print(char(1));

lcd.setCursor(10, 0);

lcd.print(char(1));

lcd.setCursor(10, 1);

lcd.print(char(1));

lcd.setCursor(11, 0);

lcd.print(char(1));

lcd.setCursor(11, 1);

lcd.print(char(1));

lcd.setCursor(12, 0);

lcd.print(char(1));

lcd.setCursor(12, 1);

lcd.print(char(1));

lcd.setCursor(13, 0);

lcd.print(char(1));

lcd.setCursor(13, 1);

lcd.print(char(1));

lcd.setCursor(14, 0);

lcd.print(char(1));

lcd.setCursor(14, 1);

lcd.print(char(1));

lcd.setCursor(15, 0);

lcd.print(char(1));

lcd.setCursor(15, 1);

lcd.print(char(1));

lcd.setCursor(16, 0);

lcd.print(char(1));

lcd.setCursor(16, 1);

lcd.print(char(1));

lcd.setCursor(7, 0);

lcd.print(char(1));

lcd.setCursor(7, 1);

lcd.print(char(1));

lcd.setCursor(6, 0);

lcd.print(char(1));

lcd.setCursor(6, 1);

lcd.print(char(1));

lcd.setCursor(5, 0);

lcd.print(char(1));

lcd.setCursor(5, 1);

lcd.print(char(1));

lcd.setCursor(4, 0);

lcd.print(char(1));

lcd.setCursor(4, 1);

lcd.print(char(1));

lcd.setCursor(3, 0);

lcd.print(char(1));

lcd.setCursor(3, 1);

lcd.print(char(1));

lcd.setCursor(2, 0);

lcd.print(char(1));

lcd.setCursor(2, 1);

lcd.print(char(1));

lcd.setCursor(1, 0);

lcd.print(char(1));

lcd.setCursor(1, 1);

lcd.print(char(1));

lcd.setCursor(0, 0);

lcd.print(char(1));

lcd.setCursor(0, 1);

lcd.print(char(1));

delay(700);

}

}

Similar Posts