Se afișează postările cu eticheta Arduino. Afișați toate postările
Se afișează postările cu eticheta Arduino. Afișați toate postările

Placa de dezvoltare GroundStudio Jade Nano+ (review)

 Autor:   Publicat pe:    Niciun comentariu

GroundStudio este brandul sub care cei de la ArduShop produc și comercializează mai multe plăci de dezvoltare și module. Am achiziționat încă de la lansare câteva dintre acestea pentru a vedea cum se comportă. Placa de dezvoltare Jade Nano+ are un format similar cu Arduino Nano și este disponibilă pentru suma de 40 de lei (la momentul scrierii acestui articol).

Placa vine cu două barete de pini de 1 x 15 și una de 2 x 3 (conectorul ICSP). Acestea nu sunt lipite pe PCB-ul de 1,6 mm grosime, culoare mov. Spre deosebire de Arduino Nano, aceasta are conector USB tip C și un circuit integrat diferit pentru interfața USB-serial. Este vorba de HT42B534-2 de la Holtek, despre care se spune că implementează, pe lângă interfața CDC (port serial) și interfață HID (human interface device) ce permite configurarea ca dispozitiv particularizat, de exemplu mouse sau tastatură. Voi reveni asupra acestui aspect.

Jade Nano+ lângă o placă Nano compatibilă Arduino
Jade Nano+ lângă o placă Nano compatibilă Arduino

Afișare valori numerice pe display cu MAX7219

 Autor:   Publicat pe:    Niciun comentariu

MAX7219 este un controller pentru afișaje cu LED-uri în conexiune catod comun. Integratul este cunoscut mai ales datorită afișajelor matriciale 8x8, însă acesta poate controla la fel de bine și afișaje cu 7 segmente. Fiindcă vreau să construiesc un volt-ampermetru pentru o sursă de alimentare, am ales un afișaj cu 7 segmente și 8 caractere (digits) controlat de acest integrat. Conectarea la placa de dezvoltare este simplă, interfața fiind una serială de tip SPI, iar nivelele de tensiune sunt 5 V. Dar, partea de software nu este la fel de simplă, biblioteca LedControl pentru MAX7219 neavând funcții care să afișeze valori numerice de tipul float.

În acest articol voi realiza un montaj cu o placă de dezvoltare cu microcontroller ATmega328p care evaluează două intrări analogice și afișează tensiunea citită pe un afișaj cu 8 caractere controlat de MAX7219. Mai mult de atât, voi crea și câteva mesaje predefinite cu caractere ce pot fi afișate și pe afișaje cu 7 segmente.

Afișare valori numerice pe display cu MAX7219

Afișare valori numerice pe display cu MAX7219

Îmbunătățirea aspectului Arduino IDE

 Autor:   Publicat pe:    Niciun comentariu

Arduino IDE este mediul de dezvoltare oficial pentru plăcile Arduino dar și pentru multe alte platforme compatibile. Aspectul mediului de dezvoltare este mult simplificat, fără bare de unelte și panouri laterale ca alte IDE-uri. Această simplitate nu se rezumă doar la aspect. Unele funcții utile, cum ar fi auto-completarea unor cuvinte cheie lipsesc. Altele, cum ar fi numerotarea rândurilor de cod, sunt implicit dezactivate.

Actual, se află în dezvoltare o versiune modernă, îmbunătățită, numită Arduino Pro IDE. Se află încă în stadiul beta, iar până ce va fi lansată oficial, există câteva îmbunătățiri ce pot fi aduse mediului clasic de dezvoltare Arduino IDE. Vom vedea în această postare cum activează câteva funcții utile, dar și cum se schimbă tema și fontul editorului.

Arduino IDE cu temă de culoară întunecată

Arduino IDE cu temă de culoară întunecată

Termometru cu Arduino și ieșire... video

 Autor:   Publicat pe:    Niciun comentariu

Semnalul video analogic a fost înlocuit treptat cu cel digital care oferă o calitate și o rezoluție mai bune ale imaginii, fără perturbări. Astfel, dispozitivele de recepție a semnalului digital au devenit din ce în ce mai ușor de găsit și prețul lor a scăzut. Dar, generarea și modularea în radiofrecvență (RF) a unui semnal video digital (stream) este dificilă, necesitând echipamente costisitoare. În schimb, vechiul semnal video analogic este ușor de generat și poate fi modulat RF cu dispozitive simple. Modulatoare RF pot fi găsite în console de jocuri vechi, receptoare, playere VCR etc.

