Se afișează postările cu eticheta clock. Afișați toate postările
Se afișează postările cu eticheta clock. 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ă, 22 ianuarie 2022

Un alt ceas pe vfd Samsung 16LF01

 Am primit de la Baricz János un display Samsung 16LF01 pentru a încerca să-l aprind.

Din fericire am găsit pe github și un lib pentru el.
Un prim test a ieșit așa:

Apoi am folosit un material muncit de Nicu Florica pe care l-am adaptat pentru acest display:
Și a ieșit un ceas deosebit:
Ceea ce am făcut eu este pe github.



sâmbătă, 11 ianuarie 2020

Ceas cu arduino pe VFD

Aveam un display VFD cu 7 segmente și 10 digiți  ce l-am primit de la Cristi Vasilache, și i-a venit rândul sa fie pus la muncă. După ce i-am identificat pinii, am încercat să-l fac să lucreze cu toti 10 digiții însă nu am fost mulțumit de rezultate. Acest display are 3,3V tensiune de filament, și începând de la 9,8V începe să devină vizibil.
Așa că l-am lasat doar cu 8 digiți  ca să-l pot comanda cu un MAX7219. Schema a devenit:

Pentru teste am realizat PCB-ul de mai jos căruia am uitat să-i pun rezistențele de pe ieșiri:
Desenul cablajului aici.
L-am testat cu un un arduino pe care am încărcat codul de ceas al lui Nicu  și a ieșit ca în pozele ce urmează:




Pînă gasesc timp să-i fac un PCB și la sursă l-am "adunat" temporar:





luni, 23 septembrie 2019

Statie meteo cu Esp8266 pe TFT 2,8 240X320 ILI9341

Am testat funcționarea unei stații meteo pe display TFT cu rezoluția de 240x320 ce are ca driver ILI9341 legat la un  ESP8266. Sursa de inspirație a fost https://www.instructables.com/id/ESP8266-Colored-Weather-Station/ .
Mai multe detalii se găsesc pe site-ul de inspirație, iar mai departe fac doar un rezumat scurt.
TFT-ul la ESP8266 l-am legat astfel:
CS-GPIO5, RST-RST, DC-GPIO16, MOSI-GPIO13, SCK-GPIO14, LED-+3,3V, MISO-GPIO12
Partea de touch am lasat-o deocamdata în aer, iar LED-ul TFT-ului l-am legat direct la +3,3V 
Definițiile pentru DC și CS le-am pus direct aici în tab-ul principal:
ILI9341_SPI tft = ILI9341_SPI(5, 16); pentru că nu a vrut să le ia din settings.h.
Apoi mi-am facut un cont free pentru a obține un api_key pentru  meteo: https://docs.thingpulse.com/how-tos/openweathermap-key/ , iar aici am căutat ID-ul pentru Iași: https://openweathermap.org/city/675810. În linia 65 de la settings.h am modificat :
#define UTC_OFFSET +1
înlocuind 1 cu 2 pentru a obține ora României.
Tot aici, în liniile:
#define WIFI_SSID "your-ssid"
#define WIFI_PASS "your-wifi-password" 
am trecut setările mele de wifi.
Apoi am început să caut lib-urile necesare. Pe github am pus o arhiva ce contine folderul Arduino cu codul si lib-urile necesare, folosite de mine. Practic trebuie redenumit dosarul curent, și copiat conținutul arhivei în locul acestuia. În poza de mai jos este screen-ul de la macbook unde am testat din nou proiectul, verificând astfel daca nu mi-a scăpat ceva la arhivarea de pe Ubuntu.

După compilarea finală  a ieșit ca mai jos:

sâmbătă, 21 septembrie 2019

Ceas cu afisare pe TFt cu ILI7575 cu reglaj

La solicitarea unei cunoștințe, pornind de la materialul de aici: https://simple-circuit.com/arduino-ds3231-st7735r-color-tft/ , am adaptat codul pentru un shield TFT de 2,8" cu ILI7575.
Din nefericire acest display TFT nu a vrut să se aprindă decât cu lib-ul lui JoaoLopesF . La acest lib încă nu m-am prins cum să-i adaug alte fonturi.
Ca să pot folosi A4 si A5 de la Arduino UNO pentru I2C-ul lui DS3231, am eliminat pinul reset de la TFT și l-am legat la reset-ul lui Arduino,
In cod modificarea este: 

#define LCD_RESET 0 // Can alternately just connect to Arduino's reset pin

