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

duminică, 8 octombrie 2017

TEST STM32F103C DS3231 TM1637

Am adaptat proiectul de aici inlocuind ATTINY85 cu STM32, si a iesit ca mai jos:
Legaturile sint comentate in cod.
Functioneaza si cu DS1307 fara modificari la cod, dar cu adaptor de nivel.( STM-ul merge la 3,3V, iar DS1307 vrea neaparat 5V).


Am conectat si senzorul DHT11 astfel incit 20 secunde se afiseaza ora apoi 2 secunde se afiseaza temperatura si 2 secunde umiditatea.codul rezultat este aici.

marți, 3 octombrie 2017

Ceas cu afisare pe Nokia si reglaj

Am revenit la un proiect mai vechi  ce mi-a placut la acea vreme, inspirat de aici, si i-am adaptat reglaj manual pentru data si ora dupa modelul lui Nicu, folosind un encoder pentru a fi mai usor de bagat intr-o cutie. Cutia va fi de la un ceas cu lcd defect similar cu cel de aici.
Arata ca in imaginile de mai jos:
Modul de conectare se poate deduce din cod .
 La o apasare lunga pe butonul encoderului se trece in modul reglare, apoi rotind dreapta stinga se ajusteaza valorile. Ca sa iesiti de modul reglare trebuie parcursi toti pasii dupa care revine in display-ul principal.


Codul din faza aceasta este pe github. I-am mai adugat niste zerouri la minutele si secundele <10 pentru ca era cuidata afisarea.

Deoarece nu era vizibil pe timp de noapte i-am adaugat un fotorezistor pe A2 legat la Vcc, A2 este legat la masa printr-un rezistor de 470ohm. pe pinul D5 (PWM)  am conectat led-ul lui Nokia(pinul BL), si l-am facut ca la intuneric sa aprinda un pic acest led cit sa faca vizibil display-ul.
Intuneric simulat cu capacul de la stilou:


In plus am mai adaugat o functie astfel ca la o apasare scurta pe encoder sa afiseze timp de 2 secunde doar temperatura si umiditatea, cu caractere mari pe ecran iluminat. La apasare lunga va intra in modul reglaj.

Codul este tot pe github.

luni, 11 septembrie 2017

Ceas cu reglaj folosind Arduino, DS3131/DS1307, DH11, afisare cu fonturi

Ideea acestui proiect a fost sa scot un ceas cu afisare cit mai mare (nu patratoasa) pe TFT de 2,2" shield pentru Arduino UNO.

M-am inspirat de pe blogul lui Nicu Florica pentru ca avea realizata foarte bine partea de reglaj.

Am taiat pinul RST de la display si l-am legat cu un fir la RST-ul lui Arduino, am mai mai taiat pinii de pe TFT utlizati pentru SDcard. 
RST-ul ma incurca ca aveam nevoie de A5 pentru RTC, iar pinii de la SDcard imi trebuiau pentru butoanele de reglaj si senzorul DHT11
Codul si biblioteca utilizata se afla pe github

Initial am folosit un DS3231, iar ulterior pentru a minimiza costurile am testat si cu DS1307, care a ramas definitiv.
#define meniu 10
#define minus 12 #define plus 11 #define DHTPIN 13 #A4/A5 i2c RTC care poate fi fara nici o modificare la cod DS3231 sau DS1307


 Placa de dezvoltare avea un rind de gauri suplimentare nefolosite, si le-am atasat cite un soclu
pentru a fixa placa ce o facusem cu RTC-ul, DHT11, si butoanele



Ulterior s-au dezvoltat http://nicuflorica.blogspot.ro/2017/02/ceas-cu-termometru-cu-arduino-due-si.html https://plus.google.com/u/0/+VladGheorghe/posts/aayXR7oFVf5 https://plus.google.com/u/0/+VladGheorghe/posts/fmzrS453Y9h https://plus.google.com/u/0/+VladGheorghe/posts/Jzjp3sCHESV https://plus.google.com/u/0/+VladGheorghe/posts/6iZezjbp2CX