Un mod simplu de a genera semnalul video analogic este folosind un microcontroller. În continuare voi folosi o placă Arduino compatibilă împreună cu biblioteca TVout. ATmega 328p nu este foarte performant în acest scop, dar poate genera un semnal video alb-negru ce simulează un afișaj de 128x96 pixeli. Biblioteca folosește întreruperi, de aceea unele funcții ale microcontroller-ului nu pot fi folosite concomitent cu generarea semnalului video.

Termometru cu Arduino și ieșire video

Acționare motoare pas cu pas cu Arduino (cod sursă)

 Autor:   Publicat pe:    Niciun comentariu

Motoarele pas cu pas sunt motoare fără perii care efectuează mișcări de rotație discrete în pași incrementali, spre deosebire de rotația continuă a unui motor electric obișnuit. Acest pot efectua un număr exact de pași, fiind construite din mai multe bobine alimentate într-o ordine specifică, de o secvență de impulsuri. Motoarele pas cu pas unipolare au două bobine, fiecare cu priză mediană. Aceste prize se conectează împreună la un pol al sursei de alimentare, iar cele patru terminale ale bobinelor sunt alimentate secvențial de driver (aceste motoare au minim 5 fire de conexiune). Celălalt tip de motor pas cu pas este motorul bipolar, cu două bobine, alimentate secvențial cu polaritate directă și apoi inversă (aceste motoare au 4 fire de conexiune).

Un driver cu tranzistoare pentru motoare pas cu pas unipolar și metode simple de generare a impulsurilor au fost prezentate în articolul anterior. Funcțiile de generare a impulsurilor din acel articol sunt mult prea simple și permit rotirea într-o singură direcție, în multipli de 4 pași. În acest articol voi exemplifica încă o dată modurile de acționare a bobinelor motoarelor pas cu pas și voi prezenta niște funcții care permit efectuarea de pași individuali și schimbarea direcției de rotație.

Acționare motoare pas cu pas cu Arduino (cod sursă)

Arduino: întreruperi în clase și funcții callback

 Autor:   Publicat pe:    Niciun comentariu

Arduino este o platformă de dezvoltare cu sursă deschisă, ușor de folosit, datorită limbajului de programare mult simplificat și a hardware-ului flexibil. Mediul de dezvoltare Arduino IDE vine cu biblioteci predefinite cu funcții ușor de înțeles pentru setarea și citirea stării pinilor, dar și pentru comunicarea cu diverse module folosind protocoale standard. Limbajul de programare nu este altceva decât C/C++.

Dacă ai în plan un proiect mai mare sau dacă îți creezi o bibliotecă pentru Arduino, vei ajunge să definești noi clase C/C++. O clasă este o extindere a conceptului de structură, care unește nu numai date și proprietăți, dar și funcții și metode care prelucrează aceste date. Spre deosebire de structuri, nu toți membrii claselor sunt accesibili din afara clasei. Controlul accesului se face folosind specificatorii de acces. Mai multe informații despre clase în programarea C/C++ poți găsi aici.

Arduino: întreruperi în clase și funcții callback

Server web securizat pe NodeMcu ESP8266

 Autor:   Publicat pe:    Niciun comentariu

NodeMcu este o placă de dezvoltare bazată pe platforma ESP8266. Acest microcontroller este destinat utilizării în aplicații IoT, fiind dotat cu conectivitate WiFi. În articolele anterioare am arătat că plăcile de dezvoltare cu acest cip pot fi programate în mediul de dezvoltare Arduino și am creat un server web simplu.

În ziua de astăzi, securitatea este foarte importantă. Poate vei folosi ESP8266 doar în rețeaua locală sau poate vei permite accesul la serverul ce rulează pe acesta din exterior. În ambele situații, utilizarea de conexiuni securizate este importantă. În ultimii ani majoritatea site-urilor web au trecut de la protocolul standard HTTP la cel securizat, HTTPS. Pentru a putea oferi conținut securizat, serverul trebuie să prezinte clientului un certificat semnat de o autoritate emitentă de încredere. Certificatele au valabilitate limitată.

Server web securizat pe NodeMcu ESP8266

Senzorii de temperatură și umiditate DHT11 și DHT22

 Autor:   Publicat pe:    Niciun comentariu

