sâmbătă, 1 februarie 2020

Circuit de comanda cu temporizare la impuls

    Un releu de timp cu actionare la impuls, adica la apasarea unui buton, se poate face bineinteles cu conmponente discrete, cu "batranul" 555, dar si cu microcontrolere, asa ca am raspuns la solicitarea lui Tudor Gheorghe pentru un asemenea montaj.
   Schema de teste foste simpla:
in care se foloseste pe langa o placa Arduino Uno (sau oricare alta, gen Nano, Pro Mini, Leonardo, Mega, etc), un potentiometru pentru reglarea timpului de actionare, un buton. In plus se poate folosi un modul cu releu pentru a comanda un bec de exemplu sau motor si astfel avem izolare galvanica.
    Modulul de releu la care ma refer este in genul acesta

care are o schema de genul
 sau
    Revenind la partea practica, programelul scris pentru a actiona led-ul intern de pe placa, cel de la pinul D13 si un modul de relee de genul celui prezentat mai sus este monostable1.ino.
    Daca se foloseste modulul de mai sus, in program (sketch) configurarea trebuie sa fie asa
    Daca nu se foloseste modulul de genul asta si se comanda dar ledul intern sau un cicuit clasic de genul
sau un modul de releu SSR (Solid State Relay) de genul
 
configuratia din sketch este
    In program nu am folosit clasica comanda delay, ci m-am folosit de millis(), pornind de la exemplul din programul Arduino IDE numit
   Timpul cat releu este actionat imediat ce este apasat butonul, indiferent cat este el apasat, este reglabil, in cazul de fata intre 1 si 10 secunde, adica cu potentiometrul rotit la minim timpul de actionare este 1 secunda, iar la maxim 10s.
  Am primit niste poze din timpul testelor realizate de Tudor Gheorghe
si un film, ce l-am postat pe youtube pentru a putea fi vazut si de voi
PS: Cand mai primesc poze si filmulet(e), o sa le postez.
    Am primit alte poze;

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: