Se afișează postările cu eticheta TFT 1.44". Afișați toate postările
Se afișează postările cu eticheta TFT 1.44". Afișați toate postările

duminică, 13 ianuarie 2019

Radio cu TEA5767, afisare pe TFT 1,44", reglaj cu encoder

Am testat functionarea unui radio FM cu modul TEA5767 (proaspat sosite) cu un arduino pro-mini, cu afisare pe TFT 1,44" 128x128 (la fel proaspete) si reglaj cu encoder (urmeaza a fi casetat, iar utilizarea acestuia usureaza executia).
Am pornit de la un proiect testat de un rus, gasit pe internet unde link-ul original este aici, iar traducerea aici. Proiectulul lui este mai complex dar mie mi-a fost suficienta varianta simpla.
Fata de schema omului am facut urmatoarele modificari:
la encoder PIN_SW   8   l-am pus pe 7, iar TFT-ul este legat astfel:

CS -10
DC (A0)  - 9
RST - 8
SCK - 13
SDA - 11
LED - Vcc printr-o rezistenta de 100 Ohm
la encoder CLK-3, DT-2, SW-7

TFT-ul utilizat avind tensiunea de alimentare de 3,3V, am utilizat un arduino pro mini pe care l-am alimentat la 3,3V.
TFT-ul are la baza circuitul ILI9163, iar in lib-ul folosit am editat fisierul TFT_ILI9163C_settings.h cu rezolutia acestuia respectiv 128x128. Detalii sint si intr-un articol mai vechi, de unde am preluat afisarea nume post, pentru ca TEA5767 nu are functia de RDS.  Afisarea grafica a nivelului de semnal este adaptata dupa articolul lui Nicu Florica.
Dupa aceste modificari a iesit ca mai jos:
Pentru afisarea frecventei am utilizat un font pentru a face mai eleganta afisarea numerelor.


In mod TUNE (SEARCH)
Imaginea de ansamblu testata:

Functionarea este conform filmului postat de rus, adica la apasarea prelungita butonului encoder, se intra in mod tune, iar prin rotirea encoderului se fixeaza frecventa dupa care apasarea butonului realizeaza memorarea frecventei. Din cod sint programate 16 zone de memorie pentru 16 posturi. Pentru a memora un post, mai intii rotesc encoderul pina apare numarul memoriei dorite. Dupa ce s-au memorat posturile, este suficienta simpla rotire a encoderului, si frecventele vor fi citite din memorie.
Alocarea de nume la o anumita frecventa corespunde orasului Iasi. Se poate modifica editind liniile de forma:

if (frequency==963) { display.setCursor(25,85);
   display.setTextSize(1);
   display.setTextColor(YELLOW,BLACK);display.print("Radio Iasi  ");}

spre finalul codului in :

void printpost(float frequency)

Pe github am ridicat si lib-ul modificat pentru ILI9163.
Cind voi mai gasi o ferestra vreau sa-i fac si un reglaj de volum cu TDA7496.
Voi reveni cu detalii dupa casetare.

miercuri, 20 septembrie 2017

Sursa LM317 cu controlul digital al tensiunii

Dupa testele din articolele anterioare  am finalizat primul pas (reglajul digital al tensiunii de iesire) conform schemei de mai jos ( teoretic functioneaza pe orice varianta de sursa de laborator cu LM317): ceva similar cu modulul chinezesc