DHT11 și DHT22 sunt senzori integrați de temperatură și umiditate. Conțin un termistor, un transductor capacitiv și un microcontroller (MCU) care realizează conversia analog - digitală și trimite printr-un protocol serial valoarea parametrilor măsurați. Protocolul este unul specific, dar ușor de implementat în software. Cei doi senzori sunt similari și au aceeași pini. Vom vedea în acest articol cum putem determina acești senzori să trimită date către placa de dezvoltare și cum putem prelucra aceste date.

Totuși, DHT22 (cunoscut ca și AM2302) este versiunea mai performantă. Ambele versiuni se alimentează la tensiuni cuprinse între 3,3 și 5 V, deci nu sunt probleme de conectare la plăcile de dezvoltare uzuale. Spre deosebire de DHT11, care are o acuratețe de 5% RH pentru umiditate, respectiv 2 grade Celsius pentru temperatură, AM2302 este mai performant, cu o acuratețe de 2% RH, respectiv 0,5 grade Celsius. Dezavantajul acestuia din urmă este că citirea parametrilor se poate face o dată la 2 secunde (este mai lent), pe când DHT11 poate fi citit la fiecare secundă. De asemenea, prețul lui DHT22 este mai mare.

Module cu senzor DHT11 (stânga) și AM2302/DHT22 (dreapta)

Module cu senzor DHT11 (stânga) și AM2302/DHT22 (dreapta)

Programare placă STM32 bluepill în Arduino IDE

 Autor:   Publicat pe:    Niciun comentariu

Blue pill este o placă de dezvoltare cu microcontroller STM32F103. Deși nu este la fel de populară ca Arduino, este mai ieftină și mai performantă. STM32F103 conține un procesor ARM Cortex-M3 ce poate lucra la frecvența maximă de 72 MHz. Mai conține 20 kbyți de memorie RAM și 64 sau 128 kbyți de memorie flash. Are port USB nativ, două porturi seriale, generator PWM pe 16 biți și convertor AD pe 12 biți. Față de Arduino, funcționează la 3,3 V. Totuși, câțiva pini tolerează tensiuni de 5 V.

Programarea plăcii folosind kitul de dezvoltare oficial este dificilă pentru începători. Dar, există posibilitatea programării în mediul Arduino. Înainte de toate, suportul pentru această placă trebuie instalat în Arduino IDE. Dacă vei folosi portul micro USB pentru programare, un bootloader trebuie scris înainte în memoria plăcii. Acest lucru se poate face cu programatorul specific ST-Link sau cu un adaptor USB-serial la 3,3 V. Atât scrierea bootloader-ului, cât și încărcarea ulterioară a schițelor se pot face cu ajutorul acestor dispozitive suplimentare.

Set up STM32 "blue pill" for Arduino IDE

Măsurare presiune atmosferică cu senzor BMP280

 Autor:   Publicat pe:    Niciun comentariu

BMP280 este un senzor digital de presiune atmosferică proiectat pentru dispozitive mobile. Senzorul are o capsulă foarte mică, de numai 2 x 2,5 milimetri. Conectarea la o placă de dezvoltare ar fi foarte dificilă, dacă nu ar exista module cu barete de pini standard. O altă problemă este că tensiunea nominală de alimentare a senzorului este de 1,8 V. Totuși, suportă tensiuni de 3,3 V. BMP280 măsoară presiunea atmosferică și temperatura. Știind că există o corelație între presiune și altitudine, pe aceasta din urmă o putem calcula.

Până la urmă am conectat senzorul la o placă de dezvoltare pe 5 V din cauza display-ului. Am trei valori de afișat, așa că am utilizat un afișaj grafic cu controller ST7920, în locul unuia alfanumeric. Deși acesta poate funcționa la 3,3 V, modul în care este configurat din fabricație nu permite setarea contrastului suficient de bună la 3,3 V. Display-ul este conectat prin interfață SPI, deci numai 4 fire sunt folosite (3 pentru SPI și unul pentru reset). BMP280 suportă atât interfață SPI cât și I2C. Deoarece singurul convertor de nivel pe care îl am este unul construit de mine pentru I2C, am ales această interfață pentru senzor.

Senzorul BMP280 pe placa de test

Senzorul BMP280 pe placa de test

Capacimetru cu funcție de autoscalare și afișaj LCD

 Autor:   Publicat pe:    Niciun comentariu

