duminică, 6 mai 2018

Sursa 0-30V 0-3A PSU KIT

Cu ceva timp in urma a sosit un kit de sursa 0-30V/0-3A si m-am apucat sa-l testez. Anterior mai luasem unul de la alt chinez care avea o problema in sensul ca la pornire intra direct in protectie, trebuind oprit si pornit din nou ca sa revina la normal. Acesta este deja pus intr-o cutie, iar utilizatorul s-a obisnuit cu el asa. 
Dupa plantarea tuturor componentelor am observat ca si acesta se comporta similar. Asamblat arata ca mai jos:
Alimentarea am facut-o din transformatorul din imagine (24V/63VA):
Cautind schema am mai gasit pe cineva care  a sapat la rezolvarea problemei, si dupa cum se poate vedea la el pe blog a studiat in amanunt problema, scutindu-ma pe mine de studiu.
Schema originala este mai jos:

Asa ca am eliminat Q1, R13 si R14, si am trecut la teste. Problema initiala cea cu pornire in protectie parea ca se rezolvase. Insa desi pe condensatorul de filtraj aveam 35V iesirea nu se regla peste 21V, pentru asta am masurat tensiunea pe iesirea lui U1 care era de 6,2V. Am inlocuit R4 care initial era de 4K7 cu una de 1K2, astfel am obtinut o tensiune constanta (imuna la consum) de 11,8V, rezultind reglajul iesirii pina la 27V. Valoarea minima a tensiunii pleca de la valori negative problema rezolvata din reglajul lui RV1. Stabilizatorul 7824 l-am inlocuit cu 7812 pentru a folosi un ventilator de 12V caruia i-am atasat  un mic radiator pentru ca functiona suficient de fierbinte (ventilatorul folosit lua 0,12A la 12V). Testele le-am facut cu un bec auto de semnalizare care la 12V consuma 1,6A, iar la 5V consuma 1A. TL081 venite cu kit-ul au primit alta destinatie si in locul lor am pus niste LM741 recuperate de pe niste placi mai vechi.

Dupa circa o ora de teste la 12V/1,6A diodele din puntea redresoare  au cedat impreuna cu Q4.

Am trecut la un mic upgrade. Am inlocuit diodele cu 10A10 care conform catalog ar avea 10A, iar in locul lui Q4 am pus doua 2N3055 la care pe fiecare emitor am inseriat cite un rezistor de 0,1/5W, am inlocuit R7 cu una de 0,22/5W care ma lasa pina la 4,5A. A iesit ca mai jos:


De data asta a stat vreo 3 ore in teste  si a rezistat cu succes, diodele din punte fiind foarte putin calde, Probabil se vor incinge mai tare la curenti mai mari, dar in caseta ce va fi montat va avea un ventilator chiar deasupra placii care sper sa-i asigure o racire suficienta, sau voi renunta la ele pentru o punte monobloc ce o voi monta pe radiatorul 2N-urilor. Radiatorul din imagine (fara ventilatie) abia s-a incalzit dupa trei ore desi cele doua 2N3055 au disipat aproape 37W. Q2 a ramas rece.
Micsorind valoarea lui R7 ar trebui crescuta valoarea lui R17 dar mie mi-a fost lene s-o mai scot, mai ales ca nu ma deranja foarte tare. In aceata situatie pozitia de curent minim a lui P2 determina intrarea in protectie, insa cursa potentiometrului este foarte mica pentru a iesi din protectie. 
R2 si R3 ar mai trebui inlocuite cu altele de putere mai mare pentru ca se incalzesc semnificativ.

sâmbătă, 21 aprilie 2018

Display 7 segmente/8digiti cu 74HC164

Aveam luat de test un display cu 7 segmente 8 digiti, cu 74HC164, serial pe 2 fire, si mi-am facut un pic de timp pentru teste.
Acesta arata  ca mai jos:


Dupa ceva studiu, m-am oprit pe 2 articole cu tematica similara de aici si de aici, iar dupa citeva incercari am reusit sa-l aprind cum vreau eu. De mare ajutor a fost datasheet-ul circuitului.
Am definit cei 2 pini:

const int clock = 3; //CP
const int data = 2;  //DAT

iar logica de comanda este:

shiftOut(data,clock,LSBFIRST,B10011101); // 1SEGMENT STINS //ABCDEFGdp
shiftOut(data,clock,LSBFIRST,B00000010);// 1 DIGIT ACTIV
delay(1); //necesar pentru transfer (daca este mai mare de 10 devine evident transferul datelor)

curatarea display-ului 

