Se afișează postările cu eticheta ST7735. Afișați toate postările
Se afișează postările cu eticheta ST7735. 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.


marți, 28 ianuarie 2020

DDS cu AD9833 si Arduno mini pe TFT 0.98" cu ST7735

Zilele trecute mi-a sosit un modul cu AD9833. La sugestia lui Nicu Florică l-am testat cu succes după modelul de aici, și m-am hotărât să-l finalizez într-o casetă, pentru a fi ușor de utilizat.
Modulul arată ca mai jos:

Deoarece nu aveam display-ul folosit de cel de la care m-am inspirat, am făcut câteva teste cu ce aveam în sertar: Codurile testate sunt pe github.
TFT 1,44" ST7735
TFT 1,7"  ST7735
Oled 0.98" I2C
Între timp a sosit și un TFT de 0,99" mult mai drăguț decât OLED-ul, pe care l-am și folosit spre final.

Formele de undă direct pe ieșirea modulului arată astfel:



Ca să-l pot finaliza aveam nevoie de un circuit de ieșire pe care l-am preluat de aici cu schema de mai jos:
În locul lui LM318, am folosit  un LM675 alimentat la +/- 12V stabilizat cu  două LM7x12 iar pe ieșire am înseriat preventiv un rezistor de 100OHm. Partea de 3,3V  pentru Arduino, TFT și AD9833 am făcut-o cu un AMS1117-3,3 înseriat cu 220OHm/2W. Consumul total nu depășește 50mA pe bara de plus și 10mA pe minus.
Deși am testat cu un arduino nano, am finalizat cu un arduino mini alimentat la 3,3V ca să nu mai trebuiască un MMC4050 ca adaptor de nivel. Varianta cu rezistențele de 1KOhm serie cu pinii TFT-ului la mine nu a dat rezultate pe display-urile testate.

Cablajul a suferit destule variante până am reușit să-l conving să intre în caseta mea. Radiatoarele sunt montate preventiv. Singurul element călduț este AO-ul la frecvențe de peste 50KHz. Transformatorul  are 2x12V și este recuperat dintr-un utilaj casat. Ieșirea am făcut-o printr-o mufa RCA deoarece va fi folosit preponderent pe parte de audio.




Ca să nu pun TFT-ul pe capac am folosit niște potențiometri chinezesti minuscului, iar TFT-ul a încăput la limită pe partea din față.
Deși poza nu a ieșit foarte clară  din cauza obiectivului și a luminii, afișarea pe el este foarte bună. Din potențiometri se reglează offset-ul și nivelul de ieșire. Pentru encodere nu am găsit deocamdată butoane potrivite datorită geometriei atipice a axului.
Oscilogramele de la ieșirea AO-ului:




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, 22 decembrie 2017

Indicator tensiune/curent/regulator temperatura radiator cu arduino afisare pe TFT 1,8"

Necesitatea a venit de la existenta unei surse cu L200 cu reglaj tensiune/curent, ce nu avea nici un fel de indicator la care trebuia mereu sa folosesc mereu doua instrumente de masura. (mai ales cind voiam sa incarc sau sa verific acumulatori  atipici).
Astfel m-am orientat la ce am gasit prin sertar, si am folosit un arduino pro mini cu un TFT de 1,8" cu driver ST7735.
La partea de masurare m-am inspirat de la Nicu Florica, iar teoria este foarte pe larg explicata de el si nu mai revin asupra ei.
Ca traductor de curent am folosit o rezistenta SMD R050 preluata de pe un modul chinezesc decedat.
Rezistentele din divizor(68K si 1K) au fost masurate inainte de utilizare pentru a putea introduce valorile in cod.
Initial indicatia tensiunii era constant mai mica cu 0,2V si a curentului cu x2 mai mare. Probabil datorita tensiunii de referinta a lui arduino pro mini care nu are pin pentru Vref scos in exterior, acesta fiind o varianta cu un circuit integrat foarte mic si mi-a fost foarte dificil s-o masor corect. 
Acesta este motivul pentru care in cod apar liniile:

tft.println(tensiune+.2);
tft.println(current/2);

In plus am mai adaugat si un indicator de temperatura cu LM35 ca sa pornesc ventilatia numai cind este necesar.
Deocamdata l-am realizat pe o placa de test, urmind sa-i fac si un cablaj imprimat.
Partea de legaturi electrice este foarte simpla si se poate deduce foarte usor din cod.
Ce mi-a iesit se poate vedea mai jos:
Cablajul sursei impreuna cu transformatorul sint inghesuite intro carcasa de sursa PC. Pentru reglaj folosesc potentiometri multitur, ce asigura o ajustare foarte fina.
Transformatorul este de la UPS defect si are in secundar 2x8,5V/CUEm 2mm, si 1x17V CUEm0,7mm (aceasta din urma am folosit-o pentru alimentarea lui arduino si a ventilatorului). 12V sint scosi dintr-un LM317, care alimenteaza apoi un 7805. Nu este necesar radiator deoarece in situatia mea se mentin destul de reci, caldura abia perceptibila la degete.

 Led-ul de culoare rosie indica pornirea ventilatorului.
 O comparatie fata de un aparat de masura:

Pinout-ul lui arduino si a TFT-ului folosit:
similar cu:






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