Un capacimetru este un dispozitiv util oricărui electronist. Mai ales că funcția de măsurare a capacității pe care o posedă unele multimetre ieftine lasă de dorit. Folosind o placă de dezvoltare compatibilă cu Arduino, am decis să-mi construiesc propriul capacimetru, în special pentru condensatori de valoare mare. Programul ce rulează pe microcontroller va încărca și descărca condensatorul și va măsura constanta de timp pentru a determina capacitatea. Sunt două metode prin care poate fi apreciată valoarea capacității unui condensator: prin includere într-un oscilator L-C cu inductor de mărime cunoscută și măsurarea frecvenței acestui oscilator sau prin includerea într-un circuit R-C serie cu rezistor de mărime cunoscută și măsurarea constantei de timp. Prima metodă este utilă pentru măsurarea capacităților mici, dar este mai greu de implementat, deoarece necesită mai multe componente și un software mai complex.

Proiectul din acest articol folosește metoda cu circuit RC. Când o tensiune este aplicată unui circuit serie rezistor - condensator, tensiunea la bornele condensatorului tinde să ajungă la nivelul tensiunii de alimentare în timp (condensatorul se încarcă). Modificarea tensiunii la bornele condensatorului se face prin consum de curent. Circuitul prezentat realizează atât încărcarea, cât și descărcarea condensatorului. Măsurarea constantei de timp se face doar în timpul încărcării. Funcția de descărcare permite efectuarea de măsurări repetate, și precise, fără a scoate condensatorul din circuitul RC.

Capacimetru cu autoscalare și afișaj LCD

Capacimetrul construit pe o placă de test

Utilizare afișaj multiplexat cu 7 segmente cu Arduino

 Autor:   Publicat pe:    Niciun comentariu

Afișajele cu 7 segmente sunt utilizate pe scară largă la ceasuri, aparate de măsură și alte dispozitive care afișează informații numerice. Segmentele afișajului, care sunt de cele mai multe ori formate din LED-uri, sunt aprinse coordonat în diverse combinații ce reprezintă numere arabe. Afișajele cu 7 segmente sunt cel mai ușor de procurat, fiind și mai ieftine în comparație cu alte tipuri.

În articolul anterior am arătat cum se conectează un astfel de display la un microcontroller (MCU). Pe scurt, un afișajul necesită rezistoare limitatoare de curent pe LED-urile aferente segmentelor și drivere cu tranzistori pe liniile comune unei cifre. În articolul prezent, voi identifica pinii unui display, îl voi conecta la o placă Arduino pe breadboard și voi scrie codul pentru afișarea de valori numerice.

Utilizare afișaj multiplexat cu 7 segmente cu Arduino

Conectare afișaj cu 7 segmente și 4 cifre la microcontroller

 Autor:   Publicat pe:    Niciun comentariu

Afișajele cu 7 segmente sunt utilizate pe scară largă la ceasuri, aparate de măsură și alte dispozitive care afișează informații numerice. Segmentele afișajului, care sunt de cele mai multe ori formate din LED-uri, sunt aprinse coordonat în diverse combinații ce reprezintă numere arabe. Pot afișa doar un set restrâns de caractere, deoarece forma afișată este compusă din numai 7 elemente.

Afișajele cu 7 segmente sunt cel mai ușor de procurat, fiind și mai ieftine în comparație cu alte tipuri. Se găsesc pe piață inclusiv module cu afișaj cu 7 segmente și 4, 8 sau mai multe cifre. Aceste module includ un driver pentru afișaj, care primește informația numerică ce va fi afișată de la un microcontroller (MCU) printr-o interfață serială (SPI, I2C). Câteva exemple de astfel de drivere sunt: MAX7219, TM1637 și TM1638. Ultimele două includ suport pentru citirea apăsărilor unor butoane, deci pot fi utilizate la proiectarea unor panouri frontale cu afișaj și butoane.

Conectare afișaj cu 7 segmente și 4 cifre la microcontroller

Server web simplu pe NodeMCU ESP8266

 Autor:   Publicat pe:    Niciun comentariu
ESP8266 este un microcontroller cu suport WiFi și TCP/IP produs de Espressif Systems (Shanghai). Prețul redus al dispozitivului l-a făcut foarte popular, fiind inclus în module, dar și în plăci de dezvoltare pentru aplicații IoT (Internet of Things). NodeMcu este o placă de dezvoltare ce folosește un modul cu ESP8266. Într-un articol anterior am configurat Arduino IDE pentru a putea programa această placă. Am început prin a aprinde intermitent un LED, fără a utiliza funcțiile WiFi ale modulului. E timpul să „conectăm” LED-ul la internet.