Ceas cu arduino, DS1307, TFT 2,2" ILI9225, DHT11, encoder

Am reusit sa gasesc informatille despre un proiect mai vechi :

Este adaptat dupa informatiile lui Nicu de unde am preluat ideea de reglaj cu ajutorul unui encoder. Asta deoarece mi-a fost lene sa adaptez cutia pentru butoane de reglaj, Dupa cum se vede aveam cutia de la o chestie "similara" decedata, si am vrut sa-i scot encoderul in spate.In interior am "inghesuit" toate modulele. Am folosit un Arduino ProMini.
Tot pe spate i-am aplicat o baterie de telefon mobil cu un incarcator chinezesc, toate alimentate dintr-un alimentator ramas tot de la vreun telefon mobil.

Modul de conectare se poate deduce din cod unde este comentat. Codul si bibliotecile folosite sint pe github
Pentru display am folosit UTFT-ul incarcat pe github fiind singura arhiva ce avea suport pentru ILI9225. Daca folositi alt tip de display posibil sa mearga cu o versiune curenta de UTFT
Functionarea encoderul-ului se poate vedea tot din studiul codului, si e relativ simpla, la o apasare lunga intra in modul reglaj, rotire dreapta/stinga incrementeaza/decrementeaza , apoi la fiecare apasare scurta trece la pasul urmator, data, zi, an, ora, .... la finalul ciclului revine in ecranul de afisare curenta.

vineri, 8 septembrie 2017

Ceas cu alarma si termometru cu Arduino ProMini TFT 2,2"-ILI9163 , DS3231, DS18B20

In articolul anterior am adaptat codul lui Nicu Florica pentru un display de 2" cu ILI9163 care functiona pe STM32. 
M-am gindit sa fac un test si pe un Arduino ProMini avind ca scop sa folosesc un font elegant pentru afisarea orei (fara utilizarea fontului afisarea este foarte "patratoasa" si deranjanta la dimensiuni mari afisate de display mare). Problema e ca aceste fonturi ocupa foarte multa memorie.
Pinul LED al display-ului l-am legat la Vcc printr-o rezistenta de 470Ohm, pentru ca Arduino este alimentat in cazul meu la 5V. Biblioteca este cea folosita in cazul lui STM .
Dupa mai multe teste de fonturi m-am oprit la ceea ce se vede mai jos:
S-au pastrat toate functionalitatile descrise de Nicu la el pe blog, numai ca s-au micsorat dimensiunile proportional cu acest display care are rezolutia de 128/160
Pe viitor intentionez sa-i fac si un cablaj imprimat. Aceste display-uri au un pret decent pentru 1,8", 2", 2,2" si sint suficient de vizibile (mai putin pentru mine care imi trebuie 4").
Schema este aici.




Schema de legaturi se poate deduce foarte usor din cod care este curatat de modificarile anterioare.
Codul ocupa aproape toata memoria disponibila

Deasemenea se poate folosi si display cu ILI9143 cu alimentare la 3,3V cu definirea in cod a noii biblioteci, Arduino alimentindu-se la 3,3V in acest caz.

I-am minimizat costurile inlocuind DS3231 CU DS1307, si am mai facut mici corectii la cod. Am inlocuit LED-ul de la alarma cu un difuzor piezo, si am scos fontul de la afisarea datei care depasea ecranul.
Pregatit de o caseta eleganta.




Update 19-mar-2023
Am refăcut proiectul de mai sus pe un arduino uno și un TFT shield HX8347G. Acestuia i-am izolat pinii pentru SD card, pinul CS pe care l-am conectat la GND și pinul RST pe care l-am legat la RST-ul lui arduino uno. Astfel am eliberat 6 pini, A5 pentru I2C, 4 pini pentru butoane și unul pentru buzer.
Pentru temperatură și umiditate am folosit un senzor GY21 pe interfață I2C, iar pentru clock un DS3231.
Definirea lor se vede foarte ușor în cod care este pe github.
TFT-ul cu pinii îndoiți:
Alarmă oprită:
Alarmă activă:
Alarmă activată:
Datorită utilizării celor două font-uri codul a ocupat aproape toată memoria.