shiftOut(data,clock,MSBFIRST,B11111111);
shiftOut(data,clock,MSBFIRST,B00000000);

Dupa ce am verificat aprinderea fiecarui digit cu numarul dorit, am atasat doua bucati LM35 ca sa vad cum se misca. Codul de test este pe github.


 Pentru teste am folosit un arduino nano:



Dar apare un flicker foarte obositor ce nu se vede in poza. Afisarea unor informatii statice este ok, in sensul ca nu deranjeaza ochiul, insa citind cele doaua intrari analogice flicker-ul este deranjant, problema ce ramine in studiu.
Tinta lui este sa-l leg la un ATTINY85 ce urmeaza sa soseasca si voi face un voltmetru/ampermetru iar atunci voi mai lucra la reducerea tremuratului.

La sugestia lui Nicu Florica, pentru diminuarea tremuratului am incercat sa micsorez delay-ul de transfer folosind functia delayMicroseconds(j); insa timpul era prea scurt ca sa reuseasca sa aprinda LED-ul, acesta fiind mai mult stins. Cum tremuratul apare doar in cazul citirii intrarilor analogice, am pus partea de afisare intr-o bucla ca sa-l fortez sa citeasca mai rar cele 2 intrari:

int i;
 for (i=50;i>0;--i)
 {
shiftOut(data,clock, LSBFIRST, value[second_digit]); //delay(5);//NR
  shiftOut(data,clock, LSBFIRST, digit[3]);
  delay(2);
// delayMicroseconds(4000);
  shiftOut(data,clock, LSBFIRST, value[third_digit]); //delay(5);//NR
  shiftOut(data,clock, LSBFIRST, digit[2]);
  delay(2);
................................etc..................
  }

delay(2); reuseste sa asigure o luminozitate decenta, iar i=50 reduce semnificativ tremuratul fara a afecta valoarea citita si afisata.
Am facut si un filmulet cu telefonul iar in prima parte apare un tremurat datorita lampii cu neon, in realitate este insesizabil, insa ceea ce se vede era vizibil inainte de a pune bucla in cod. Spre finalul filmului am stins neonul, in film apare un usor tremurat dar este cauzat de camera video a telefonului. 

luni, 9 aprilie 2018

Ceas cu raspberry pi zero si TM1637

Pentru a ma obisnui cu programarea in python pe raspberry pi am inceput cu ceva simplu, un ceas sincronizat pe internet care afiseaza pe un display cu 7 segmente comandat cu TM1637.
Am folosit un raspberry pi zero cu un adaptor WIFI pe care am instalat raspbian. i-am facut update-urile si am instalat wiringpi si wirinpi2 conform datelor din link. Celelalte pachete erau deja instalate.
Cautind exemple mi-a atras atentia codul de aici pentru simplitatea lui. 
Am modificat codul anulind partea de afisare IP care nu ma interesa, si am redefinit pinii pentru DIO si CLK ai lui TM1637 iar dupa executare mi-a afisat imediat ora sistemului


Insa la acest exemplu nu m-am prins cum sa modific luminozitatea, asa ca am mai "sapat" un pic si am ajuns aici unde aveam posibilitatea de a umbla la luminozitate. In cod am redefinit  din nou pinii pentru a nu mai umbla la conexiuni. Astfel dupa citeva incercari am reusit sa gasesc luminozitatea dorita.
Pentru a porni la start am editat /etc/rc.local adaugind linia de mai jos:

python /home/pi/clock/clock-zero.py

Am dat reboot si ceasul a pornit automat. Astfel, atita timp cit va fi conectat la internet va arata tot timpul ora sistemului
Display-ul folosit s-a nimerit sa aiba aceasi dimensiune cu placuta de raspberry pi zero si s-a potrivit perfect si la gauri.


sâmbătă, 24 martie 2018

Step-down de casa cu LM2576

Din motive similare cu cele descrise in articolul anterior, m-am "suparat" si mi-am facut singur un step-down cu LM2576 care sa functioneze rece. La modulele chinezesti cu componente SMD, dioda este cam la limita avind un curent maxim de 3A, care la consumuri de peste 1,5A topeste cositorul cu care a fost lipita. La fel bobinele tip SMD se "scurg" de pe placa.
Am pornit de la schema de baza din datasheet-ul lui LM2576, unde am mai adaugat o punte redresoare, un Led pentru prezenta tensiune si o rezistenta de descarcare pe iesire. Daca rezista cu succes la teste ii va fi atasat un transformator  si o caseta.
Schema la care m-am gindit este cea de mai jos:
Pentru probe l-am realizat pe o placa de test.


