luni, 17 februarie 2020

Ceas NTP pe 2 afisaje de 8x8 leduri (16x8)

   In completarea articolelor anterioare, "Pseudoceas pe afisaje de 8x8 leduri (16x8)" si "Ceas NTP pe 2 afisaje de 8x8 leduri (16x8)", prezint acum un ceas cu actualizare date de pe internet, adica de pe un server dedicat, NTP.
   Am folosit partea de definire a numerelor, dupa cum am prezentat in primul articol si am conectat cele 2 module cu leduri cum am prezentat in articolul cu cablajul universal.
    Am realizat 2 filmulete avand programul NTPclock.ino incarcat:
ceas NTP pe doua afisaje de 8x8 leduri
NTP clock on two 8x8 led matrix
    Cateva poze cu montajul:
    Mi-am adus amite de ora de vara si ora de iarna, si am prevazut un comutator ce se pune pinul D6 (GPIO12) ori la masa/GND (nivel logic LOW) ori la 3,3V (nivel logic HIGH).
 In unele versiuni testate anterior trecerea de a ora de vara la cea de iarna se facea din program, dar nu are rost sa complic treaba, mai ales ca e foarte posibil sa nu mai fie aplicata aceatsa ora de vra, apoi cea de iarna.
   Selectia se face asa:
- ora de vara, se pune pinul D6 (GPIO12) la masa/GND (nivel logic LOW)
- ora de iarna, se pune pinul D6 (GPIO12) la 3,3V (nivel logic HIGH)
   Programul modificat este NTPclock_sw.ino si cu el incarcat in placa cu ESP8266 am facut urmatoarele filmulete:
1) cu comentariu in romana
2) cu comentriu in engleza
19.02.2020
   Am primit de la Mihai Brindusoiu, vechiul meu "tester" al proiectelor, poze cu ceasul realizat de el:

duminică, 16 februarie 2020

eroare "Board ........ (platform esp8266, package esp8266) is unknown"

    Din cauza unor probleme tehnice a trebuit sa lucrez pe un notebook slabut, dar care a fost de baza, pana am vrut sa compile si apoi sa incarc un sketch Arduino pe o placa WeMos D1 Mini si am primit eroarea;'Board d1_mini (platform esp8266, package esp8266) is unknown".
  Dupa ce am verificat link-ul json, am sters si reinstalat fara succes placile de tip ESP8266, am cautat pe internet si am gasit articolul How to resolve “Board generic (platform esp8266, package esp8266) is unknown” error?/
   In mare, ramane un subdirector cu versiunea anterioara, cand se face "update" de placa cu ESP8266
subdirectorul unde gasim acel director se afla din fereastra de "Preferences"
   Dupa stergerea acestui director, inchiderea programului Arduino IDE si repornirea lui, apoi compilarea programului, vom obtine un rezultat corespunzator

sâmbătă, 15 februarie 2020

