Se afișează postările cu eticheta OLED. Afișați toate postările
Se afișează postările cu eticheta OLED. Afișați toate postările

joi, 26 martie 2020

Analizor spectru audio

Zilele astea au sosit circuitele MSGEQ7 și am testat funcționarea ca analizor de spectru audio cu ajutorul unui arduino mini.
După ceva timp de documentare mi-a atras atenția materialul de aici:        https://jollifactory.blogspot.com/2017/01/arduino-based-mini-audio-spectrum.html?fbclid=IwAR2a4IEWAD9oyai2MAZMipdmvTj_VeXL5Iy0tV_0--9F_EbjXtc1LOKowWA
unde s-a folosit pentru afișare un OLED de 0,96". Am testat codul pe un OLED de 1,3" cu driver SH1106, și a ieșit ca mai jos:
Însa OLED-ul va avea o altă destinație așa că am adaptat codul pentru un display TFT de 130x130 cu driver SSD1238A și a ieșit ca mai jos:
Ulterior am mai găsit un alt display de rezervă  cu ST7565 ce a fost prezentat într-un articol anterior care e ceva mai deosebit si chiar mi se potriveste la cutia amplificatorului. Am adaptat codul pentru acesta și a iesit așa:
Toate codurile și lib-urile folosite sunt pe github.

sâmbătă, 19 octombrie 2019

Miliohmetru cu arduino

Fiind nevoit să verific și să sortez niște rezistențe sub 1 Ohm, am realizat un miliohmetru  bazat pe arduino ca afișare și LM317 ca generator de curent constant. Sursa de inspirație este aici: cu schema de mai jos:
Eu am alimentat cu 5V în loc de 9V .
Cea mai mare provocare a fost reglarea curentului fix la 100mA, pentru că nu am gasit disponibil un multitură de 50-100Ohm.
Pentru afișare am folosit informațiile din articolul anterior.
Reglajul curentului la 100mA:

Valoarea rezistenței este afișată în mOhm.
U2 este tensiunea de la intrarea lui LM317.

Codul este pe github.

sâmbătă, 28 septembrie 2019

Voltmetru dual cu AD7705 pe OLED I2C

Am testat funcționarea pe arduino nano a unui modul convertor analog digital  pe 16 biți cu AD7705 cu interfață SPI ca cel din poza de mai jos:


Modul de conectare la arduino se găsește aici, către finalul fișierului: https://github.com/kerrydwong/AD770X/blob/master/AD770X.h  :

pinMOSI = 11; //MOSI
MISO = 12; //MISO
SPIClock = 13; //SCK
CS = 10; //CS
RST=RST arduino

După ce am verificat (pe serial monitor) exemplul din lib, am conectat un OLED I2C 128x32, am pus V- (de la modulul CAN) la GND și am aplicat tensiune pe ambele V+ dintr-o sursă dublă cu reglaj independent, a ieșit ca mai jos:
 Aici se poate vedea valoarea sursei de semnal ce am aplicat-o pe cele două intrări V+:
Precizia si liniaritatea (pe o plajă de 0-1,5V) par să fie destul de bune, cel puțin comparativ cu aparatul de măsură folosit.
Codul testat este pe github.

Update 25-apr-2022

L-am adaptat pentru afișare tensiune și curent.
Tensiunea măsurată

Și curentul măsurat:




duminică, 30 decembrie 2018

Test indicator tensiune, curent, temperatura pe OLED folosind arduino

La sugestia lui George Dacin am testat un indicator pentru o sursa de laborator folosind un arduino cu afisare pe OLED I2C 128x64. Materialul de baza a constat in articolul lui Nicu Florica, la care am modificat afisarea pe OLED si am adaugat un pseudo termostat.
A iesit ca mai jos (clampmetrul din poza e folosit doar pentru fixare):
Rezultind o afisare patratoasa "patratoasa" am modificat codul initial introducind fonturi conform materialului prezentat de adafruit, iar dupa incarcarea codului a iesit ca mai jos: (prima poza e de la mine, cea de jos a alui George)


Asupra masurarii temperaturii parerile au fost diferite, George dorea sa foloseasca DS18B20 , iar eu doream o simpla dioda (metoda descrisa in detaliu de Nicu), tinind cont ca aceasta urma sa masoare temperatura unui radiator si actioneze un ventilator la depasirea unui anumit prag.
Ca sa nu fie discutii am realizat un test cu DS18B20 si un test cu dioda
Apoi a aparut un comentariu al lui Cristi Vasilache vis-a-vis de precizie, asa ca am luat o sursa de la un copiator defect ce scoate 35V/5A, si modul cu XL4016. Divizorul testat de mine e format dintr-o rezistenta de 100K si una de 470 Ohm, cu 0,1Ohm pentru curent. Valorile rezistentelor le-am masurat cu un AMPROBE 35XP-A, cel ce apare in poze, iar la rezistenta de 0,1Ohm am luat de buna valoare inscrisa pe ea. Referinta interna la mine arata 1,11V
Imagini de la teste sint mai jos:




