sâmbătă, 25 ianuarie 2020

Tester pentru acumulatori LiPo 3S

   Lidiano (pippo), un cititor a-l blogului, m-a rugat sa ii scriu un program pentru un tester pentru acumulatori LiPo 3S dupa modelul celui de baterie auto cu ATtiny85, cel din articolul Indicator stare acumulator auto cu LED multicolor comandat de un ATtiny85(45)
   Am primit de la el un minim de "caiet de sarcini":
   Dupa ce am mai conversat pe email si m-am mai documentat, am desenat urmatoarea schema, pentru ledul lui RGB, cu anod comun:
partea de praguri fiind calculate pe o foaie de hartie:
   Aceste praguri, le-am transpus in programul RGB_LiPo3S_checker1a.ino, astfel:
adica
cu mentiunea ca la exista un mic histerezis de 3 biti pentru a aparea aprinderi intre stari.
   Schema, pentru led multicolor cu anod comun, redesenata in Eagle PCB si colorata in Paint arata asa:
Pentru led multicolor cu catod comun, schema este cea prezentata la inceputul articolului.
   Programul RGB_LiPo3S_checker1a.ino permite sa se foloseasca ori led cu anod comun
ori cu catotd comun
functie de ce linii se activeaza.
   Montajul realizat de Lidiano:
   Microcontrolerul trebuie sa fie setat pe 8MHz cu oscilator intern pentru a avea o animatie ca in filmuletul realizat de Lidiano numit Lipo 3S tester
   Pentru detalii despre programarea microcontrolerului ATiny85(45) cititi informatiile din articolul Programarea unui microcontroler ATtiny85 cu sketch Arduino.
    Lidiano a facut teste fizice si mi-a trimis si poze:
- tensiune prea mare pe acumulator
- acumulator complet incarcat
- acumulator incarcat
- acumulator incarcat suficient
- acumulator insuficient incarcat
- acumulator descarcat

vineri, 24 ianuarie 2020

Ceas NTP pe afisaj serial

   Am schimbat placa de dezvoltare ce comanda afisajul cu o placa NodeMCU (cu ESP8266) realizand un ceas ce preia ora d ela un server NTP prin conectarea la reteaua wi-fi locala.
   In articolul anterior, placa de dezvoltare Arduino Nano avea un modul RTC cu DS3231 (DS1307).
   La placa de dezvoltare este legat afisajul la pinul D7 (GPIO13), iar programul rescris ce foloseste tot libraria ArduinoSerLCD se numeste NTP_clock_on_serial_lcd.ino
    Cateva poze:
 
si 2 filmulete:

    Am modificat modul de obtinere ora de la serverul NTP, sketch-ul fiind acum NTP_clock_on_serial_lcd2.ino. Am facut alte 2 filmulete:

Ceas RTC cu afisaj serial

   Am intrat in posesia unui afisaj alfanumeric urias cu 20 de coloane si 4 randuri cu o interfata seriala realizata cu PIC de tip BPK-000, despre care am gasit informatii la BPK-000 Programmer's Reference
   Mai folosisem acum vreo 6 ani un afisaj similar, doar ca era de tip 1602, publicand atunci articolul Afisaj serial LCD 16x2 (1602)
     Schema de conectare este forte simpla:
iar libraria testata si atunci si acum este cea de la https://github.com/scogswell/ArduinoSerLCD. doar ca se foloseste logica negativa, dupa cum apare in materialul Arduino "Hello World" for BPI-216 Serial LCDs
   Am facut 2 filmulte:


    Am zis sa fac ceva util, un ceas, asa ca am conectat si un modul de ceas RTC si am creat si niste caractere mari pentru el.
ceasul aratand asa:
   Programul scris de mine se numeste RTC_clock_on_serial_lcd.ino si la placa Arduino (Nano in cazul meu) am legat la pinul D4 intrarea seriala a afisajului, iar modulul de ceas RTC la pinii i2c (A4 la SDA si A5 la SCL)

    Am realizat alte 2 filmulete, de data asta cu ceasul:

duminică, 5 ianuarie 2020

Ceas cu reglaj pe afisaj P10 de 32x16 leduri

 
   Am adaugat ceasului prezentat anterior (1 si 2) reglaj pentru ora si data. Reglajul se face din 2 butoane: MENIU/URMATORUL si CRESTE/PLUS.
    Schema difera de cea anterioara prin adaugarea celor 2 butoane la pinii D2 si D3, catre masa.
   Programul ce face toate "minunatiile" astea este DMD-P10-clock3.ino.
   La apasarea scurta a butonului MENIU se intra la reglajul orelor, iar prin apasarea repetata sau tinerea apasata a butonului PLUS se mareste valoarea pana la 23, in cazul orelor, dupa care revine la 0.
  La urmatoarea apasare a butonului MENIU se pot modifica minutele din butonul PLUS (maxim 59)
   Se trece la reglarea anilor prin apasarea scurta a butonului MENIU si se modifica din butonul PLUS (maxim 2039)
   La apasarea butonului MENIU se trece la reglajul lunii, schimaband valoarea prin apasarea repetata sau tinerea apasata a butonului PLUS (maxim 12)
   Ultimul reglaj este cel al zilelor, intrandu-se prin apasarea butonulu MENIU si se schimba valoarea din butonul PLUS (valoarea maxima difera de la luna la luna, sistemul de alegere este preluat de la Andy Doz).
    Am facut si 2 filme, pentru a se intelege mai usor cum apar informatiile si cum se schimba ora si data:
ceas cu reglaj pe afisaj P10 32x16 leduri
manual adjust clock on P10 32x16 led display
   Mentionez ca am incerc si fontul mai mare, din exemplul librariei, dar cifrele sunt lipite si ora e greu de citit.
   Singura problema ce nu am reusit s-o rezolv din soft este aceea a reglajului intensitatii, Rezolvarea momentana este acea a alimentarii cu tensiune reglabila, 5V pentru maxim si 3,1-3,2V pentru minim.

07.01.2020
    Am reluat testele cu un caracterul mai mare,
programul devine DMD-P10-clock3a.ino si in filmuletele urmatoare se vede cum se prezinta informatiile:
ceas cu reglaj pe afisaj P10 32x16 leduri (2)
manual adjust clock on P10 32x16 led display (2)

08.01.2020
    Am pus secundele mai mici, programul devenind DMD-P10-clock3a2.ino