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

joi, 27 ianuarie 2022

Ceas cu VFD bazat pe arduino

 De curând am primit cadou de la Baricz János un afișaj VFD cu care am construit un ceas bazat pe arduino.



Baza de pornire constă în munca lui Nicu Florică la care am adăugat doar partea de comandă specifică VFD-urilor. Un alt material cu acelasi afișaj mai este aici cu mai multe detalii specifice.

În cazul meu schema de pornire este cea de mai jos:


Comanda este similară cu cea folosită într-un articol precedent unde am utilizat un VFD cu 8 digiți.

Pentru comanda VFD-ului am înseriat pe conexiunile către afișaj doua circuite ULN2003 ale cărui ieșiri le-am închis la +24V prin câte un rezistor de 22K . Pentru alimentarea grilelor am folosit un step-up cu UC3843,

 iar pentru alimentarea filamentului un banal oscilator cu LM555:

Impulsurile în drena lui MOS alimentând filamentul

Inițial am făcut cablajul utilizând un 7805 care s-a dovedit a funcționa foarte fierbinte. În final l-am scos și am adaptat un step-down chinezesc reglat pentru 5V.
Cîteva imagini de pe parcursul testării:
Cablajul l-am gândit pentru dublu placat deoarece avea câteva treceri foarte lungi și care mă încurcau la realizare trebuind blocate în final cu adeziv.

Cablajul este dimensionat să încapă în cutia din poză:
Legăturile între placa afișaj și comanda le-am făcut cu fire flexibile.
Tot pe placă am pus și RTC-ul cu DS1307

Prima versiune pentru afișare umiditate:

Versiunea finală de afișare pentru umiditate:



Codul adaptat pentru VFD este pe github. Sunt urcate ambele variante cu afișarea umidității. 



sâmbătă, 20 octombrie 2018

Test display LCD 6 digiti, 7 segmente cu HT1621

Dupa o relativa ratacire mi-a sosit si mie display-ul. Lui Nicu Florica i-a sosit mai devreme, si a reusit sa faca munca cea mai grea de studiu si a pus o sinteza la el pe blog, asa ca nu am mai inventat o alta roata ci am preluat munca lui. 
Initial am realizat testul lui ca sa-l testez si pe cel ajuns la mine, dupa care am adaugat un senzor DHT11, si un DS1307 pentru a vedea cum se misca cu date reale. Am pastrat schema lui la care DHT-ul l-am legat la D3, la A4 si A5, SDA si SCL de la modulul cu DS1307. Am adaptat codul lui si a iesit ca in imaginile de mai jos (varianta mea de test este disponibila pe github):

Afisare ora si minut

 Afisare temperatura


 Afisare umiditate


 Imaginea cu montajul de test


Am vrut sa sting LED-ul de fundal si am descoperit ca acesta era legat direct la +5V, ca in imaginea urmatoare:

Am folosit o tresa de dezlipit pentru a scoate puntea de cositor din stinga si am facut-o in dreapta. Astfel pinul LED disponibil in dreapta display-ului a devenit functional.


Ca dimensiune se poate vedea mai jos:


In curind urmeaza ca in combinatie tot cu arduino si prescalerul M506 (descris foarte frumos de Nicu Florica aici) sa se transforme in frecventmetru.

Am folosit doar DHT11 cu attiny85 si functioneaza perfect. Codul modificat pe github.

vineri, 25 mai 2018

Priza programabila utilizind arduino

Deoarece mi-a cedat priza programabila luata din magazin, am hotarit sa mi-o fac singur. In cazul meu aceasta sta de regula in aer liber, si datorita mediului cedeaza ori butoanele care nu mai fac contact, ori display-ul caruia ii crapa banda de cauciuc cu contacte. Cele din comert sint ceva mai stufoase, insa eu am nevoie doar sa porneasca zilnic un releu pe un interval orar stabilit.
Nu am avut chef sa inventez alta roata asa ca mai intii am cautat sa vad ce au facut si altii. Solutii sint multe (mai mult sau mai putin complicate), dar de lene am ales varianta cea mai simpla, unde puteam utiliza arduino.
Am pornit de la un acest proiect de ceas cu alarma caruia i-am adaptat codul la ceea ce am gasit in sertar.
Pentru teste am folosit un LCD 16x2 cu I2C, un arduino nano si un modul cu DS1307.
Initial am mers pe varianta omului cu 3 butoane pe 3 intrari separate . Ulterior in speranta de a folosi un ATTINY85, am modificat codul pentru 3 butoane legate la aceasi intrare adaptind la cele 3 butoane 3 rezistente de 10K dupa informatiile din link. Din pacate aceasta versiune de cod nu incape in ATTINY si va ramine in studiu.
Codul ocupa destul de mult:

