ArduShop.ro

ArduShop.ro
cod tehnic.go.ro_02 reducere 5%, pentru vizitatorii paginilor mele !

duminică, 21 octombrie 2018

Ceas matriceal cu alarma, termometru si higrometru (2)

   In completarea articolului anterior, unde am implementat si afisarea temperaturii si umiditatii relative din aer la ceasul cu alarma, de data asta, am modificat sa avem informatia despre temperatura cu virgula:
    Punctele portocalii sunt puse (ulterior) pentru usurinta afisarii, iar caracterele sunt cu galben, initial nu le pusesem la temperatura:
- temperatura negativa cu 2 cifre inainte de virgula:
- temperatura negativa cu o cifra inainte de virgula:
- temperatura pozitiva cu o cifra inainte de virgula:
- temperatura pozitiva cu 2 cifre inainte de virgula:
   Programul, care realizeaza noul mod de afisare al temperaturii, este mini_clock_1_3_b.ino.
   Puteti vedea cum se vad informatiile pe ecranul matricial in filmuletele:
ceas matriceal cu alarma, termometru si higrometru (2)
matrix mini clock with alarm, thermometer and hygrometer (2)



Ceas matriceal cu alarma, termometru si higrometru

   Am gasit un pic de timp pentru a completa proiectul de ceas matricial cu alarma, cu partea de termometru si higrometru. Senzorul folosit de mine este AM2302 (DHT22), dar se poate folosi si versiunea mai putin precisa, DHT11.
   Schema nu difera mult fata de cea din articolul precedent:
   Pentru inceput a trebuit sa simulez modul de afisare a temperaturii si umidittii si am realizat ca nu am caractere pentru procent, semnele +, -, semnul de grad Celsius, asa ca am studiat cum sunt create cele din exemplul functional si am modificat si eu fisierul in care sunt definite. Am constata ca fisierul se numeste FontLEDClock.h si se gaseste in subdirectorul libraries din programul Arduino IDE. pentru a nu aparea probleme am creat si eu un fisier cu nume putin diferit, FontLEDClock1.h si l-am pus in acelasi subdirector.
   Am ales primele 3 litere, scrii intr-un fisier numerele in hexazecimal, corespondenta lor in binar (folosind utilitarul de la https://www.binaryhexconverter.com/hex-to-binary-converter), apoi am desenat corespondenta. Am constatat ca am caractere scrise de sus in jos, si in oglinda, sa zic asa.

   Am desenat si caracterele de aveam nevoie, am trecut numerele in binar si corecpondenta lor in hexazecimal (folosind utilitarul de la https://www.binaryhexconverter.com/binary-to-hex-converter)
   Fisierul meu are modificate doar liniile unor caractere de care nu am nevoie in mod uzual:
    Revenind la chestii utile, in prima faza am simulat umiditatea si temperatura, atat pentru valori negativ, cat si pozitive (numere intregi, fara virgula):
- umiditate dintr-o cifra:
- umiditate din 2 cifre:
- temperatura negativa din 2 cifre:
- temperatura negativa dintr-o cifra:
- temperatura pozitiva dintr-o cifra:
- temperatura din 2 cifre:

    A urmat, firesc, implementarea in programul ceasului cu alarma si reglaj, care devine mini_clock_1_3.ino, dupa cum se vede si in filmuletele:



sâmbătă, 20 octombrie 2018

Sistem de alimentare separata consumatori in masina

    Pentru a alimenta, in masina, anumiti consumatori fara a trebui sa punem mereu contactul, la solicitarea lui Tom, am scris un program ce foloseste o placa Arduino (am desenat Uno ca e mai usor de inteles, dar s-a folosit la teste Nano). Sistemul este alimentat permanent de la baterie, are un buton de comanda, care daca se apasa scurt face ca releul sa fie alimenta si deci si consumatorul. Daca se apasa lung butonul (minim 3 secunde, cum am eu in program), se decupleaz[ consumatorul. De asemenea, avem un divizor rezistiv care, daca e alimentat si bateria nu e prea descarcata, Arduino alimenteaza bobina releului si, implicit, consumatorul este alimentat prin contactul releului. Daca tensiunea pe divizor dispare (contactul este luat), Arduino da comanda intarziata cu 5 secunde de decuplare consumator. Daca se apasa butonul lung, cand este contact pus, alimentarea consumatorului se face ori prin apasarea butonului ori prin luarea contactului si repunerea lui.

   Tom a realizat si teste pe un montaj provizoriu, realizand si filmuletul alimentare comandata pentru anumite "accesorii" in care se foloseste programul (sketch-ul) aux_power_control.ino:
   In curand voi posta un alt filmulet, cu sistemul montat pe masina de catre Tom.

Afisaj lcd cu 6 cifre din 7 segmente cu driver HT1621 controlat de Arduino

   Am aflat de acest afisaj de la Vlad Gheorghe, asa ca mi-am comandat si eu unul de pe Gearbest.
  Am cautat pe net si am dat de cateva articole interesante din care m-am si inspirat;
https://www.instructables.com/id/How-to-Wire-the-6-Digit-7-Segment-24-Inch-Ht1621-L/
http://www.14core.com/wiring-the-6-digit-7-segment-2-4-inch-ht1621-lcd-display-module-on-microcontroller/
http://arduinolearning.com/code/ht1621-6-digit-7-segment-display-example.php
https://macduino.blogspot.com/2015/02/HT1621.html
   In toate testele am folosit aceeasi schema, pentru a nu face modificari in montaj, fiind cea prezentata in primele 2 articile (care sunt aceleasi, de fapt):
    facand mici modificari in programul gasit in primele articole, am afisaj, initial un ceas si un termometru:
test functionare afisaj lcd cu 6 cifre (HT1621)
HT1621 6 digit 7 segment LCD display test
    Dupa ce am rezolvat aprinderea (relativ) usoara a virgulei, am scris un programior (sketch) pentru a arata aleator ora si apoi o temperatura si cu cifra dupa virgula, dupa cum se vede si in filmuletele;
test 2 functionare afisaj lcd cu 6 cifre (HT1621)
HT1621 6 digit 7 segment LCD display - test 2
   Programul pentru prima versiune este HT1621_test.ino, iar cel optimizat este HT1621_test4.ino.
   Primul program prezinta cateva secunde ora 23:45, cu clipirea secundelor:
apoi temperatura de 17 grade Celsius:
    Cel de-al doilea alege aleator ora si minutele ceasului, indicand-o cateva secunde, pastrandu-se partea de animatie la semnul dintre secunde:
apoi alege aleator o temperatura, ce poate fi negativa sau pozitiva:

duminică, 23 septembrie 2018

Ceas NTP cu ESP32 având afişaj OLED incorporat

english version

   Un ceas NTP este un care se citeşte datele de la un server (mai multe găsiţi în articolul de pe Wikipedia numit Network Time Protocol). Pe scurt o să fie un ceas foarte precis...
   Deoarece am achiziţionat o placă de dezvoltare cu ESP32 ce are un afişaj OLED de 0,96", am folosit informaţia şi librăria de la https://github.com/LilyGO/ESP32-OLED0.96-ssd1306.
   Am combinat sketch-ul de la ceasul demo, ce are anumiţie cu un ceas analog urmat de unul digital, cu exemplul din libraria NTPtimeESP, obţinând un ceas precis şi frumos.

    Încărcând sketch-ul  ESP32_OLED_SSD1306_NTP_0.ino vom obţine următoarele indicaţii pe ecran, după cum se vede în filmuleţele următoare:
ceas NTP cu ESP32
NTP clock using OLED Wemis Lolin ESP32



duminică, 2 septembrie 2018

Ceas matriceal cu alarma

english version
   Prin iarna am gasit articolul Mini LED clock, care folosea un afisaj matriceal din 4 module de 8x8 leduri controlate de MAX7219. Partea frumoasa e ca foloseste mai multe variante de prezentare a orei, dar si ca are si partea de reglaj.
   Schema care rezulta din descriere si din program este
   Am facut cateva filmulete cu el, in care am folosit programul usor modificat mini_clock_1a.ino:
altfel de ceas pe afisaj matriceal cu MAX7219
clock on matrix led display with MAX7219
clock on matrix led display with MAX7219 (2)
   Abia acum am implementat partea de alarma, in care se foloseste un buzzer activ, programul fiind mini_clock_1_2.ino, putand afla starea alarmei prin apasarea celui de-al doilea buton, care in mod obisnuit arata data, daca este activa alarma o arata si pea, dupa cum se vede si din filmulete:
ceas matriceal cu alarma
matrix mini clock with alarm
   Schema folosita are doar un led si o rezistenta (nu am avut buzzer activ la indemana), dar montajul este pregatit si cu un senzor de masura umiditate si temperatura de tip DHT22 (AM2302).
   PS: Am gasit un ceas derivat din cel din care m-am inspirat si eu, cu un afisaj mai mare si informatii de temperatura si altele, vedeti articolul Arduino Pong Clock

duminică, 26 august 2018

Pagina web creată cu ESP32 programat cu Arduino IDE

   Baza acestui material este articolul numit ESP32 Web Server – Arduino IDE scris de Rui Santos şi este util pentru testarea rapidă a plăcilor de dezvoltare cu ESP32, cum este Geekcreit® ESP32-DevKit.
   Pentru a putea programa o placa cu ESP32 cu mediul Arduino IDE trebuie urmaţi paşii prezentaţi în articolul lui Rui Santos numit Installing the ESP32 Board in Arduino IDE (Windows instructions).
   Am constatat că această placa are 2 leduri (buit-in), unul la GPIO0 şi unul la GPIO27 (nu doar la GPIO27) aşa că am modificat programul original să imi aprindă aceste leduri, modificând şi logica de aprindere (inversă), acest program modificat de mine este ESP32_WebServer.ino.
   După încărcarea programului, în ecranul de monitorizare serială găsim adresa IP a paginii web
accesând pagina vom vedea
   Apăsând pe butonul de sus (GPIO0), se va aprinde ledul corespunzător, schimbându-se şi informaţia de pe ecran
,
apăsând şi pe al doilea buton (GPIO27), se aprinde şi cel de-al doilea
   Pentru a rămâne doar led-ul din dreapta imaginii aprins (cel de la GPIO27), îl stingem pe cel din stânga (GPIO0)
   Am făcut 2 filmuleţe, pentru înţelegea mai uşoară a modului de comandă şi funcţionare