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

duminică, 28 martie 2021

PWM cu Attiny85 si encoder

 Am testat un generator PWM cu Attiny85 și encoder rotativ de ale cărui rezultate sunt mulțumit. Scopul final este de a obține tensiune variabilă între 0V si 5V maxim pentru reglajul sursei prezentată într-un articol anterior, unde acum am niște potentiometri multitură care fac necazuri. De fapt poate fi utlizat în orice schema de sursă care are feedback fix și face reglajul dintr-o tensiune de referință. 

Eu am folosit un Attiny85 cu bootloader de 8MHz programat cu arduino, însă la preference am adăugat linia de mai jos, iar rezultatul este ca în poză:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json



Materialul de inspirație este de pe http://www.technoblogy.com/ unde în loc de LED am pus un dublu integrator ca în schema de mai jos:


Pornirea se face din zero ceea ce nu mă deranjează, iar la apăsarea butonului revine la zero.

Montajul de test pe breadboard:

Aici cu galben sunt impulsurile din PB0 iar cu albastru ieșirea din integrator.



Codul se găsește și pe pagina de inspirație și este urcat și pe github.
Urmează să desenez un cablaj care să se potrivească și în cutia sursei.

Pe placa am mai pus un stabilizator cu MC34063 care alimenteaza separat cele doua circuite Attiny85.
Si o imagine de ansamblu cu reglajul sursei cu TL494 pusa pe sarcina electronica.





 

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.

marți, 25 decembrie 2018

DDS cu Attiny85

Zilele trecute, cautind un generator sinusoidal la 50Hz cit mai simplu si stabil, am dat de articolul de aici cu update aici. Parea sa fie ceea ce cautam si i-am facut un test rapid. Omul prezinta un generator de functii in gama 1Hz- 5KHz cu reglajul frecventei din encoder. Formele de unda se aleg printr-o apasare scurta.
Schema preluata mai jos este foarte simpla:
Atentie la pinii lui Attiny85:

La iesire eu am folosit rezistente de 3K3 in locul celor de 4K7, si condensatori de 1nF in locul celor de 4,7nF
Terminalele encoderul traduse pentru encoderul meu arata astfel:

x = GND
Y = SW
C = +5V
A = DT
B = CLK (inversarea lui A cu B afecteaza doar sensul)

Codul pentru varianta finala in care exista si semnalul sinusoidal este aici. Eu nu am facut decit sa dau copy/paste si apoi sa incarc codul in ATTINY85. Initial am pus pe pe Attiny85 bootloaderul cu clock intern 8MHz.

A iesit ca mai jos:
Frecventa si forma de unda implicita se seteaza ca mai jos:
void setup() {
  Wire.begin();
  // Is it a power-on reset?
  if (MCUSR & 1) {
    Wave = 0; Freq = 100;     // Start with 100Hz Sine

Eu am ales sa porneasca cu 50Hz pentru ca voi renunta la encoder si oled. Urmeaza sa fie adaptat intr-un invertor sinusoidal caruia i-a explodat circuitul original. Partea de defazare este pe placa invertorului si este functionala, fiind anterior testata cu semnal de pe un generatorul de mai jos:

Update 28-IUL-2019
Semnale in antifaza obtinute cu ajutorul a trei inversoare (3/4 MMC4011)



marți, 3 octombrie 2017

Ceas cu afisare pe Nokia si reglaj

Am revenit la un proiect mai vechi  ce mi-a placut la acea vreme, inspirat de aici, si i-am adaptat reglaj manual pentru data si ora dupa modelul lui Nicu, folosind un encoder pentru a fi mai usor de bagat intr-o cutie. Cutia va fi de la un ceas cu lcd defect similar cu cel de aici.
Arata ca in imaginile de mai jos:
Modul de conectare se poate deduce din cod .
 La o apasare lunga pe butonul encoderului se trece in modul reglare, apoi rotind dreapta stinga se ajusteaza valorile. Ca sa iesiti de modul reglare trebuie parcursi toti pasii dupa care revine in display-ul principal.


Codul din faza aceasta este pe github. I-am mai adugat niste zerouri la minutele si secundele <10 pentru ca era cuidata afisarea.

Deoarece nu era vizibil pe timp de noapte i-am adaugat un fotorezistor pe A2 legat la Vcc, A2 este legat la masa printr-un rezistor de 470ohm. pe pinul D5 (PWM)  am conectat led-ul lui Nokia(pinul BL), si l-am facut ca la intuneric sa aprinda un pic acest led cit sa faca vizibil display-ul.
Intuneric simulat cu capacul de la stilou:


In plus am mai adaugat o functie astfel ca la o apasare scurta pe encoder sa afiseze timp de 2 secunde doar temperatura si umiditatea, cu caractere mari pe ecran iluminat. La apasare lunga va intra in modul reglaj.

Codul este tot pe github.

luni, 11 septembrie 2017

Ceas cu arduino, DS1307, TFT 2,2" ILI9225, DHT11, encoder

Am reusit sa gasesc informatille despre un proiect mai vechi :

Este adaptat dupa informatiile lui Nicu de unde am preluat ideea de reglaj cu ajutorul unui encoder. Asta deoarece mi-a fost lene sa adaptez cutia pentru butoane de reglaj, Dupa cum se vede aveam cutia de la o chestie "similara" decedata, si am vrut sa-i scot encoderul in spate.In interior am "inghesuit" toate modulele. Am folosit un Arduino ProMini.
Tot pe spate i-am aplicat o baterie de telefon mobil cu un incarcator chinezesc, toate alimentate dintr-un alimentator ramas tot de la vreun telefon mobil.

Modul de conectare se poate deduce din cod unde este comentat. Codul si bibliotecile folosite sint pe github
Pentru display am folosit UTFT-ul incarcat pe github fiind singura arhiva ce avea suport pentru ILI9225. Daca folositi alt tip de display posibil sa mearga cu o versiune curenta de UTFT
Functionarea encoderul-ului se poate vedea tot din studiul codului, si e relativ simpla, la o apasare lunga intra in modul reglaj, rotire dreapta/stinga incrementeaza/decrementeaza , apoi la fiecare apasare scurta trece la pasul urmator, data, zi, an, ora, .... la finalul ciclului revine in ecranul de afisare curenta.

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