In locul diodei D2 am folosit o dioda dubla pusa in paralel recuperata dint-o sursa pc, la iesire am folosit 2 condensatori de 1000microF. Dioda dubla si LM-ul le-am fixat pe un radiatorul din poza cu dimensiunile 55/30/10. Bobina are 30 spire CuEm de 1mm bobinate pe un tor recuperat tot dintr-o sursa PC.
La teste am folosit un transformator recuperat de un UPS care scotea la iesire 18V pe un secundar bobinat cu CuEm de 2mm. Dupa puntea redresoare avea 26Vcc.
La teste am folosit mai multe becuri auto de semnalizare pina am ajuns la un curent de 2,8A la o iesire de 5V, si l-am lasat sa se manifeste circa 2 ore, timp in care mai testam temperatura radiatorului. 
Initial ma gindeam ca radiatorul este mic, insa temperatura lui era foarte putin sesizabila. Bobina s-a incalzit ceva mai bine, dar nu suficient cit sa topeasca cositorul de la borne, de fapt putea fi atinsa cu mina fara a face rani. Puntea redresoare (KBU808 am folosit eu) era usor calda desi nu a fost fixata pe radiator.
Au urmat testele de scurt circuit care l-au lasat rece. Firele de legatura care erau cam subtiri au fost singurele evident mai calde, dar aveau si motiv.
Citeva imagini de la teste: pe osciloscop se poate vedea riplul la 15V/1.5A


Urmeaza sa gasesc citeva radiatoare identice si functie de acesta sa "calc" si citeva cablaje cu si fara punte redresoare.
Un test de cablaj imprimat + silk calcat.


 Partea cu silk-ul cred ca mai trebuie studiata.
Schema facuta cu kicad, iar cablajul cu pcb wizard.



vineri, 23 martie 2018

Step-down de casa cu MC34063 max. 1,5A

De curind am avut probleme cu diverse module step-down, in sensul ca s-a "scurs" de pe modul dioda schottky, si inductanta  Astfel m-am "suparat" si mi-am facut singur citeva module cu ceea ce am gasit in sertar. 
Aceste module le folosesc de obicei pentru o iesire de pina la 9V cu un curent variabil pina la 1A, cu tensiuni diverse de intrare pina in 35V.
M-am oprit asupra lui MC34063 pentru ca erau mai multe disponibile,.
Am inceput prin a testa schema de baza din datasheet, pe care am realizat-o pe o placa de test.


In cazul meu R1=470OHM, R2=semireglabil 50KOHM, Ct=470pF, L=270microH, dioda=1N5820, Rsc=0,1Ohm. Cu exceptia circuitului integrat toate celelate componente au fost recuperate de pe diverse placi.
Un exemplu de calcul care mi-a fost sugerat de Nicu este aici.
Montajul de test este:


 Am alimentat la 32V dintr-o sursa externa, din R2 am ajustat in gol tensiunea de iesire la 5V (tensiunea poate fi ajustata de la 1,3V la maxim). Apoi am conectat la iesire doua becuri auto legate in paralel despre care stiam ca la 5V  necesita 1,1A. Tensiunea de iesire a ramas constanta, de parca nu ar fi simtit consumul. Nu a oscilat nici la variatiile tensiunii de intrare. Condensatorul electrolitic folosit de mine este de 1000microF. 
Osciloscopul pe pinul 3 arata 42.37 KHz.


Dupa circa o ora de functionare in sarcina toate componentele erau reci, cu exceptia lui MC34063 care parea ceva mai caldut. Testele de scurtcircuit l-au lasat la fel de rece.
Am testat si functionarea unui modul amplificator ca cel de mai jos:
Pentru acesta trebuie neaparat condensatorii de decuplare de 100nF pe intrare si iesire, ca sa eliminam tiuitul ce se suprapune peste semnalul de intrare. Dupa montarea celor doi condensatori urechea mea nu a mai sesizat nimic anormal.

Fiind multumit de teste, m-am hotarit sa-mi fac un modul final pe care sa-l utilizez in continuare, si a rezultat schema de mai jos pentru care am "calcat" si un cablaj imprimat (de fapt mai multe).

Pe cablaj am pus doar un singur condensator de filtraj de 1000microF pentru ca am uitat de al doilea, dar pentru moment a fost suficient unul.