Ceas RTC pe 2 afisaje de 8x8 leduri (16x8)

   In articolul anterior am pregatit programul pentru a putea impleemnta usor un modul RTC, asa ca acum am continuat "deszvoltarea" ceasului pe 2 module de 8x8 leduri.
   
    Fata de ce am prezentat anterior, am adaugat modulul RTC cu DS3231 (dar poate fi folosit fara modificari si DS1307) doar se conecteaza pe i2c si alimentare, dupa cum apare si in sketch:
    Programul adaptat, se numeste RTCclock.ino si reglajul orei se face astfel, se incarca vesiunea cu linia de reglaj activa (fara // in fata)
apoi se incatca linia comentata (cu // in fata).
    Am realizat 2 filmulete cu acest tip de ceas:
    Apoi, am adaugat si 2 butoane fara retinere, pentru reglaj ora si minute, unul este de la D2 la masa, iar al doilea de la D3 la masa (GND).
   Modul de reglaj e simplu, dupa cum se vede din filmuletele ce folosesc programul RTC_clock_adj.ino

16.02.2020
    Am primit de Vlad Gheorghe versiunea lui pentru afisajele "verticale"
in care a regenerat toate numerele necesare. Programul este two-matrix-reg-rtc.ino, iar pentru o versiune animata se va folosi programul 2matrix-002.ino.

Pseudoceas pe 2 matrici de 8x8 leduri (16x8)

    Pana acum am realizat ceasuri cu 4 sau 6 module din matrici de 8x8 leduri cu driver-e MAX7219, dar am zis sa fac si cu 2 matrici, cum am vazut la niste kit-uri din China.
   Am cautat pe internet si nu am gasit pentru modelul acela de se fixeaza in continuare, unul in celalalt, ci doar pentru cele cu pini paraleli, dupa cum se vede in articolele:
Arduino Cheap Minimal Parts Digital Clock
Digital and Binary Clock With Two LED Matrix and RTC
  Dupa ce am incarcat programul din primul articol, ce folosesti libraria LedControl, am observat ca textul este rotit la 90 grade, dupa cum era de asteptat, asa ca am incercat sa fac mici schimbari, dar nu am reusit decat regenerand cifrele din nou, folosindu-ma de articolul Online led matrix font generator with binary and hex codes for Arduino, doar ca a trebuit sa fac fiecare cifra sau grup de cifre de la 1 la 12 pentru ore, cu secunde si fara, apoi cele 60 de numere (00-59) pentru minute. Cifrele le-am facut maxim posibile cu inaltime de 8 si latime de 3 pentru ca mai trebuie spatiu (deci 8x4 fiecare), trebuind generate in oglinda, pentru a nu ma chinui in soft, cu aceasta ocazie mi-am testat si abilitatile de "a vedea in oglinda".
   Vedeti un exemplu in care este numarul 13 cu 2 puncte:
si minutele 20 si 47
   Programul folosit este pseudoclock.ino si cu el incarcatat facut 2 filmulete:
pseudoceas pe 2 matrici de 8x8 leduri
pseudoclock on two 8x8 led matrix
   Schema de conectare este simpla, dupa cum se poate observa si din mentiunile din program:
adica ca in articolul How to use a MAX7219 LED dot matrix with an Arduino
   Urmeaza a face un ceas real, cu modul RTC cu DS3231 (sau cu mai imprecisul DS1307), o alta varianta ar fi cu o placa cu ESP8266 ce se conecteazala un server NTP.

vineri, 7 februarie 2020

Radio FM (RDS) cu TEF6686

 
   Am aflat de tunerul cu TEF6686 de la Iulian, un radioamator din Craiova. El m-a rugat sa ii modific niste programe Arduino pentru a avea anumite informatii RDS pe PC si ulterior pe un afisaj LCD, pentru a realiza un radio independent. Versiunea comandata de pe PC este folosita mult de radioamatori pasionati de receptii DX, adica "prinderea" unui post indepartat.
   Initial, voiam sa iau radioul lui si sa rescriu/modific programele care le avea, dar am preferat sa comand si eu un tuner pentru ca stau foarte prost cu timpul liber si l-as fi incurcat. Pana sa vina tunerul si apoi sa ma apuc eu de lucru, am aflat ca Iulian si prietenul lui, Florin Matei, au rezolvat cu partea de program Arduino pentru comanda de pe PC cu programul XDR-GTK
   Dupa sosirea tunerului, am lipit fire cu terminale tata, deoarece pasul intre pini e de 2mm, nu 2,54mm cat e pe breadboard sau cablajele de test
si l-am conectat la o placa Arduino Uno sa ii aflu adresa pe i2c cu programul i2c scanner
   M-am "concentrat" pe adaptarea programului de la https://github.com/makserge/tef6686_radio pentru a afisa informatiile pe un afisaj LCD. La indemana a fost un afisaj serial 2004 (cu caractere uriase), ce tocmai il testasem dupa cum se vede in articolele:
Ceas RTC cu afisaj serial
Ceas NTP pe afisaj serial
   Bun, deoarece tunerul se conecteaza pe i2c, iar afisajul pe un pin, schema a fost simpla:
si cu aceasta am testat 2 sketch-uri, radio_serialLCD2 ce are informatii radiotext lung si radio_serialLCD3a ce are si informatii PTY si PI, dar radiotextul prelucrat este mult mai scurt decat cel original.
    Am facut filmuletul radio cu TEF6686 cu afisaj serial
    Deoarece interfata seriala seriala nu este prea populara, am preferat sa trec la interfata i2c, asa ca am modificat schema, adaugand (pe parcurs) si butoane pentru a putea da si comenzi locale, nu numai din ecranul de monitorizare seriala sau PUTTY.
    Am identificat si adresa afisajului cu programul i2 scanner:
    Ca si in cazul afisajului serial, am modificat 2 programe, unul cu radiotext lung si PTY, dar fara PI (TEF6686_1602i2c_v2x) si unul cu informatii PI si PTY (TEF6686_1602i2c_v3x), la final existand 6 butoane fizice (volum +/-, cautare autoamta +/-, crestere si scadere frecventa cu pas de 0,1MHz).
    Pe parcursul testelor am realizat mai multe filmulete:
   Pentru moment, cam atat, dar incerc sa combin cele 2 programe sa am cat mai multe informatii.

11.02.2020
    Schema recomandata de conectare a tunerului cu TEF6686, model TDQ-230V-186, este: