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

duminică, 4 decembrie 2022

Un alt radio cu TEA5767

 Inspirat de un clip video ce l-am vazut zilele astea, am "portat" codul omului pe un arduino nano și un TFT de 1,7" cu ST7735 ca cel din poza de mai jos.


Radioul de inspirație arată așa:


Iar eu l-am aranjat ca mai jos:




Codul modificat este pe github, de unde se poate deduce și schema de conexiuni.

După tutorialul de aici i-am aplicat și un font mai elegant:


Codul tot pe github.


sâmbătă, 9 noiembrie 2019

Radio cu SI4703 pe TFT 1,44" ST7735

Zilele acestea a sosit un modul radio FM cu SI4703  ce este cumva similar la specificații cu RDA5807 ( este pregatit pentru RDS si RBDS) numai că se conectează diferit cu Arduino.  La fel ca RDA-ul are și acesta posibilitatea de reglaj a volumului. Arată ca în poza de mai jos:
Funcționează și acesta ca și TFT-ul tot la 3,3V însă intrările suportă nivel TTL, eu am testat  vreo două săptamâni pe un arduino nano, unde SI-ul și TFT-ul sunt alimentate la 3,3V iar intrările sunt legate direct la Arduino. Conexiunile sunt comentate în cod.
Modulul are antena conectată la firul de masă al jack-ului de căști, iar în link este dată schema placuței, și  modificarea pentru o eventuală antenă exterioară.
Pentru funcționarea cu arduino, am abuzat din nou de google, și m-am oprit pe un material al lui Matthias Hertel  care a studiat în amanunt aceste circuite având github lib-urile testate.
Dupa ce am verificat testele, am luat exemplul cu LCD și butoane și l-am adaptat pentru un TFT de 1,44" 128/128 cu ST7735.
În general s-a comportat foarte bine, ținând cont că zona de test nu este favorabilă recepției radio.
Teoretic codul ar fi funcțional și pentru RDA5807 și TEA5767 (acesta nu are RDS și volum - va trebui găsit atceva pentru a ocupa spațiul de pe TFT). Deocamdată nu am pentru un test rapid. Modificarea ar fi doar de aici:

// RDA5807M radio;    ///< Create an instance of a RDA5807 chip radio
          SI4703   radio;    ///< Create an instance of a SI4703 chip radio.
//SI4705   radio;    ///< Create an instance of a SI4705 chip radio.
// TEA5767  radio;    ///< Create an instance of a TEA5767 chip radio.

iar aici: 
  #include <SI4703.h>
trebuie înlocuit corepunzător.

Varianta testată a  ieșit ca mai jos:
 Deocamdată lipsesc butoanele, pentru test am simulat cu un conductor legat la masa. (Seek up/down, volum up/down, și un buton care apăsat aduce forțat un anume post radio ce este definit în cod)
 Pentru că mai aveam loc în arduino, am adaugat și un DHT11



Pe ondrive am pus un mic filmuleț cu funcționarea acestuia.

vineri, 27 septembrie 2019

Radio with TEA5767 on ATTINY85 with 7 segments HT16K33

Pentru un viitor proiect  am testat un radio foarte simplu cu TEA5767 ce m-a inspirat de aici: http://forklg.ru/viewtopic.php?f=98&t=1173
Testat pe arduino uno nu am reușit (pe display-urile ce le aveam disponibile) să-l fac să aprindă virgula decât în situația când frecvența afițată era mai mare de 100. Având o rezervă de module cu HT16K33 (drive LED cu interfață I2C) am înlocuit afișorul  cu TM1637, cu acesta pe I2C. Astfel a început să funcționeze normal. În plus i-am pus limite la frecvența minimă și maximă.  Unul din butoane incrementeză frecvența pozitiv, celălalt negativ.

if(f_ini<87.5) f_ini=87.5;
if(f_ini>108) f_ini=108;

Văzând gradul mic de ocupare a codului  și numărul mic de legături, am portat codul pentru ATTINY85.
Mai jos este poza cu modulul folosit.

Acesta din urmă are logica intrărilor pe invers, asa ca am legat rezistentele la plus pentru a nu mai face modificari in cod .
Am pus pe onedrive și un filmuleț scurt: https://1drv.ms/v/s!Ag3156arz2JqlTUW6c5FQ5a7g244?e=4wTOje

Încă mai există loc pentru a implementa și memorarea ultimului post, însă deocamdată nu mă interesează.

miercuri, 30 ianuarie 2019

Radio cu TEA5767 cu afisare pe TFT 1,44" si reglaj de volum

Am pornit de la un proiect mai vechi care a fost adaptat dupa informatiile gasite pe blogul unui neamt, la care am adaptat din nou afisarea pentru un TFT de 1,44", in plus am adaugat inca doua butoane care ajusteaza volumul (la iesirea D3 se obtin impulsuri cu factor de umplere variabil). Teoria este descrisa de Nicu Florica pe blogul lui. Pentru amplificare am folosit un TDA7496L care are un pin pentru  reglajul volumului  functie de tensiune. In plus am mai introdus o dioda la A1 care masoara si afiseaza si temperatura. A iesit ca mai jos:


Iesirea D3 este legat la rezistenta de 300K din pinul 6 al lui TDA7496L printr-un integrator compus dintr-un rezistor serie de 1K cu 2 condensatoare la GND unul de 4,7micro in paralel cu 100nF.
Schema se poate deduce foarte usor din codul postat pe github unde am lasat comentarii.
Impulsurile din pinul 3 care sint responsabile cu reglajul volumului se pot vedea mai jos:
Volum ridicat
 Volum scazut

O tentativa de realizare finala  (care nu-mi apartine, eu doar am scris codul in Atmega328) se poate vedea mai jos:

Sub display este un Atmega328, iar modulul cu TEA5767 este pe fata cu circuite. Cablajul urmeaza a fi refacut pentru s-a omis pozitionarea diodei sensor de temperatura (acum este pusa cu 2 sirme in aer) si s-au gresit gaurile pentru butoane (acestea fiind atipice cu tija foarte lunga). Cele din poza sint temporare pentru teste.


Aici e partea de alimentare cu 3,3V realizata cu MC34063 (pag.7), si amplificatorul cu TDA7496L (pag.4)


 Cele 2 placi deocamdata sint fixate spate in spate cu "pseudo" distantieri.



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.

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

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

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