În acest articol, voi programa un server web minimal pe ESP8266. Prin accesarea interfeței web, vei putea porni și opri un LED. Butonul care acționează LED-ul își modifică acțiunea în funcție de starea LED-ului. Dacă acesta este oprit, butonul „on” îl pornește. După pornire, butonul își modifică denumirea și funcția în „off”. Deci, în acest exemplu, trimitem date către NodeMcu, dar și primim.

Server simplu pe NodeMCU ESP8266

Programare NodeMCU ESP8266 în Arduino IDE

 Autor:   Publicat pe:    Un comentariu
ESP8266 este un microcontroller cu suport WiFi și TCP/IP produs de Espressif Systems (Shanghai).  Prețul redus al dispozitivului l-a făcut foarte popular, fiind inclus în module, dar și în plăci de dezvoltare pentru aplicații IoT (Internet of Things). ESP8266 conține un procesor pe 32 de biți tactat la 80 MHz, cu 32kB RAM pentru instrucțiuni, respectiv 80kB RAM pentru utilizator. Indicațiile din acest articol se aplică, cu mici modificări, tuturor plăcilor de dezvoltare cu module bazate pe ESP8266.

Una dintre cele mai ieftine plăci de dezvoltare este Lolin NodeMcu. În acest articol am folosit versiunea 3 a acestei plăci. Portul USB al plăcii este folosit pentru programare, fiind doar un convertor USB serial. Integratul USB este diferit la NodeMcu 1.0 (Silabs CP2102) față de NodeMcu 3.0 (WCH CH340G). Acest lucru trebuie avut în vedere la instalarea driver-ului. Placa NodeMcu conține un modul cu ESP8266. Este vorba de modulul ESP-12E sau ESP-12F produs de Ai-Thinker. O memorie flash de 32 Mbit (4 megaocteți) este conectată prin interfața SPI la ESP8266.

Programare NodeMCU ESP8266 în Arduino IDE

Ceas Arduino fără modul RTC

 Autor:   Publicat pe:    Niciun comentariu

Folosirea unui modul RTC (real time clock) este recomandată la realizarea unui proiect care se folosește de oră și dată. Modulele RTC sunt ieftine, au acuratețe bună, dar mai mult de atât continuă să funcționeze și când placa de dezvoltare nu este alimentată. Acestea folosesc o baterie tip celulă litiu pentru a ține evidența timpului utilizând curenți foarte mici. Există destul de multe biblioteci Arduino care implementează funcții pentru comunicarea cu diverse surse de timp (module RTC, servere NTP etc.). Un exemplu este biblioteca Time de Paul Stoffregen care utilizează timer-ul microcontroller-ului pentru a ține evidența timpului, dar permite și sincronizarea periodică cu o sursă de acuratețe mai mare.

Totuși, am decis să scriu o funcție ce ține evidența timpului incrementând variabile la fiecare apelare. Schița apelează această funcție în fiecare secundă, iar aceasta incrementează variabila secundelor și o afișează. Dacă s-a numărat până la 60, variabila secundelor trece la 0 și funcția avansează, incrementând minutele. Tot așa, sunt incrementate oricând este cazul variabilele pentru oră, zi, lună și an. Afișajul este actualizat doar pentru ce va fi modificat. Pentru a scrie programul am folosit o placă de dezvoltare compatibilă cu Arduino Uno căreia i-am atașat un shield cu afișaj LCD 16x2 și butoane analogice. Doar două butoane sunt necesare pentru modificarea datei și orei, așa că poți folosi butoane tactile conectate la pini de intrare digitali. În acest caz, vei modifica mai multe linii de cod, evaluând starea pinilor digitali.

Ceas Arduino fără modul RTC

Măsurare frecvență cu Arduino

 Autor:   Publicat pe:    Niciun comentariu
Măsurarea frecvenței unui semnal folosind o placă de dezvoltare Arduino pare un lucru simplu. Dar,  mediul de dezvoltare Arduino nu prevede o funcție simplă care analizează un semnal de pe un pin și întoarce frecvența acestuia. Există funcția pulseIn pe care mulți utilizatori Arduino o folosesc pentru a măsura frecvențe, dar utilitatea ei este în a măsura durata unui semnal. Măsurarea unui singur ciclu al unui semnal oscilant nu este o metodă corectă pentru determinarea frecvenței acelui semnal. Mai mult de atât, „frecvența” maximă ce poate fi determinată astfel este de doar 50 kHz.

