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

marți, 3 iulie 2018

Afisaj grafic de 1,8" cu rezolutie 128x160 (ST7735) conectat la placa de dezvoltare cu ESP32

   Intrand in posesia unui afisaj grafic de 1,8" (1,77" apare pe unele site-uri), adica diagonala de 4,5cm, care are rezolutia 128x160 si driver ST7735, am zis sa il conectez la o placa de dezvoltare cu ESP32, ca tot era si ea in teste. Am avut surpriza sa gasesc foarte putine informatii utile.
   Informatii utile am gasit in articolul 128×128 Colour LCD to ESP32, in care se foloseste o librarie modificata - Xtronical ST7735, doar ca nu am reusit, cu toate modificarile prin librarie, sa afisez corect toate modurile (rotirea informatiei), dupa cum se vede si din filmuletele
afisaj de 1,8" cu ST7735 (rezolutie 128x160) controlat de ESP32
128x160 1.8" TFT display with ST7735 controlled by ESP32
   Schema de conectare este simpla
   Am mai cautat si am dat de o discutie pe forumul Arduino despre libraria TFT_eSPI a lui Bodmer si de articolul Cheap 1.77 Inch TFT-screen on ESP32 de pe site-ul www.hackster.io/ care prezenta libraria lui Bodmer.
    Am reusit sa fac modificari in fisierul de configurare (User_Setup.h) sa am informatii corecte pastrand schema de conectare de la Xtronical
   Am facut de data asta 2 filmulete
afisaj de 1,8" cu ST7735 (rezolutie 128x160) controlat de ESP32 (2)
128x160 1.8" TFT display with ST7735 controlled by ESP32 (2)

miercuri, 30 noiembrie 2016

Afisaj TFT de 1,8" cu driver ST7735B (7) - alt ceas cu alarma si reglaj manual al datei si orei + termometru si higrometru

article in english

   La versiunea de ceas prezentata in articolul Afisaj TFT de 1,8" cu driver ST7735B (5) - alt ceas cu alarma si reglaj manual al datei si orei + termometru am adaugat un senzor dedicat pentru masurare temperatura si umiditate (in cazul meu un AM2302 cu o rezistenta de 10k, care mai este cunoscut ca DHT22, dar se poate folosi si un senzor DHT11 care are o precizie mai mica). In articolul mentionat, temepratura este furnizata de integratul DS3231 care foloseste aceasta functie pentru compensarea erorilor ca ceas la variatii de temperatura.
   Schema este ca cea din articolul anterior, doar i-am adaugat senzorul de temperatura si umiditate, conectandu-l la apinul A2
   Incarcand sketch-ul educ8stv_rtctft160_alarm_dht.ino pe ecran avem informatiile:
- numele zilei, in engleza, dar se poate modifica usor in romana;
- data
- ora
- ora alarmei, cu albastru daca este dezactivata alarma, cu alb daca este in asteptare si rosu cand este activata (alarma s epoate dezactiva sau pune in stare de asteptare prin apasarea butonului separat ALARM)
- temperatura
- umiditatea
   Prin apasarea repetata a butonului MENU/OK se intra in modul de schimbare al datelor, intai ora, minutele, numele zilei (numarul zilei in saptamana), anul, luna, ziua, ora si minutele alarmei. Modificarea valorilor se face din butoanele + si -.
   Dupa teste, am realizat ca am o varianta mai buna cu memorarea orei de alram si a starii ei in eeprom, asa ca am modificat ultimul schetch cu aceasta facilitate si am introsiud partea de denzor DHT, asa ca ultima versiune este educ8stv_rtctft160_alarm_eeprom_dht.ino.
   Am facut 2 filmulete in care se prezinta modul de afisare si de schimbare a orei si datei:



miercuri, 9 noiembrie 2016

Afisaj TFT de 1,8" cu driver ST7735B (5) - alt ceas cu alarma si reglaj manual al datei si orei + termometru


    Am revenit la modul de prezentare al ceasului de pe educ8s.tv si am scos libraria pentru ceasul cu DS3231 folosindu-ma de subrutine pentru citire si scriere data si ora, citire temperatura din senzorul din integrat si am pastrat schema de la ceasul anterior.
     Schema pentru ceasul cu reglaj manual este identica cu cea anteriora:
 iar sketch-ul este educ8stv_rtctft160_manualadjust.ino.
   Cu aceasta ocazie am facut si 2 filmulete pentru a prezenta modul de functionare si de reglare. Dupa cum se va observa, daca se apasa mai lung butnul MENU se intra in modul de programare a orei:
   Din butoane + si - se creste valoarea sau se scade valaoarea (daca se apasa + si am ajus la 23 se trece la 0, respectiv daca este 0 si se apasa - se trece in 23)
   Daca se apasa pe butonul de MENU se trece la reglajul minutelor