Fazele de testare arata ca mai jos:
In dreapta sus este ora de pornire (P), iar sub el ora de oprire (O)
In stinga sus ora curenta, iar mai jos data, desi in acesta aplicatie informatia este inutila.
La apasare butonului "-" se poate porni releul manual
 La apasarea butonului SET ( cel ce pune la masa intrarea A3) se trece in modul setup (cel din mijloc este + iar capatul -)
 La apasari succesive cursorul ">" se deplaseaza in stinga fiecarui element de reglat, cu celelate 2 butoane "+" si  "-" se executa reglajul.
 Setare ora si minut pornire
 Setare ora si minut oprire
 Se salveaza datele in EEprom
Releu pornit
In curind cind vor sosi circuitele DS1307 voi utiliza un LCD16x2 fara I2C, cu un 328 simplu, puse toate pe un circuit imprimat, adaptat la cutia folosita.

Trebuind neaparat o bucata functionala l-am pus intr-o doza PT (pe tencuiala):
De data asta am folosit un RTC mai mic ca dimensiune cu un LCD fara I2C, si am pus un ATMEGA328. Releul l-am lipit peste priza, iar linga el am pus o sursa de 5v/700mA.





duminică, 4 martie 2018

Ceas cu reglaj si termometru pe LCD "amber-gold" 128/64

Am gasit la chinezi un display mai ciudat dar interesant ca tip de afisare, pe care m-am hotarit sa-l aprind ca sa vad ce face. Aceste este denumit "AMBER GOLD" cu lumina de fundal aurie, cu o rezolutie de 128/64 si arata ca mai jos:

Lipsind documentatia la el am abuzat din nou de google si am descoperit ca are la baza chip-ul ST7565, si se poate aprinde cu ajutorul u8g2
Testele le puteti vedea mai jos cu un cod de test:

Am preluat apoi un proiect anterior dar fara succes pentru ca dimensiunea codului era prea mare pentru arduino uno (mini in cazul meu). Astfel am inceput sa teste cu vechiul u8glib la diverse display-uri suportate si asa am ajuns la :

U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8);// SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Rst = 8

In cod am adaugat linia de mai sus si am comentat-o pe cea veche care era pentru ST7920, am  mai redefinit pinii pentru senzorul de temperatura si butoanele de reglaj.
Desi codul este pentru DS1307, merge foarte bine si cu DS3231 pe care l-am folosit la teste.
Pe github am ridicat si arhiva bibliotecilor folosite.
Rezultatul se poate vedea mai jos, nimic spectaculos fata de ST7920, doar ca e auriu fundalul.
 Desi dimeniunea utila este de 4/2 cm reuseste sa fie suficient de vizibil si pentru ochii mei fara ochelari
 In modul reglaj datele apar afisate imediat dupa denumirea zilei
 Afisarea fara LED-ul de fundal


duminică, 8 octombrie 2017

Ceas cu reglaj, temperatura si umiditate cu attiny85

Am reluat proiectul de aici cu Attiny85 DIGISPARK si i-am adaugat si un senzor DHT11.
 Pentru reglaj am folosit pinul reset care este utilizabil ca analogRead pentru tensiuni mai mari de 2,5V. Fiindu-mi lene sa calculez un divizor cu rezistente, am pus 2 semireglabili de 1K intre +5V si masa iar pe mijlocul lor am reglat 3V (valoarea citita este 647), respectiv 4,5V (valoare citita 968).
Ca RTC in acest caz am folosit un DS1307, functioneaza si cu DS3231 fara nici o modificare la cod.
Codul este aici si sint comentate legaturile.
Avind bucla de afisare :
for (int pp=20; pp>0; pp--)
este un pic enervant  inceputul reglajului orei si minutelor, deoarece la fiecare 20 secunde va afisa temperatura si umiditatea, dar in felul acesta am folosit la maxim dotarea hard/soft a lui Attiny 85.
Reglajul odata efectuat teoretic nu mai este necesar decit la schimbarea orei de iarna sau primavara.
Am incercat initial sa blochez bucla pe perioada reglajului, insa codul depaseste memoria lui Attiny.
Schema este aici
citeva poze mai jos:
Temperatura
Umiditatea




Amplificator ultra simplu cu MOS 40W/8Ohm la 2x30V

 Am început construcția unui amplificator cu tranzistori MOS după o schemă proiectată de Ionel Epure , care se împacă foarte bine cu boxele ...