luni, 12 februarie 2018

Radio cu RDA5807 pe OLED I2C

La solicitarea unui prieten am pornind de la articolul anterior si am adaptat codul initial pentru afisare pe display OLED I2C. Urmeaza a fi ascuns intr-un radio decedat.
Am renuntat la afisarea canalului in favoarea unei dimensiuni mai mari pentru frecventa.
Din informatiile oferite de functia RDS am renuntat la afisarea orei pentru ca nu am gasit nici un post de radio care sa transmita ora actualizata.
Restul a ramas cam la fel, adica la apasarea butonului meniu trecem din acord automat, in manual, si apoi in reglaj volum.
Schema cu utilizare cu oled devine:
Eu am folosit un arduino micro pe care l-am alimentat la 3,3V
Codul actualizat este pe github, impreuna cu biblioteca lui RDA5807 care este utila in aceast caz doar pentru functionarea functiei de RDS. Partea initiala de cod pentru RDS nu am reusit s-o adaptez pentru o afisare corespunzatoare. 

Imagini de la teste:
 Pe display in dreapta sus am afisat nivelul semnalui receptionat. Ca antena acum are un fir de circa 10cm
 Deoarece m-a secat breadboard-ul utilizat (pene de contact) am procedat la lipirea firelor de conexiune
Update:
Confom unor observatii library-ul folosit era setat pe 128/32, motiv pentru care afiseaza elativ ciudat.
Deci fisierul Adafruit_SSD1306.h trebuie editat  sa arate astfel:
/*=========================================================================
    SSD1306 Displays
    -----------------------------------------------------------------------
    The driver is used in multiple displays (128x64, 128x32, etc.).
    Select the appropriate display below to create an appropriately
    sized framebuffer, etc.

    SSD1306_128_64  128x64 pixel display

    SSD1306_128_32  128x32 pixel display

    SSD1306_96_16

    -----------------------------------------------------------------------*/
   #define SSD1306_128_64
  // #define SSD1306_128_32
 // #define SSD1306_96_16
/*=========================================================================*/
Insa in aceasta situatie codul devine prea mare (110%). asa ca m-am mobilizat si am adaptat codul scris initial pentru RDS ocazie cu care am renuntat la biblioteca RDA5807 pe care am folosit-oinitial doar pentru functia RDS. Astfel am reusit sa compilez codul pentru arduino micro.
"Design-ul" a devenit:



sâmbătă, 27 ianuarie 2018

Voltmetru/ampermetru cu Attiny85 pe LCD8x2

Pentru sursa din articolul anterior am facut un indicator tensiune/curent cu Attiny85 pe un LCD 8x2 . Initial la teste am plecat cu un LCD 16x2 care a cedat si care oricum nu incapea unde voiam sa-l pun.
Sursa de inspiratie a fost blogul lui Nicu, (nu voi intra in detalii ca sint suficiente cele oferite de Nicu) unde am facut urmatoarele modificari care de fapt se pot observa si in cod:
Pe pinul 2 al lui Attiny85 am pus un divizor de tensiune cu  o rezistenta de 470Ohm la masa si 100k catre  tensiunea de masurat, pe pinul 3 am cules tensiunea de pe rezistenta de sunt din circuitul sursei. Partea de interfata cu LCD-ul a ramas identica, iar referinta am trecut-o pe intern. Pinul 1 reset a ramas legat la 5V printr-o rezistenta de 10K.
Alimentarea lui Attiny85 am luat-o de firul violet al sursei (+5V).
Se poate observa din imaginile de mai jos ca erorile de afisare sint relativ mici.
Citeva imagini de la teste:
 Montajul urmeaza sa fie strins pe un cablaj imprimat




 Aici este sursa din articolul anterior la care i-am adaptat un modul cuTL494 fixat pe o lamela de radiator

And ready for work
Si o varianta de cablaj imprimat

In teste:





sâmbătă, 20 ianuarie 2018

Modificare sursa ATX

Am testat modificarea unei surse ATX oarecare folosind un montaj adaptor cu TL494 (care se gaseste de cumparat la doar 2 lei). Cu acesta se poate modifica practic orice sursa ATX indiferent de circuitul de comanda (circuit de comanda care la mai toate modelele nu ofera reglaj curent de iesire, protectia la scurt fiind cu blocarea oscilatorului)
Am luat o sursa oarecare ce o aveam ca "defecta" (condensatori explodati) si am trecut la o inspectie preliminara. Astfel pe transformatorul ce da tensiunea de 5V firului violet, am mai descoperit o tensiune de +16V.
De pe sursa am eliminat condensatorii de filtraj, iar pe bara de 12V (yellow) am pus un 4700/35, rezistele de descarcare, si am scos circuitul de comanda (2002 in acest caz). am identificat apoi iesirile acestuia catre cei 2 tranzistori de comanda. In cazul de fata pinii 7 si 8 de pe placa sursei. Am eliminat si cei citiva tranzistori responsabili cu protectia lui B2002 (anterior cind i-am ignorat au scos fum la peste 15V tensiune de iesire)
Am realizat pe o placa de test schema de mai jos:
Dupa care capatul potentiometrului de 10K responsabil de reglajul tensiunii de iesire l-am legat la pinul 12 al lui TL494, si am alimentat circuitul cu 16V dintr-o sursa externa. Am reglat referinta de 1V , am reglat apoi "tensiunea de iesire" pina am obtinut oscilatii pe cele 2 iesiri, pinul 7 respectiv 10 al lui TL494, conform cu imaginile de mai jos:

Placa sursei initial era ca in imaginea:
Dupa ce am inceput s-o eliberez"
Asa ca am conectat la +16V pinul 12 de la TL494, iesirile catre tranzistori, masa si capatul potentiometrului de 10K la fostul +12V yellow). Initial am lucrat cu un bec de 220V serie cu alimentarea. In aceasta situatie sursa a pornit, am testat reglajul min/max al tensiunii de iesire, si i-am pus ca sarcina un bec auto. Avind becul inseriat cu alimentarea de 220V curentul debitat nu depasea 2,7A.
Am eliminat becul de protectie si am pus-o in sarcina testind reglajul curentului de iesire, si protectia la scurt. In urma acestor teste radiatorul cu diodele era rece, cel cu tranzistorii de comanda s-a incalzit accepabil in sensul ca era suportabila la degete. Testele le-am facut fara racire suplimentara ca nu am avut la indemina un 7812 pentru ventilator.
7812 isi va lua intrarea din cei 16V ce alimenteaza TL-ul.
Pentru situatia de fata am abuzat de google care a gasit o bucata de schema cu B2002 unde sint toate detaliile
Circuitul de comanda cu tranzistori ce se vede in partea stinga a schemei de mai sus este cumva universal (cu mici variatiuni) la toate sursele ATX. 
Tensiunea de +16V care in schema de mai sus este 12 poate avea diverse valori intre 7v si 27V. Functie de valoarea maxima ce rezulta la iesire se mai poate ajusta rezistenta din pinul 1 a lui TL494. In cazul de fata am ajuns la 220 Ohm, la o alta sursa ce avea 27V in loc de 16V rezistenta din pinul 1 a ajuns la 2,2K pentru 26V iesire .
Pe bara tensiunii de iesire am pus o rezistenta de 4k7/2W pentru descarcare care la 27V este foarte usor calda. In lipsa ei este dificil relajul exact al tensiunii de iesire dorita.
Tensiunea minima
 Circuitul adaptor fixat pe o lamela de la radiator. Ca senzor de curent am folosit o rezistenta de 0,02/2W care a incaput pe placa de test, iar amplasarea placii inttre cele 2 radiatoare ii va asigura suficienta racire, desi la circa 5A dupa vreo ora abia era calduta.
 Tensiunea maxima.

Pe viitor placa probabil va arata ca mai jos:

10-iun-2018
O alta placa modificata:
placa este fixata pe radiatorul cu diodele, iar suruburile le-am potrivit in locul celor 2 diode eleminate
 Pe spate am cautat sa-l las cit mai curat
 Tensiunea minima
 Tensiunea maxima fara modificarea transformatorului
 In sarcina cu un bec de far auto

 Pregatit de in cutie
 Aproape asamblat si gata de lucru, Ventilatorului i-am schimbat pozitia, deoarece carcasa este de la alta sursa care avea radiatoarele mai joase.

duminică, 7 ianuarie 2018

Modificare sursa ATX pentru incarcare acumulatori auto