Pentru a se misca mai repede am mai adaugat 2 butoane pentru incrementare cu pas de 10, era foarte lung timpul de parcurgere de la minim la maxim. Pe display am mai afisat in partea de jos numarul de pasi pentru a regla reactia negativa de pe primul AO (detalii experimentate sint in link). Din semireglabilul de 10K de pe pinul ADJ al lui LM317 reglam tensiunea minima, in cazul meu am reusit s-o duc la 1,82V fara a suprasolicita tranzistorul de comanda  caruia nu i-am mai pus protectie. (Am incins 2 bucati si am topit 2 semiglabili multitur de 10K).
Tensiunea de -5V am facut-o conform schemei:
Asa cum am scris in articolul anterior rolul celui de-al doile AO este descris de Nicu Florica la el pe blog.
Im plus am adaugat 3 regulatoare: 7824 pentru AO, 7812 pentru ventilator, si 7805 pentru Arduino.
Transformatorul folosit este destul de generos si nu simte consumul suplimentar la  iesirea de 18Vca.
Eu am folosit un AO rusesc dublu K157YD2 care era disponibil in sertar, dar se poate folosi orice AO.
Codul este pe github.
Ca traductor de temperatura am folosit tot LM35.
Imagini din timpul testelor finale mai jos:
Aici am reglat reactia negativa
Radiatorul tranzistorului regulator este temporar ca sa nu se incinga accidental  la reglajul tensiunii minime.


 Aici are si consumator un bec auto de frina. Din cele 5 butoane (recuperate e la un copiator) sint folosite momentan doar 4. primele 2 + - din 10 in 10 pasi si urmatoarele + - cu pas ce 1. (Avem 8biti iar plaja de reglaj este de la 0 la 256, cu pas ce 60mV)
Tensiune minima. 
Pe radiatorul de AMD am lipit puntea redresoare (recuperata de la o sursa PC), cele trei stabilizatoare, si LM-ul 317. Aici am facut montajul in aer pentru erau prea multe fire de tras la placuta. In acest moment ventilatorul nu este alimentat pentru ca nu a fost nevoie desi aveam un consum de cca 12W pe becul de sarcina.
Diferenta de afisaj de TFT e din cauza tensiunii de 5V a lui Arduino, in cod este setata valoarea ce mi-o furniza  USB-ul laptopului.
 Tensiune maxima

duminică, 17 septembrie 2017

Test sursa 0-20V 3A comandata cu arduino

Am testat o sursa de tensiune comandata de Aduino si afisare pe TFT 1,44"
Schema de pina acum este:

Initial am testat varianta pe 16 biti ce oferea o rezolutie de 0,000076V/pas, iar la iesirea din AO pentru o amplificare de 3 rezulta 0,00023V/pas.
Din butoanele de pe D4 si D5 se regleaza tensiunea de iesire pas cu pas. La pas de 1 dureaza exagerat de mult sa parcurgi cei 65535 pasi.
Apoi am testat varianta clasica pe 8 biti adica 255 pasi. Aceasta ofera o rezolutie de 20mV/pas iar la iesirea di AO cu amplificare de 3 rezulta 60mV/pas. Aici s-a scurtat considerabil timpul de parcurgere pas cu pas de la 0 la 255.
Spre  final am ramas la aceasta veriune pe 8 biti care este un reglaj usor, iar precizia de 60mV/pas mi s-a parut deocamdata acceptabila.