Măsurarea corectă a frecvenței unui semnal folosind un microcontroller se face numărând pulsațiile semnalului necunoscut într-un interval de timp bine determinat. Pentru o apreciere corectă, în acel interval de timp, semnalul ar trebui să treacă prin sute sau mii de tranziții (oscilații). Acest mod de măsurare presupune configurarea unor timer-e hardware. Timer-ul este un registru special care își incrementează valoarea sincron cu oscilatorul principal al sistemului sau în funcție de oscilațiile unui semnal extern aplicat pe un pin al microcontroller-ului.

Măsurare frecvență cu Arduino

Utilizarea shield-ului cu ecran LCD și butoane pentru Arduino

 Autor:   Publicat pe:    Niciun comentariu
Majoritatea proiectelor Arduino necesită o interfață prin care diverse date pot fi afișate utilizatorului, dar și o interfață prin care utilizatorul poate modifica variabile ale programului. Afișarea datelor se face de obicei pe ecrane LCD. Cele mai utilizate împreună cu microcontrollere sunt LCD-urile alfanumerice care pot afișa 1, 2 sau 4 rânduri de 16 sau 20 caractere. Pentru a interacționa cu programul ce rulează pe microcontroller, utilizatorul folosește cel mai adesea câteva taste/butoane.

Pentru a ușura munca dezvoltatorilor, producătorul chinezesc DFRobot a creat un shield pentru Arduino care conține un LCD alfanumeric cu două rânduri de câte 16 caractere dar și 5 butoane tactile legate în configurație analogică. Shield-ul se conectează direct pe plăcile de dezvoltare Arduino UNO și compatibile. Prețul acestui shield variază între 3 și 10 USD la magazinele chinezești cu livrare internațională.

Shield-ul cu LCD și butoane (sursa: DFRobot)
Shield-ul cu LCD și butoane (sursa: DFRobot)

Calculare indice de confort termic cu senzor DHT

 Autor:   Publicat pe:    Niciun comentariu

Indicele de confort termic (ICT) sau indicele temperatură umezeală (ITU) este un parametru strâns legat de confortul termic. Indicele coroborează temperatura aerului cu umiditatea relativă, utilizând o formulă ce va fi descrisă în continuare. Pragul critic, peste care apare disconfortul, este considerat 80 de unități. Relevanța acestui indice este cel puțin discutabilă, deoarece chiar într-o lună considerată normală din punct de vedere meteorologic, toate zilele se pot afla peste pragul de alertă (65 unități). Formula de calcul a indexului poate fi găsită în articolul [PDF] Thermal Comfort (E. Teodoreanu, I. Bunescu).

După cum îi spune și numele, pentru calcularea ITU sunt necesare temperatura și umiditatea relativă. Măsurarea lor este chiar ușoară folosind senzori digitali de tipul DHT11, DHT22, SHT11, AM2302. Acești senzori măsoară atât temperatura cât și umiditatea, pe care le comunică digital unui microprocesor. Nu necesită calibrare, dar nici acuratețea nu este totdeauna cea mai bună. Se recomandă un senzor DHT22/AM2302 în locul unui DHT11. De asemenea, Bosch produce senzorul BME280 care costă ceva mai mult, dar măsoară inclusiv presiunea atmosferică. Și acesta poate fi folosit pentru calcularea ITU, cu mențiunea că este un dispozitiv care funcționează la 3,3 V, nu mai mult.

Calculare indice de confort termic cu senzor DHT

Montajul cu senzor DHT22 pe placă de test

Termometru cu senzor DS18B20 și afișaj 16x2

 Autor:   Publicat pe:    Niciun comentariu
Folosind o placă de dezvoltare cu microcontroller ATmega, un LCD cu 2 rânduri de 16 caractere și un senzor digital de temperatură de tipul DS18B20 se poate construi cu ușurință un termometru. Senzorul utilizat este unul digital, ce poate măsura temperaturi cuprinse între -55 și +125 grade Celsius, cu o rezoluție maximă de 0,044 grade (12 biți). În ciuda rezoluției ridicate, acuratețea senzorului este de +/-0,5 grade. Temperatura măsurată este comunicată procesorului digital, prin protocolul 1-Wire.

DS18B20 este un integrat programabil ce include memorie EEPROM. Această memorie poate fi utilizată pentru programarea unor praguri de alarmă. La fiecare citire a temperaturii, DS18B20 compară valoarea cu pragul de alarmă, și dacă este cazul setează un bit ce poate fi citit de procesor.
Termometru cu senzor DS18B20 și afișaj 16x2