Concluzia este (asa cum se poate vedea din imagini) ca precizia este cumva relativa, fiind afectata de rezolutia de 10 biti a lui Atmega328 si precizia masurarii rezistentelor din divizor si a tensiunii de referinta. 
Cind va finaliza si George cu testele de la el voi reveni cu detalii.

Update 22-feb-2019
Pe scheletul codului anterior am testat adaugarea unui modul convertor analog/digital cu interfata I2C ADS1115 .

In cod eu am ales sa afisez doar 5 zecimale.
In poza de mai jos, U masoara tensiunea de 3,3V iar I masoara tensiunea de 5V la un modul arduino nano alimentat din USB-ul macbook-ului, iar T este temperatura furnizata de un DS18B20.
Precizia este superioara celei oferite de 8 biti ai lui Atmega328.

Modulul de sursa cu LM2576 este de aici.




sâmbătă, 12 mai 2018

Radio cu TEA5767 comandat de ATTINY85 afisare pe OLED

Am testat un radio foarte simplu, cu TEA5767, comandat de ATTINY85 cu afisarea frecventei pe un OLED. Pentru cautarea posturilor am folosit o singura intrare cu 2 butoane.
Schema este urmatoarea:
Iar modulul cu TEA5767 este:

Deorece resursele lui ATTINY85 sint reduse am abuzat de google pentru a cauta ceva similar. Astfel am gasit aici un library minimal pentru TEA5767,  si aici pentru OLED.
Codul testat este pe github.
Initial am testat cu un OLED 128x64 apoi amgasit un 128x32.
Viteza de reactie este destul de buna, insa afisarea frecventei este putin intirziiata, refresh-ul se face la cca 2-3 secunde.
Imagini de la teste:
 In poza apar trei butoane pentru ca initial am vrut sa-i pun un buton pentru MUTE, insa codul actual ocupa 99%


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:



duminică, 10 decembrie 2017

VU-metru analogic pe arduino

La sugestia lui Nicu pornind de la un link timis pe facebook am testat un VU-metru analogic.
Varianta mono pe OLED
Aici am izolat resetul TFT-ului care era legat la A4 si i-am tras o sirma la resetul lui Arduino.
Semnalele analogice sint pe A4 si A5.

sâmbătă, 18 noiembrie 2017

Remote DHT11 pe 433MHz

S-a ivit necesitatea  transmiterii temperaturii si umiditatii la o distanta de cca 10m fara a avea posibilitatea de pozat cabluri si gaurit pereti.
In acest sens am testat 2 perechi de emitator receptor pe 433MHz ca cele de mai jos:

Pentru teste am abuzat de generozitatea lui Google si m-am oprit la proiectul de aici.
Nu am avut disponibil acel display asa ca am modificat codul pentru un OLED cu I2C.
Concluzia este ca prima pereche testata a dat rezultate bune pina la cca 15m cu antenele din imagine, iar a doua pereche pina la cca 10m printr-un perete de caramida . Antenele le-am facut dintr-un fir recuperat de la un cablu utp cu care am bobinat 15 spire pe un pix de 7mm  grosime.
Pozele cu testele pe birou, fara antene, sint mai jos:
Afisarea nu este foarte eleganta deoarece in final cind voi face si partea de reglare temperatura si umiditate, voi folosi alt display, aici am vrut doar sa ma imprietenesc cu modul de comunicare. Receptorul este pe un Arduino mini, iar transmiterul pe un Arduino nano



luni, 28 august 2017

Radio cu TEA5767, OLED, MUTE

Sursa de inspiratie este blogul unui neamt.

Aici m-a atras prezenta butonului de MUTE.
Pe blogul nemtului se gasesc suficiente informatii despre TEA5767, si modul de conectare la Arduino. Si aici am adaptat codul pentru afisare pe OLED (display-urile de nokia inca inca erau in avion).
Am folosit un OLED de 0.98" SPI, modul de conectare la controler este descris in cod.
Ce a iesit spre final se poate vedea mai jos

 Are un amplificator cu 2xTBA820, iar VU-metrul este cu AN6884 cu display LED tricolor recuperat de la sistem de parcare defect. Pe spate are si 2 semireglabili pentru "calibrarea" VU-metrului.

Partea proasta la OLED e ca are remanenta daca este aprins foarte multa vreme. In sensul ca informatiile statice vor ramine definitiv pe ecran. De exemplu asta de mai sus a stat foarte multa vreme pe 103,10 si cind s-a dorit schimbarea statiei abia se putea distinge valoarea frecventei.
"MHz", se evidentiaza destul de clar si dupa ce este scoasa alimentarea.
La urmatorul daca va mai fi va trebui sa-i fac ceva sa se stinga ecranul la citeva secunde dupa apasarea vreunui buton.

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