Eu am folosit un Arduino micro alimentat la 5V, si un BA741 alimentat la +24V si -5V ( tensiune maxima de 30V pentru AO). Din semireglabilul de 4k7 se regleaza reactia.( la pasul 255 vom avea 5V pe intrarea cu + a AO, la iesire trebuie sa avem 15V. La pasul 127 com avea 2,5V deci iesirea trebuie sa fie 7,5V.
La teste  am crescut reactia negativa astfel incit la pasul 255 sa am la iesire 20V, pentru asta mi-au trebuit 28V pe colectorul tranzistorului regulator. Pasii se pot monitoriza cu serial monitorul lui Arduino IDE.
Valorile pasilor sint memorate imediat ce se efectueaza un reglaj din butoanele + sau -..
Ca senzor de tensiune/curent am folosit un modul chinezesc cu MAX471, care are o tensiune maxima de 25V si curent de 3A, asa ca rezistenta de limitare am ales-o la 0,33Ohm (asta am gasit intr-o cutie) ceea ce inseamna un curent de maxim 2A.

Se poate masura si adaptind varianta lui Nicu Florica  descrisa la el pe blog.

Urmeaza sa inlocuiesc butoanele cu un encoder, si sa-i fac un preset la tensiune si curent. In aceasta faza daca se doreste reglarea curentului maxim se poate pune in paralel cu rezistenta de 0,33Ohm cu potentiometru de 500Ohm conform schemei suplimentare din coltul din dreapta sus.

Codul de pina acum este pe github.
 La cit am apucat sa testez s-a comportat super bine. La teste am folosit 4 surse de tensiune 28V/5A,24V/1A, -5V/1A, 5V/1A. Spre final pentru AO este nesesara o sursa bine stabilizata care sa nu fie influentata de consumul total. La scurt pe iesire sau limitare la 2A cu 12V reglati, pe bara  de 28V curentul este de 3,7A.
In faza de teste arata cam asa:



luni, 28 august 2017

Radio cu TEA5767, TFT 1,44", afisare nume post

Experimentul are ca sursa de inspiratie materialul lui Nicu Florica.
Nu aveam display de Nokia si m-am gindit sa adaptez codul pentru un TFT 1,44 cu ILI9163 similar cu cel din imagine.
Am pastrat schema de baza si am inlocuit display-ul de nokia cu TFT-ul de 1,44"
Modul de conectare este: (reiese si din cod)
CS               -D10
DC (A0)     - D8
RST            - D9
SCK            - D13
SDA            - D11 

LED, VCC   -5V
Button +        D7
Button -        D6
SDA radio     A4
SCL radio      A5

TEA5767 nu are capabilitati incluse pentru RDS, asa ca am ca am facut un artficiu de tipul:

if (current_freq==103.1) { display.setCursor(5,90);
   display.setTextSize(1);
   display.setTextColor(YELLOW,BLACK);display.print("Cultural   ");} 

Mai exact am scanat tot ce se putea receptiona aici, si am identificat dupa frecventa numele postului, si am adaugat if-urile ca mai sus. In cazul altor statii receptionate  "necunoscute" nu afiseaza nimic.
Finalizarea este cu arduino micro la 5V. Ulterior am micsorat fontul la afisarea frecventei ca 99.99MHz sa fie pe acelasi rind

Aici mai are atasat un mic amplificator cacu urma sa fie adaptat intr-o cutie

 Teste cu difuzoare recuperate dintr-un notebook

duminică, 27 august 2017

Radio cu RDA5807, TFT 1,44"

Este o adaptare dupa testele lui Nicu
La vremea cind am facut acest experiment nu aveam la indemina nici un display de Nokia. Imi placuse ideea de a memora pozitia volumului si ultimul post de radio, si m-am hotarit sa-l adaptez pe un alt tip de display.
Aveam  display-uri TFT color de 1,44" rosii si negre. La teste nu am gasit nici o diferenta intre ele, functionind foarte bine si unul si celalalt (posibil sa fie si nu le-am descoperit eu).
Problema era ca biblioteca folosita imi scotea imaginea de pe display, In final am gasit ce modificari trebuie facute pentru a functiona corect si pe acest display de 1,44". Pe 1,8" cu acelasi controler ILI9163 functioneaza ok. Arhiva cu biblioteca modicata este aici. Nu mai gasesc in acest moment link-ul unde am citit despre modificare.

Proiectul initial pare sa fie al unui spaniol, preluat de un rus, apoi adaptata memorarea de catre Nicu Florica . Dupa ceva  studiu codul mi-a iesit ca aici.
RDS-ul initial nu am reusit sa-l afisez pe TFT.
Eu am adaugat afisarea RDS-ului pe care am adaptat-o dupa un exemplu de aici. La teste am renuntat la afisarea orei care se pare ca la noi nu este setata corect. De fapt nu am gasit nici un post de radio care sa aiba ora actualizata.

Arduino nano este alimentat la 3,3V printr-un modul step-down, iar sub display are un modul amplificator cu PAM8403 care s-a dovedit destul de puternic la 3,3V. Potentiometrul l-am pus pentru ca la volum zero nu face mute. In poza este alimentat de la incarcatorul de telefon.
La teste s-a dovedit suficient de stabil, desi ca antena am folosit doar un fir circa jumatate de metru.

Schema este similara cu cea folosita de cei trei, iar conectarea display-ului la arduino este comentata la inceputul codului.
//CS - D10
//DC (A0)- D8
//RST -D9
//SCK -13
//SDA -11 
//LED, VCC -3,3V
//butoane A0
//sda radioA4
//scl radio A5

 Codul este destul de stufos si a fost greoaie fixarea informatiilor, motiv pentru care a iesit foarte colorat pentru a putea urmari usor modificarile facute.

Varianta de test arata ca mai jos:



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