duminică, 15 octombrie 2017

LM317/338 controlat cu 3 butoane cu arduino afisare pe OLED

Am revenit la proiectul anterior nefiind multumit de functionare. Tranzistorul de comanda al lui LM317 si semireglabilul se incalzeau exagerat iar tensiunea de iesire o lua pe cimpii. Senzorul cu MAX471 a cedat. Cu amabilitatea lui Google am ajuns la un articol documentat destul de bine, dar neterminat.
Am renuntat la tranzistorul de comanda pentru LM317 , am pastrat si al doilea AO caci aveam o experienta anterioara cind am observat ca bucla de reactie negativa facea necazuri.
Dupa mai multe teste schema a devenitca mai jos. Este foarte importanta stabilitatea tensiunii de 24V. In cazul meu la cca 4,5 A debitati pe iesire tensiunea de dupa puntea redresoare cade cu 2,4V.

Pentru masurarea tensiunii am renuntat la MAX471 care a decedat, si am luat informatia de tensiune de iesire de pe mijlocul semireglabilului de 100K, acesta se ajusteaza initial fara ca mijlocul lui sa fie legat la A0. Eu am aplicat 10V pe capatul de sus si am ajustat mijlocul la 0,1V.
Pentru masurarea curentului am inseriat cu masa o rezistenta de 0,22Ohm (asta am gasit in sertar).
Pentru comanda digitala am folosit 3 butoane + - si  fast, astfel la apasarea lui + sau - pasul de reglare este de 20mV/pas la intrarea in primul AO, respectiv daca se apasa butonul fast impreuna cu + sau - pasul este de 200mV/pas. Am ales aceasta varianta ca pot parcurge cit mai repede plaja Umin-Umax.
Din semireglabilul de 4K7 se regleaza amplificarea astfel incit la pasul 127 sa obtinem la iesire 12V+ tensiunea minima a lui LM317 (nu toate LM-urile au aceasi tensiune, trebuie masurata initial).
Tensiunea de iesire maxima va fi 24V+tensiunea minima.
La testele actuale am folosit untransformator 220/24/63Wsi un LM338 este similar cu LM317 numai ca are limita de curent la 5A
Testat timp de 2 saptamini s-a comportat OK.
Dupa reglaj se poate scoate din cod informatia de PWM, cea din dreapta sus (101 in cazul de fata).
O imagine din faza de testare (am folosit un arduino nano)
Si o varianta de afisare pe display Nokia, inspirata de aici
Si o alta varianta unde afiseaza tensiunea de intrare si valoarea PWM


17-OCT-2017 Am reusit sa-l adun un pic. Nu am mai avut 7824 si am pus temporar un step-up alimentat din 12V.





Si afisare pe TFT 2"


Update 5-mai-2018
la ultima varianta am inlocuit step-up-ul cu un 7824, am alimentat dintr-un transformator toroidal 220/22V, si am facut mici ajustari la cod. Viteza de reactie  ( se poate vedea in clip) este relativ mica datorata tft-ul cu ILI9225 care este foarte lent. Cit de curind trebuie sa soseasca alte modele ci ILI9341 si voi reveni cu rezultate.
Si un mic filmulet.

duminică, 8 octombrie 2017

Ceas cu reglaj, temperatura si umiditate cu attiny85

Am reluat proiectul de aici cu Attiny85 DIGISPARK si i-am adaugat si un senzor DHT11.
 Pentru reglaj am folosit pinul reset care este utilizabil ca analogRead pentru tensiuni mai mari de 2,5V. Fiindu-mi lene sa calculez un divizor cu rezistente, am pus 2 semireglabili de 1K intre +5V si masa iar pe mijlocul lor am reglat 3V (valoarea citita este 647), respectiv 4,5V (valoare citita 968).
Ca RTC in acest caz am folosit un DS1307, functioneaza si cu DS3231 fara nici o modificare la cod.
Codul este aici si sint comentate legaturile.
Avind bucla de afisare :
for (int pp=20; pp>0; pp--)
este un pic enervant  inceputul reglajului orei si minutelor, deoarece la fiecare 20 secunde va afisa temperatura si umiditatea, dar in felul acesta am folosit la maxim dotarea hard/soft a lui Attiny 85.
Reglajul odata efectuat teoretic nu mai este necesar decit la schimbarea orei de iarna sau primavara.
Am incercat initial sa blochez bucla pe perioada reglajului, insa codul depaseste memoria lui Attiny.
Schema este aici
citeva poze mai jos:
Temperatura
Umiditatea




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.

TEST STM32F103C DHT11 TM1637

Am testat cu STM32F103C afisarea temperaturii si umiditatii pe un display 7 segmente cu controler TM1637. Am folosit tot Arduino IDE pentru programare.
Aici treaba a fost foarte simpla, am luat exemplul lui Nicu si am modificat  in cod descrierea pinilor si a functionat fara probleme. Codul adaptat de mine este aici.


STM32F103C test cu Nokia 5110 si DHT11

Am testat afisajul Nokia 5110 cu DHT11 cu STM32F103C, utilizind Arduino IDE
Am folosit informatiile de aici pentru Nokia, si de aici pentru DHT11.
Codul si bibliotecile sint aici.
Ce a iesit vedeti mai jos:





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.

sâmbătă, 23 septembrie 2017

Sursa 0-20V/3A comandata de arduino cu afisare pe OLED 128x32

Am refacut sursa din articolul anterior adaugind un al doilea AO, pentru ca in varianta initila reactia negativa nu functiona corespunzator, producind mici variatii ale tensiunii de iesire functie de consum. 
Asa ca primul AO se ocupa de furnizarea referintei, iar al doilea AO de stabilizare si reglaj tensiune.
Am gasit prin sertar un display OLEd cu rezolutie de 128/32 si am adaptat codul pentru a afisa pe acesta. 
Deocamdata am pastrat afisarea pasilor ca sa pot regla amplificarea primului AO. (La final voi afisa cind este scurt pe iesire, mai este A2 liber si voi monitoriza starea colectorului lui BC107 care se ocupa de preotectia la scurt.)
Reglajul porneste din 0V pina la 20V, iar pina la 3A tensiunea de iesire este constanta, dupa care BC107 blocheaza comanda.
Reglajul curentului de iesire nu m-a interesat in acest moment. (mai sint necesare inca 2 AO, si e posibil sa nu-mi incapa cablajul in cutia ce urmeaza sa soseasca).
Schema a devenit:
Mai jos sint citeva imagini de la teste:

 Temperatura radiatorului fara ventilatie nu a depasit 40 grade la 2,5A, si 3,2V cu 28V pe intrarea in colectorul lui 2N3055 (IPRS Baneasa).


In curind si cablajul imprimat, dar astept carcasa ca sa-l pot adapta la gaurile de fixare ale cutiei.

SMPS 7V-18V cu TNY268 cu curent ajustabil

Inspirat de un clip video  ( detalii si aici ) am realizat o sursă de 14,2V cu curent constant reglabil. În secundar de fapt este aceeași id...