Am modificat o sursa ATX ceva mai serioasa ce foloseste la comanda circuitul 2005B, cu scopul de a o transforma in incarcator auto. Google m-a ajutat sa gasesc data sheet-ul circuitului si de aici a fost relativ simplu.
Initial am masurat tensiunile de pe pinii 3, 4 si 5.
Am folosit o placuta de test pe care am lipit 2 potentiometri multitur la care capetele le-am legat intre masa si +5V de pe firul violet (aceasta tensiune este permanenta pe sursa), dupa care am reglat 3,3V si respectiv 4V.
Pe cablajul sursei am sectionat traseele de la pinii 3, 4, 5 si am legat +5V de la firul violet la pinul4, apoi 3,3V la pinul 3 si 4V la pinul 5, in felul acesta am pacalit sursa ca are toate tensiunile corespunzatoare.
Am scos condensatorul de 2200/16 de pe bara de 12V fir galben si l-am pus in locul celui de pe bara de 5V fir rosu, iar pe bara de 12V am pus un condensator de 2200/25V. In rest nu am modificat nimic.
Pinul 2 al lui 2005B este responsabil cu reglajul tensiunilor de iesire. Dupa ce am identificat rezistoarele de placa  corespunzatoare divizorului de pe pinul 2 am constatat ca suma rezistentelor este de cca 10K, asa ca am luat un potentiometru de 50K la care mijlocul l-am dus la pin 2 un capat la masa si un capat la firul rosu +5V, Am inceput sa testez sa vad intre ce limite se poate regla tensiunea de iesire, si a rezultat o variatie stabila intre 9 si 19V. Astfel pe capatul legat la 5V am inseriat un rezistor de 5,6K, iar pe capatul de la masa 2,2K. Rezistentele din divizorul original nu au fost scoate afara, potentiometrul venind suprapus peste acestea.
Protectia la scurtcircuit o face pinul 6,  caz in care la disparitia tensiunilor blocheaza oscilatiile de pe tranzistorii de putere.
Initial am testat incarcarea unei baterii auto cu un indicator tensiune/curent cu 7 segmente chinezesc, care a cedat foarte repede. Asa ca am facut indicatorul cu arduino si un oled I2C cu rezolutia de 128/32, caruia ulterior i-am adaugat si functia de deconectare automata .
In paralel cu contactul NO al releului am mai pus un push buton care apasat porneste sursa si se regleaza tensiunea de iesire/incarcare la 13,9V, la eliberarea butonului sursa intra pe standby., insa arduino ramine alimentat.
Acum se poate cupla bateria, arduino va detecta tensiunea acesteia, si daca este mai mica de 13,8V va cupla releul care de fapt pune la masa firul verde, si astfel poneste sursa. Cind bateria va fi incarcata tensiune la ajunge la 13,8V si va decupla releul, situatie in care arduino monitorizeaza bateria.
Teste am facut deocamdata cu un acumulator mai mic ca sa pot vedea repede cum se comporta.

Aici se poate vedea placuta cu semireglabilii ccu care am pacalit-o.
Asta este sursa ce am modificat-o
Tensiunea minima rezultata:
Tensiunea maxima:
Legaturile cu arduino:
Iar acum la lucru:


vineri, 22 decembrie 2017

Indicator tensiune/curent/regulator temperatura radiator cu arduino afisare pe TFT 1,8"

Necesitatea a venit de la existenta unei surse cu L200 cu reglaj tensiune/curent, ce nu avea nici un fel de indicator la care trebuia mereu sa folosesc mereu doua instrumente de masura. (mai ales cind voiam sa incarc sau sa verific acumulatori  atipici).
Astfel m-am orientat la ce am gasit prin sertar, si am folosit un arduino pro mini cu un TFT de 1,8" cu driver ST7735.
La partea de masurare m-am inspirat de la Nicu Florica, iar teoria este foarte pe larg explicata de el si nu mai revin asupra ei.
Ca traductor de curent am folosit o rezistenta SMD R050 preluata de pe un modul chinezesc decedat.
Rezistentele din divizor(68K si 1K) au fost masurate inainte de utilizare pentru a putea introduce valorile in cod.
Initial indicatia tensiunii era constant mai mica cu 0,2V si a curentului cu x2 mai mare. Probabil datorita tensiunii de referinta a lui arduino pro mini care nu are pin pentru Vref scos in exterior, acesta fiind o varianta cu un circuit integrat foarte mic si mi-a fost foarte dificil s-o masor corect. 
Acesta este motivul pentru care in cod apar liniile:

tft.println(tensiune+.2);
tft.println(current/2);

In plus am mai adaugat si un indicator de temperatura cu LM35 ca sa pornesc ventilatia numai cind este necesar.
Deocamdata l-am realizat pe o placa de test, urmind sa-i fac si un cablaj imprimat.
Partea de legaturi electrice este foarte simpla si se poate deduce foarte usor din cod.
Ce mi-a iesit se poate vedea mai jos:
Cablajul sursei impreuna cu transformatorul sint inghesuite intro carcasa de sursa PC. Pentru reglaj folosesc potentiometri multitur, ce asigura o ajustare foarte fina.
Transformatorul este de la UPS defect si are in secundar 2x8,5V/CUEm 2mm, si 1x17V CUEm0,7mm (aceasta din urma am folosit-o pentru alimentarea lui arduino si a ventilatorului). 12V sint scosi dintr-un LM317, care alimenteaza apoi un 7805. Nu este necesar radiator deoarece in situatia mea se mentin destul de reci, caldura abia perceptibila la degete.

 Led-ul de culoare rosie indica pornirea ventilatorului.
 O comparatie fata de un aparat de masura:

Pinout-ul lui arduino si a TFT-ului folosit:
similar cu:






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 ...