apoi la alegerea zilei din saptamana (0 - duminica, 1 - luni, 2 - martie, 3 - miercuri, 4 - joi, 5 - vineri si 6 - sambata):
   Urmeaza apoi anul, luna, ziua si apoi se revine la functionare normala.
    Cele 2 filmulete de care ziceam sunt:

   Apoi am introdus si partea de alarma cu buton separat de activare si dezactivare, pentru usurinta folosirii, sketch-ul fiind educ8stv_rtctft160_alarm.ino, in meniu am mai introdus 2 reglaje, pentru ora si minutul alarmei (doar ca in cazul intreruperii alimentatii ora alarmei este 7:00 si starea este activa):
   Pentru a stii care este starea, am puc ca si la celalalt ceas culori diferite pentru alarma, astfel:
- alarma activa:
- alarma dezactivata:
 
- alarma pornita:
   Am facut  filmuletul alt ceas cu alarma si termometru pe afisaj de 1,8" cu ST7735 in care se vede modul de reglaj si activare si dezactivare alarma:

   Deoarece am zis ca e pacat sa nu termin proiectul prin memorarea si a orei si starii alarmei, am folosit memoria EEPROM a microcontrolerului de pe placa Arduino, astfel ca sketch-ul devine educ8stv_rtctft160_alarm_eeprom.ino
   Puteti vedea modul de functionare si reglare al cesului in alte 2 filmulete:

marți, 8 noiembrie 2016

Afisaj TFT de 1,8" cu driver ST7735B (4) - ceas cu alarma si reglaj manual al datei si orei + termometru


   Am adaugat si alarma ceasului prezentat in articolul precedent, prin adaugarea unui buton fara retinere pentru activare si dezactivare alarma, dupa cum se vede si in schema urmatoare
   Dup aincarcarea sketch-ului TFT_DigitalClock_RTC1d.ino pe ecran vor apare urmatoarele informatii:
- ora si minutul, cele 2 puncte dintre ele clipind
- numele zilei
- data in format luna/zi/an
- ora alarmei si ca e activata (cu alb)
- temperatura masurata de senzorul de temperatul al integratului DS3231
   Daca alarma este dezactivata, apare ora ei scris cu albastru
   Daca ora alarmei este identica cu cea a ceasului (timp de un minut, cat este identitate), pe ecram va aapre simbolul de ceas cu rosu, iar ora cu alb
daca se apasa butonul ALARM atunci sau daca alarma este dezactivata, informatia apare cu albastru.
   Modul de reglaj al orei, datei si alarmei este similar ceasului anterior, intai se apasa butonul MENU, apar clipind orele si se modifica din tastele "+" si "-", dupa care se trece la minute, nume zi, an, luna, zi, ora alarma si minute alarma, dupa cum se vede si in filmuletul ceas cu alarma si termometru pe afisaj de 1,8" cu ST7735
si in cel in engleza, adjuting clock with alarm & thermometer using DS3231 on 1.8" ST7735 display
   PS: Am adaugat si memorarea orei, minutului si starii alarmei in EEPROM-ul procesorului de pe placa Arduino (anterior, la intreruperea aliomentarii sau la resetare alarma era activa la 7:00).
Sketch-ul cu totate facilitatile este TFT_DigitalClock_RTC1e.ino.

vineri, 4 noiembrie 2016

Afisaj TFT de 1,8" cu driver ST7735B (3) - ceas cu reglaj manual al datei si orei + termometru

english version

    Fata de ceasul prezentat in articolul precedent, am adaugat 3 butoane fara retinere cu care pot regla data si ora.
   Deoarece librariile uzuale pentru ceas de timp real cu DS3231 nu au toate functiile de le vreau eu, sa citeasca temepratura, sa memoreze si ziua din saptamana, am renuntat la cea folosita (RTClib) si am folosit subrutine, dupa cum am gasit pe forumul Arduino... doar n-o sa pierd timpul sa reinventez roata.
    Schema de test este urmatoarea:
   Pentru inceput am modificat sketch-ul folosit anterior, doar ca am adaugat cele 3 butoane si cazurile de reglaj, acesta fiind TFT_DigitalClock_RTC1c.ino
   La pornire, ceasul prezinta ora, numele zilei in engleza, data in format international (luna/zi/an) si temperatura citita de senzorul de pe DS3231.
   Daca se apasa butonul MENU pe ecran ramane doar ora care clipeste, minutele fiind fixe, apoi din butoanele de + si - se schimba valoarea.
   Dupa ce se apasa butonul MENU, ora ramane afisata si minutele clipesc, dupa care se pot modifica si ele, daca se apasa MENU repetat se trece la numele zilei, apoi la an, luna si zi... apoi se revine la modul de afisare normal, dupa cum se vede in filmuletele:


   Deoarece informatiile in engleza si modul de afisare al datei ma deranjeaza, am trecut la formatul nostru, zi.luna.an, asta prin adaptarea sketch-ului anterior, cel folosit fiind acum TFT_CeasDigital_RTC1c.ino.
   Modul de reglaj este similar, dupa cum se vede in filmuletul ceas cu reglaj si termometru cu DS3231 pe afisaj de 1,8" cu ST7735 (2)

