duminică, 4 martie 2018

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


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:


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