joi, 31 august 2017

Ceas pe LCD ST7920 CU REGLAJ

Am pornit de la articolul de aici unde mi-a placut realizarea acestuia. Initial am testat codul omului, a functionat insa cercul in realitate arata rau de tot, mai ales daca e privit de aproape, asa ca am renuntat la el. Asta datorita rezolutiei ecranului.
Ulterior m-am hotarit sa fac un ceas mai serios cu cifre cit mai mari si reglaj manual ca sa nu depind de calculator la trecerile ora vara/iarna, eventual alarma daca mai raminea memorie disponibila, si din pacate nu a mai ramas.
Pentru display este folosita o biblioteca U8glib cu care m-am "imprietenit" mai greu (pe link este cea folosita de mine.).
Modul de conectare al display-ului la arduino este descris cu foarte multe detalii de Nicu Florica la el pe blog , si nu voi repeta aici.
I-am adaugat un DS1307, un DS18B20 si trei butoane :
#define meniu 9 
#define minus 10
#define plus 11 
#define ONE_WIRE_BUS 8
La scrierea codului m-am inspirat de aici pentru ca foloseste tot U8GLIB si a iesit ca mai jos:
Am marit atit cit a fost posibil fontul orei iar restul informatiilor le-am incadrat la dimensiunea maxima acceptata de rezolutia ecranului.

 Aici se poate vedea modul de reglaj imediat dupa Duminica  . Am vrut sa sterg ecranul in modul reglaj insa codul depasea marimea maxima a lui Arduino micro (pe asta l-am folosit spre final), si astfel singurul loc liber era cel imediat dupa afisarea zilei.
La rutina de reglaj m-am inspirat tot de la Nicu, ca mi s-a parut foarte simpla de implementat.

(Sketch uses 29814 bytes (97%) of program storage space. Maximum is 30720 bytes.)



Codul final si bibliotecile folosite sint aici:
Consumul este sub 100mA


 Modelul de senzor e temporar pina soseste unul in capsula TO-92
update:34-iul-2018
Dupa varianta lui Nicu realizata cu encoder, am adaptat codul pentru 3 butoane (nu am avut disponibil nici un encoder):
Functionalitatile in mare au ramas cele descrise de Nicu Florica pe blog-ul lui.
Codul pentru poza din stinga este pe github iar pentru cel din dreapta tot pe github. La varianta din dreapta am corectat afisarea secundelor analogice pentru ca era o mica abatere fata de cele numerice.
In plus fata de ce a testat Nicu Florica am adaugat un senzor DS18B20. Fonturile utilizate ocupa foarte multa memorie si am incercat sa fac un compromis pentru o afisare cit mai vizibila.

update 11-aug-2019
A sosit zilele astea display-ul de mai jos pe care am facut citeva teste:


Pentru a functiona a trebuit sa fac upgrade la u8glib, iar driverul a functionat cu:
U8GLIB_DOGM128 u8g(8, 9, 5, 7); // SPI Com: SCK , MOSI, CS, A0
RST-ul LCD-ului l-am legat la pinul reset al lui arduino.
Neajunsul este ca are un offset pe x de -4 puncte.
Codul de test aferent pozelor de mai jos este pe github.
Ecran luminat
Neajunsul cu offset-ul se poate distine usor in partea dreapta unde aprinde pixeli in mod aleatoriu. Mai exact, zona de lucru este de la 4(x=0) la 124, diferenta de 4 pixeli apare aleatoriu in dreapta la pornirea tensiunii de alimentare
Fara lumina de fundal
O alta clona modificata, cod pe github
Update: 22-ian-2022
Cam acelasi cod dar de data asta cu arduino mega si un display 240x64 DG24064 cu T6963




Legaturile se deduc foarte usor din codul postat pe github pentru prima varianta si tot pe github si pentru a doua.

Stabilizator reglabil 14V/1A de la 50V-300V cu IR2153

 Cu mult timp în urma am testat un stabilizator în comutație, reglabil cu IR2153 conform notei de aplicație din datasheet. Am reluat din nou...