marți, 9 octombrie 2018

Termometru cu DS18B20 cu ATTINY85-digispark pe 7segmente 2 digiti cu74HC595 programat pe MACOS

Am reluat proiectul anterior de data asta cu scopul de a testa programarea unui modul digispark cu Attiny85 pe MACOS (pe windows10  nu a mai vrut sa munceasca driverul micronucleus).
Am folosit acelasi display cu 7segmente si 2 digiti cu 74HC595, iar ca senzor de temperatura am folosit un DS18B20 (tocmai au sosit mai multe).
Testul pe breadboard arata ca mai jos:


Modulul cu Attiny85 este ca in figura:
Din codul postat pe github se deduce foarte usor schema, P0, P1, P2 se duc la display, iar la PB3 senzorul cu o rezistenta de 4k7 la +5V.

Pe MACOS instalarea si programarea acestui modul a fost foarte simpla, trebuie doar scris in arduino IDE la Preferences:
http://digistump.com/package_digistump_index.json

 Apoi din Board Manager se instaleaza pachetul cu drivere (cel corespunzator cursorului de la mouse).


Astfel am reusit sa vad modulul meu:


Si programatorul micronucleus:

Diferenta fata de programarea modulelor arduino este ca modulul digispark nu trebuie sa fie conectat pe USB in momentul cind se da UPLOAD, acesta se va conecta in momentul cind apare mesajul generat de arduino IDE, in partea de jos unde este scris cu portocaliu. De asemenea apare mesaj cind se termina incarcarea. In acest moment se deconecteaza de la USB si se pune pe breadboard.

marți, 25 septembrie 2018

Termometru cu LM335 cu ATTINY85 pe 7segmente 2 digiti cu74HC595

A  aparut necesitatea unui teremometru foarte simplu cu afisare pe 7 segmente cu 2 digiti. Dupa un pic de documentare m-am oprit asupra display-ului de mai jos care are inaltimea de 1,8mm, este compact, si comandat de catre 2x74HC595.

Abuzind de google am gasit un tutorial pentru arduino. Dupa ce m-am imprietenit cu modul de lucru, i-am atasat un LM335, acesta avind si posibilitatea de corectie ( de fapt era singurul tip disponibil acum).
Dupa ce l-am testat pe arduino, am considerat ca e prea puternic pentru un lucru simplu, si am decis sa folosesc un ATTINY85. Codul rezultat este pe github.
O poza din faza de test mai jos:

La partea de masurare cu LM335 m-am inspirat din articolul lui Nicu Florica.
Pentru partea de corectie am folosit schema de mai jos: ( eu folosit un semireglabil de 100K in locul celui de 10K)
Dispunerea pinilor la ATTINY85 se pot observa din figura urmatoare:

Schema de conexiuni (se poate deduce foarte usor si din cod) este:





duminică, 16 septembrie 2018

PWM cu 555 pentru LED-uri de 3W sau motoare

Ca sa scap de racirea lui LM317 , am facut un circuit PWM pentru alimentarea LED-urilor. Un circuit identic folosesc si pentru motorasul  de gaurit cablaje.

Schema este mai jos:
D3 este necesara doar pentru alimentarea unui motoras.
Trecventa este: f(HZ)=2,7/C2 (microF).
Am testat doua variante cu Q1 bipolar NPN (D882) si cu MOS (IRF640), amindoua alimentind niste LED-uri albe de 3W la 3,3V.
In varianta cu NPN a fost necesar un mic radiator pentru racire, in varianta cu MOS nu a mai fost necesar acesta fiind absolut rece.
LED-urile le-am lipit cu adeziv termic pe niste radiatoare recuperate de pe placi PC defecte.

Mai jos citeva poze;