Apoi am inceput sa ma joc cu confectionarea bobinei pentru ca nu mai aveam inductante gata facute. Asa ca pentru comparatie am masurat pe un tester chinezesc bobina recuperata ce am folosit-o la teste care era si  marcata,  si am inceput sa fac teste cu citeva toruri  recuperate,.
M-am oprit la cele utilizate in becurile economice (decizia a fost influentata de google care mi-a gasit experimente similare facute de diversi). Dupa citeva incercari, concluzia este ca pentru 200microH pe tor se bobineaza 45 spire cu sirma de CuEm de 0,5mm. La consum constant si prelungit de 1A a ramas rece.


Pentru situatiile unde este necesar un curent mai mare am testat si o versiune cu "steroizi", care deriva din schema initiala la care am adaugat un tranzistor (recuperat dintr-o sursa PC SK13007)
Pentru probe l-am realizat pe o placa de test



La o alimentare de 16V cu iesire de 5V a alimentat cu succes un bec de far auto la aproximativ 5A jumatate de ora in conditii acceptabile, in sensul ca radiatorul din poza avea sub 40 grade (puteai sa tii mina pe el). Schema va trebui completata cu un circuit de protectie la scurtcircuit.

Update 1-apr-2021

Am mai realizat câteva module pentru a obține o tensiune negativă de  -5V/200mA din 30V intrare.








duminică, 4 martie 2018

Modul cu HT16K33

Pentru un viitor proiect cu ATTNY85 am testat doua module cu circuitul HT16K33 adaptor I2C catre 4x7 segmente cu catod comun. Cele  doua module arata ca mai jos:
Precum se vede nu exista prea multe informatii scrise pe el. Ca sa-l pot folosi am abuzat din nou de google si am descoperit ca sint clone ale acestuia de mai jos:


Insa nici aici nu am gasit o schema concreta de conexiuni. Am folosit datasheet-ul circuitului si am identificat cei 4 pini care ma interesau +5V, GND, SCL, SDA.
Implicit modulele au circuitele A0,1,2 deschise pentru  0X70 adresa I2C.


 Inchizind circuitul A0 adresa devine 0x71


Am incarcat pe arduino nano un scaner I2C pentru a verifica daca este corect:


In urma studierii materialului de aici, concluzia  este ca pinii 7 si 8 sint folositi pentru cele 2 puncte ce clipesc la secunda, (nefolositori in ceea ma intereseaza) in rest ceilalti corespund cu afisajul de mai jos:


Se observa ca display-ul are doar 6 pini pe linie, care corespund  modulului de mai sus  montat de la stinga spre dreapta, lasind in aer gaurile 7 si 8.

Testele le-am facut cu display-ul de mai sus care este ceva mai mic, dar cu pinii suficient de lungi ca sa-i pot modela, avind doar 0,36" fata de 0,56" .
Am modificat exemplul de aici pentru a afisa pe 2 display-uri, unul incrementeaza cu o unitate, al doilea aduna 1000 la unitatea incrementata.


 Am urcat pe google drive si un filmulet scurt.



Ceas cu reglaj si termometru pe LCD "amber-gold" 128/64

Am gasit la chinezi un display mai ciudat dar interesant ca tip de afisare, pe care m-am hotarit sa-l aprind ca sa vad ce face. Aceste este denumit "AMBER GOLD" cu lumina de fundal aurie, cu o rezolutie de 128/64 si arata ca mai jos:

Lipsind documentatia la el am abuzat din nou de google si am descoperit ca are la baza chip-ul ST7565, si se poate aprinde cu ajutorul u8g2
Testele le puteti vedea mai jos cu un cod de test:

Am preluat apoi un proiect anterior dar fara succes pentru ca dimensiunea codului era prea mare pentru arduino uno (mini in cazul meu). Astfel am inceput sa teste cu vechiul u8glib la diverse display-uri suportate si asa am ajuns la :

U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8);// SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Rst = 8

In cod am adaugat linia de mai sus si am comentat-o pe cea veche care era pentru ST7920, am  mai redefinit pinii pentru senzorul de temperatura si butoanele de reglaj.
Desi codul este pentru DS1307, merge foarte bine si cu DS3231 pe care l-am folosit la teste.
Pe github am ridicat si arhiva bibliotecilor folosite.
Rezultatul se poate vedea mai jos, nimic spectaculos fata de ST7920, doar ca e auriu fundalul.
 Desi dimeniunea utila este de 4/2 cm reuseste sa fie suficient de vizibil si pentru ochii mei fara ochelari
 In modul reglaj datele apar afisate imediat dupa denumirea zilei
 Afisarea fara LED-ul de fundal


Amplificator ultra simplu cu MOS 40W/8Ohm la 2x30V

 Am început construcția unui amplificator cu tranzistori MOS după o schemă proiectată de Ionel Epure , care se împacă foarte bine cu boxele ...