joi, 3 noiembrie 2016

Afisaj TFT de 1,8" cu driver ST7735B (2)

    Dupa ce am reusit sa fac functional afisajul grafic cu ST7735 prin inserierea pe pinii de date a unor rezistente de 1k, am inceput sa testez diverse sketch-uri si librarii pentru un ceas in care sa folosesc un modul RTC, preferandu-l pe cel cu DS3231, fiind mult mai precis ca DS1307 sau DS1302.
    Prima data m-a oprit la articolul  Arduino Real Time Clock de pe site-ul educ8s.tv
in care se foloseste pentru afisaj libraria clasica de la Adafruit (Adafuit_ST7735), iar pentru modulul RTC cu DS3231 libraria Sodaq_DS3231, care nu-i este cunoscuta, dar functioneaza, din pacate nu are actualizare automata a date si orei, dar poate transmite temepratura masurata de DS3231. Am facut o mica modificare la sketch pentru a avea animatie la secunde, aceste fiind educ8stv_rtctft160.ino.
    Am postat 2 filmulete in care se vede modul de afisare:
1) ceas si termometru cu DS3231 pe afisaj de 1,8" cu ST7735

   Schema de similara celei din articolul anterior doar ca i-am adaugat modului de ceas de timp real cu DS3231:
   Dupa asta, am revenit la libraria lui Bodmer (TFT_ST7735) in care este exemplul de ceas, care prelua data si ora incarcarii sketch-ului si apoi folosea functia millis() care transmite cate milisecunde au trecut de cand placa Arduino este pornita (microcontorlerul ATmega, de fapt), punandu-i partea de ceas cu libraria RTClib, dupa cum era indicat si de autor...
   Sketch-ul meu este TFT_DigitalClock_RTC.ino si include pe langa partea de ceas si citirea temperaturii cum este indicat in articolul de la http://www.goodliffe.org.uk/arduino/rtc_ds3231.php.
   Am postat 2 filmulete cu acest ceas:

   Apoi am modificat sketch-ul care prezenta un ceas analog,la care am adaugat si partea de citire temperatura, rezultandu-mi TFT_AnalogClock_RTC.ino.
   Am facut si de data asta 2 filmulete:
ceas si termometru cu DS3231 pe afisaj de 1,8" cu ST7735 (4)
clock with thermometer using DS3231 on 1.8" ST7735 display (2)
   Deoarece e mult mai usor de vazut ora cu cifre, am revenit la versiunea anterioara, facandu-i mici modificari la partea de afisaj, unde cifrele de dupa virgula la temperatura sunt acum de dimensiune mai mica, dupa cum se va constata daca incarcati sketch-ul TFT_DigitalClock_RTC1b.ino
   In filmuletele urmatoare am prezentat modul de afisare:
ceas si termometru cu DS3231 pe afisaj de 1,8" cu ST7735 (5)
clock with thermometer using DS3231 on 1.8" ST7735 display (3)

sâmbătă, 29 octombrie 2016

Afisaj TFT de 1,8" cu driver ST7735B


   De curand am intrat in posesia unui afisaj color cu diagonala de 1,8" (4,6cm) care este controlat de integratul ST7735B...
   Am gasit mai multe informatii, dar m-am oprit la cele de la:
Henry's bench - 1.8TFT V1.0 ST7736 Arduino Tutorial 1: Hello World
Tweaking4all - SainSmart 1.8″ TFT Arduino Color LCD Display
   Dupa descrierile prezentate pe net, se conecteaza simplu cu 3 sau 5 pini de date, alimentare la 5V (ca are stabilizator de tensiune pe placa), masa (gnd) si pinul de iluminare de fundal.
   Am conectat afisajul la o placa Arduino dupa indicatiile din sketch si am am avut surpriza sa constat ca ecranul e mai mult alb
 si doar daca scot masa se vede cat de cat imaginea, dar apar diverse linii, etc.
   Dupa ce am mai cautat pe net, am dat de diverse discutii in care se schimbau pini, intr-o discutie d epe forumul Arduino am gasit ca ar fi indicat sa folosesc pe pinii de date rezistente, cum e si la afisajul de Nokia 5110, schema mea de test fiind
   Am facut 2 filmulete in care se vede ca e corect acest mod de legare folosind libraria lui Bodmer TFT_ST7735 si un sketch derivat dintr-un exemplu de acolo, adica TFT_DigitalClock_ST7735_simplified.ino:
afisaj grafic cu ST7735B conectat la Arduino
ST7735B display with Arduino board
03.11.2016
   Schema de test completa este