In spate este versiunea cu MOS alimentata la 12V cu 4 LED-uri serie, iar in fata varianata cu NPN cu 3 LED-uri serie alimentate la 6V (atit scotea alimentatorul). Adezivul este cel din imagine luat de la chinezi.
Radiatoare LED-urilor din imagine sint reci, In varianta cu LM317 erau caldute, iar LM-ul aproape fierbinte.
Cablajul in varianta pt. transfer toner la scara 1:1 este aici;
Cablajele le-am calcat pe niste resturi cam inguste motiv pentru care am adaugat si o punte cu sirma pe fata cu piese. In plus am mai adaugat citeva gauri suplimentare pentru a nu fi nevoit sa caut o anumita dimensiune la rezistente, semireglabil, diode si tranzistor, acestea fiind recuperate de pe diverse. 
 Factor de umplere minim
 Factor de umplere maxim


marți, 24 iulie 2018

Ceas cu reglaj pe lcd Nokia

Inspirat de articolul lui Nicu Florica am adaptat codul lui pentru un display Nokia. Am renuntat la ceasul analogic pentru ca rezolutia acestuia este doar de 64x64, si am adaugat un DHT11 pentru afisarea temperaturii si umiditatii. In plus am adaugat si o fotorezistenta care controleaza lumina de fundal pentru a-l face vizibil si pe timp de noapte. Cod pe github.
Si in aceasta situatie am cautat sa-l fac cit mai vizibil. Celelalte functionalitati sint cele descrise de Nicu Florica pe blog, partea de reglaj fiind identica.


I-am facut si o alimentare de back-up cu un acumulator de tip 18650
Schema de legaturi se poate deduce foarte usor din codul publicat pe github.
Display-ul Nokia e conectat conform:
//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8);// SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8
In cazul meu: U8GLIB_PCD8544 u8g(8, 9, 12, 10, 11);
Senzorul DHT11 pe A0 si pe A2 fotorezistenta

joi, 5 iulie 2018

Recuperare bec LED

Zilele astea a cedat electronica la doua becuri cu LED de 18W. Partea electronica era in dulie incastrata intr-o chestie foarte rigida, si nu s-a putut recupera nimic, avea doar o gaura neagra pe unde a iesit fumul. Dupa demontare am constatat ca led-urile sint ok si si incep sa lumineze incepind cu 23Vcc.
Ca sa nu le arunc le-am adaptat un circuit de tip joule thief conform schemei de mai jos:
Eu am folosit un BD139, iar transformatorul l-am facut pe un inel de ferita  cu dimensiunile in mm de 10/3/2. Bobina din baza tranzistorului are 20spire CUEm de 0,2mm, iar cea din colector 60spire CUEm de 0,3mm. Rezistenta se tatoneaza astfel sa se obtina un randament luminos bun la un tranzistor cit mai rece.  La alimentare de 1,2V tranzistorul e rece (aici a mers fara rezistenta), insa lumina este destul de slaba. La alimentare de 3,7V dintr-un acumulator de tip 18650 tranzistorul de incalzeste usor, motiv pentru care i-am atasat un mic radiator. In acest caz consumul creste la circa 0,4A, creste amplitudinea semnalului din colector de la 27V la aproape 50V si frecventa scade de la 37KHz la 4,2KHz, ceea ce a dus la o lumina apropiata de cea de dinainte de a scoate fum. 
In poza apare 0,57A deoarece se incarca si acumulatorul.
 Pentru teste am folosit un acumulator recuperat de la un laptop, care a asigurat un iluminat normal aproape 8ore, dupa care a inceput sa se simta scaderea nivelului de lumina.
 Aici se poate vedea cum a iesit transformatorul

duminică, 1 iulie 2018

Control ton cu TDA1524 si arduino

Cu ceva timp in urma am realizat un corector de ton cu TDA1524 caruia i-au cam cedat potentiometrii. Asa ca am testat inlocuirea acestora cu un arduino. Am preluat materialul lui Nicu Florica caruia i-am adus mici modificari.
Schema este preluata fara nici o modificare:
La iesirile spre TDA1524 am inseriat cite o rezistenta de 1K cu un 10microF la masa.
In codul meu am modificat PWM-ul la 222 in loc de 255 ca sa iasa 4,2V la maxim conform datelor de catalog ale lui TDA1524. In plus ca sa am un ordin de marime asupra valorilor reglate le-am afisat si pe acestea de LCD. 
Ca mod de functionare daca se apasa butonul meniu se trece pe rind la reglat volum, balans, bas si inalte. Ajustarea se face cu cele doua botoane plus si minus. Daca nu se apasa butonul meniu din plus si minus se regleaza doar volumul. Era obositor sa trec prin tot meniul doar pentru reglajul volumului, care este manevrat mai des.

