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


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.

Stabilizator reglabil 14V/1A de la 50V-300V cu IR2153

 Cu mult timp în urma am testat un stabilizator în comutație, reglabil cu IR2153 conform notei de aplicație din datasheet. Am reluat din nou...