De la TFT am eliminat și cei 4 pini corespunzatori conectarii SD-ului, pentru a face loc la cele 2 butoane și pentru senzorul DHT11.
Modificările se pot vedea în imaginea de mai jos:
După adaptarea codului (conform "caietului de sarcini") a ieșit ca mai jos:
Funcționalitățile butoanelor au ramas aceleasi, adică la apasarea lungă a butonului 1 se intră in mod programare situație în care fileaza câmpul de reglat, din butonul 2 se incrementează pozitiv după care  este reluat de la 0. După reglarea minutelor, apăsarea butonului 1 resetează secundele și iese din mod programare.
Pun și un link către un filmuleț scurt ce arată modul de reglaj.
Codul adaptat este pe github.

duminică, 15 septembrie 2019

Ceas matricial NTP cu ESP8266 pe matrice I2C 2x8

Cu ceva timp in urma am luat din greseala citeva placute cu HT16K33 (driver I2C) ce voiam sa le folosesc cu un display 4x7 segmente. Placuta arata ca cea de mai jos:
iar cea dorita de mine pentru 7 segmente trebuia sa fie asa:

Abuzind de google am gasit utilizarea si pentru cele luate gresit. Acestea se folosesc pentru conectarea a doua matrici de 8x8 LED-uri. In link sint detalii despre acestea.
Eu am folosit doua matrici de 8x8 LED-uri (ceva mai mari decit cele propuse de Adafruit ) ce le-am lipit pe o placa de test si am facut legaturile cu fire, ca in schema de mai jos:
Aici A0 se duce la A2 si invers (posibil eroare de redactare).
A iesit ca mai jos:

Tot abuzind de google am gasit un mod de a utiliza alte fonturi mai mici decit cele din lib-ul lui HT16K33, astfel incit sa incapa 4 cifre si sa pot face un ceas sincronizat cu NTP bazat pe ESP8266 fara RTC.
Am facut citeva mici modificari la afisare (i-am pus puctele despartitoare, am modificat ora pentru fusul orar din Romania si afisarea orelor fara AM/PM) iesind ca mai jos:
 Desi luminozitatea aici este setata la 1, ( matrix.setBrightness(1);) este foarte vizibil ziua pe lumina, iar noaptea nu deranjeaza.

Si un mic filmulet cu functionarea, in linkCodul meu cu modificarile facute este tot pe github. Fisierul WiFi_Network.h (aici pune SSID-ul si parola de WIFI) trebuie copiat in acelasi folder cu Feather_Matrix_NTP_Clock.ino
consumul este nesemnificativ (0.01A , nu am reusit sa-l prind poza)
 La ESP8266, I2C-ul este pe GPIO5 si GPIO4 (D2, D1)
Update: Am facut update la cod folosind lib-ul lui tzapu cu ajutorul caruia se poate configurarea retelei wifi de pe telefon. Am mai modificat astfel incit sa nu mai fie necesar WiFi_Network.h .
.



luni, 9 aprilie 2018

Ceas cu raspberry pi zero si TM1637

Pentru a ma obisnui cu programarea in python pe raspberry pi am inceput cu ceva simplu, un ceas sincronizat pe internet care afiseaza pe un display cu 7 segmente comandat cu TM1637.
Am folosit un raspberry pi zero cu un adaptor WIFI pe care am instalat raspbian. i-am facut update-urile si am instalat wiringpi si wirinpi2 conform datelor din link. Celelalte pachete erau deja instalate.
Cautind exemple mi-a atras atentia codul de aici pentru simplitatea lui. 
Am modificat codul anulind partea de afisare IP care nu ma interesa, si am redefinit pinii pentru DIO si CLK ai lui TM1637 iar dupa executare mi-a afisat imediat ora sistemului


Insa la acest exemplu nu m-am prins cum sa modific luminozitatea, asa ca am mai "sapat" un pic si am ajuns aici unde aveam posibilitatea de a umbla la luminozitate. In cod am redefinit  din nou pinii pentru a nu mai umbla la conexiuni. Astfel dupa citeva incercari am reusit sa gasesc luminozitatea dorita.
Pentru a porni la start am editat /etc/rc.local adaugind linia de mai jos:

python /home/pi/clock/clock-zero.py

Am dat reboot si ceasul a pornit automat. Astfel, atita timp cit va fi conectat la internet va arata tot timpul ora sistemului
Display-ul folosit s-a nimerit sa aiba aceasi dimensiune cu placuta de raspberry pi zero si s-a potrivit perfect si la gauri.


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


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 ...