Imagini de la teste
  • La initializare afizeaza starea curenta, cea memorata la ultimul reglaj:


  •  Placa corectorului de ton pe care am lipit rezistentele de 1K si condensatorii de 10micro. Mijlocul potentiometrilor s-au sectionat de pe placa.

  •  In spate este un amplificator cu TDA2616 pus rapid pe o placa de test ca sa pot auzi efectul reglajelor. Am testat cu un arduino uno caruia ii voi transfera controlerul pe un cablaj imprimat impreuna cu cele trei butoane, rezistentele si condensatorii. (probabil si TDA-ul functie de spatiul din caseta)


  •  Valorile afisate sint de la 0 la 38


  •  Nu m-am chinuit sa aliniez datele afisate pentru ca inca sint in dubii daca voi folosi LCD-ul asta sau trec pe un TFT.


vineri, 25 mai 2018

Priza programabila utilizind arduino

Deoarece mi-a cedat priza programabila luata din magazin, am hotarit sa mi-o fac singur. In cazul meu aceasta sta de regula in aer liber, si datorita mediului cedeaza ori butoanele care nu mai fac contact, ori display-ul caruia ii crapa banda de cauciuc cu contacte. Cele din comert sint ceva mai stufoase, insa eu am nevoie doar sa porneasca zilnic un releu pe un interval orar stabilit.
Nu am avut chef sa inventez alta roata asa ca mai intii am cautat sa vad ce au facut si altii. Solutii sint multe (mai mult sau mai putin complicate), dar de lene am ales varianta cea mai simpla, unde puteam utiliza arduino.
Am pornit de la un acest proiect de ceas cu alarma caruia i-am adaptat codul la ceea ce am gasit in sertar.
Pentru teste am folosit un LCD 16x2 cu I2C, un arduino nano si un modul cu DS1307.
Initial am mers pe varianta omului cu 3 butoane pe 3 intrari separate . Ulterior in speranta de a folosi un ATTINY85, am modificat codul pentru 3 butoane legate la aceasi intrare adaptind la cele 3 butoane 3 rezistente de 10K dupa informatiile din link. Din pacate aceasta versiune de cod nu incape in ATTINY si va ramine in studiu.
Codul ocupa destul de mult:

Fazele de testare arata ca mai jos:
In dreapta sus este ora de pornire (P), iar sub el ora de oprire (O)
In stinga sus ora curenta, iar mai jos data, desi in acesta aplicatie informatia este inutila.
La apasare butonului "-" se poate porni releul manual
 La apasarea butonului SET ( cel ce pune la masa intrarea A3) se trece in modul setup (cel din mijloc este + iar capatul -)
 La apasari succesive cursorul ">" se deplaseaza in stinga fiecarui element de reglat, cu celelate 2 butoane "+" si  "-" se executa reglajul.
 Setare ora si minut pornire
 Setare ora si minut oprire
 Se salveaza datele in EEprom
Releu pornit
In curind cind vor sosi circuitele DS1307 voi utiliza un LCD16x2 fara I2C, cu un 328 simplu, puse toate pe un circuit imprimat, adaptat la cutia folosita.

Trebuind neaparat o bucata functionala l-am pus intr-o doza PT (pe tencuiala):
De data asta am folosit un RTC mai mic ca dimensiune cu un LCD fara I2C, si am pus un ATMEGA328. Releul l-am lipit peste priza, iar linga el am pus o sursa de 5v/700mA.





Termometru cu DS18B20 cu ATTINY85-digispark pe 7segmente 2 digiti cu74HC595 programat pe MACOS

Am reluat proiectul anterior de data asta cu scopul de a testa programarea unui modul digispark cu Attiny85 pe MACOS (pe windows10  nu a ma...