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

sâmbătă, 20 octombrie 2018

Test display LCD 6 digiti, 7 segmente cu HT1621

Dupa o relativa ratacire mi-a sosit si mie display-ul. Lui Nicu Florica i-a sosit mai devreme, si a reusit sa faca munca cea mai grea de studiu si a pus o sinteza la el pe blog, asa ca nu am mai inventat o alta roata ci am preluat munca lui. 
Initial am realizat testul lui ca sa-l testez si pe cel ajuns la mine, dupa care am adaugat un senzor DHT11, si un DS1307 pentru a vedea cum se misca cu date reale. Am pastrat schema lui la care DHT-ul l-am legat la D3, la A4 si A5, SDA si SCL de la modulul cu DS1307. Am adaptat codul lui si a iesit ca in imaginile de mai jos (varianta mea de test este disponibila pe github):

Afisare ora si minut

 Afisare temperatura


 Afisare umiditate


 Imaginea cu montajul de test


Am vrut sa sting LED-ul de fundal si am descoperit ca acesta era legat direct la +5V, ca in imaginea urmatoare:

Am folosit o tresa de dezlipit pentru a scoate puntea de cositor din stinga si am facut-o in dreapta. Astfel pinul LED disponibil in dreapta display-ului a devenit functional.


Ca dimensiune se poate vedea mai jos:


In curind urmeaza ca in combinatie tot cu arduino si prescalerul M506 (descris foarte frumos de Nicu Florica aici) sa se transforme in frecventmetru.

Am folosit doar DHT11 cu attiny85 si functioneaza perfect. Codul modificat pe github.

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:





Update: am adaptat codul si pentru senzor DS18B20:

Cel de jos este realizat cu acelasi senzor in jurul lui arduino nano pe un display 3x7 segmente

sâmbătă, 21 aprilie 2018

Display 7 segmente/8digiti cu 74HC164

Aveam luat de test un display cu 7 segmente 8 digiti, cu 74HC164, serial pe 2 fire, si mi-am facut un pic de timp pentru teste.
Acesta arata  ca mai jos:


Dupa ceva studiu, m-am oprit pe 2 articole cu tematica similara de aici si de aici, iar dupa citeva incercari am reusit sa-l aprind cum vreau eu. De mare ajutor a fost datasheet-ul circuitului.
Am definit cei 2 pini:

const int clock = 3; //CP
const int data = 2;  //DAT

iar logica de comanda este:

shiftOut(data,clock,LSBFIRST,B10011101); // 1SEGMENT STINS //ABCDEFGdp
shiftOut(data,clock,LSBFIRST,B00000010);// 1 DIGIT ACTIV
delay(1); //necesar pentru transfer (daca este mai mare de 10 devine evident transferul datelor)

curatarea display-ului 

shiftOut(data,clock,MSBFIRST,B11111111);
shiftOut(data,clock,MSBFIRST,B00000000);

Dupa ce am verificat aprinderea fiecarui digit cu numarul dorit, am atasat doua bucati LM35 ca sa vad cum se misca. Codul de test este pe github.


 Pentru teste am folosit un arduino nano:



Dar apare un flicker foarte obositor ce nu se vede in poza. Afisarea unor informatii statice este ok, in sensul ca nu deranjeaza ochiul, insa citind cele doaua intrari analogice flicker-ul este deranjant, problema ce ramine in studiu.
Tinta lui este sa-l leg la un ATTINY85 ce urmeaza sa soseasca si voi face un voltmetru/ampermetru iar atunci voi mai lucra la reducerea tremuratului.

La sugestia lui Nicu Florica, pentru diminuarea tremuratului am incercat sa micsorez delay-ul de transfer folosind functia delayMicroseconds(j); insa timpul era prea scurt ca sa reuseasca sa aprinda LED-ul, acesta fiind mai mult stins. Cum tremuratul apare doar in cazul citirii intrarilor analogice, am pus partea de afisare intr-o bucla ca sa-l fortez sa citeasca mai rar cele 2 intrari:

int i;
 for (i=50;i>0;--i)
 {
shiftOut(data,clock, LSBFIRST, value[second_digit]); //delay(5);//NR
  shiftOut(data,clock, LSBFIRST, digit[3]);
  delay(2);
// delayMicroseconds(4000);
  shiftOut(data,clock, LSBFIRST, value[third_digit]); //delay(5);//NR
  shiftOut(data,clock, LSBFIRST, digit[2]);
  delay(2);
................................etc..................
  }

delay(2); reuseste sa asigure o luminozitate decenta, iar i=50 reduce semnificativ tremuratul fara a afecta valoarea citita si afisata.
Am facut si un filmulet cu telefonul iar in prima parte apare un tremurat datorita lampii cu neon, in realitate este insesizabil, insa ceea ce se vede era vizibil inainte de a pune bucla in cod. Spre finalul filmului am stins neonul, in film apare un usor tremurat dar este cauzat de camera video a telefonului. 

duminică, 4 martie 2018

Modul cu HT16K33

Pentru un viitor proiect cu ATTNY85 am testat doua module cu circuitul HT16K33 adaptor I2C catre 4x7 segmente cu catod comun. Cele  doua module arata ca mai jos:
Precum se vede nu exista prea multe informatii scrise pe el. Ca sa-l pot folosi am abuzat din nou de google si am descoperit ca sint clone ale acestuia de mai jos:


Insa nici aici nu am gasit o schema concreta de conexiuni. Am folosit datasheet-ul circuitului si am identificat cei 4 pini care ma interesau +5V, GND, SCL, SDA.
Implicit modulele au circuitele A0,1,2 deschise pentru  0X70 adresa I2C.


 Inchizind circuitul A0 adresa devine 0x71


Am incarcat pe arduino nano un scaner I2C pentru a verifica daca este corect:


In urma studierii materialului de aici, concluzia  este ca pinii 7 si 8 sint folositi pentru cele 2 puncte ce clipesc la secunda, (nefolositori in ceea ma intereseaza) in rest ceilalti corespund cu afisajul de mai jos:


Se observa ca display-ul are doar 6 pini pe linie, care corespund  modulului de mai sus  montat de la stinga spre dreapta, lasind in aer gaurile 7 si 8.

Testele le-am facut cu display-ul de mai sus care este ceva mai mic, dar cu pinii suficient de lungi ca sa-i pot modela, avind doar 0,36" fata de 0,56" .
Am modificat exemplul de aici pentru a afisa pe 2 display-uri, unul incrementeaza cu o unitate, al doilea aduna 1000 la unitatea incrementata.


 Am urcat pe google drive si un filmulet scurt.



duminică, 27 august 2017

Ceas cu ATTINY85 Digispark, RTC, afisare pe I2C 7 segmente HT16K33

Sosise de ceva vreme un display  de 1,2" (3cm) cu interfata I2C,  controlat de HT16K33 si i-am utilizarea pentru carea fost construit impreuna cu un DS3231 si un modul ATTINY85 Digispark..
Trebuia sa iasa doar un ceas foarte vizibil, si sa aiba posibilitatea de ajustare a orelor si minutelor.

Schema de conectare este aici  Pentru reglaj am folosit tot 2 butoane de data asta legate fiecare pe cite un pin.
Dupa un pic de documentare si adaptari am reusit sa-l aprind.
Codul folosit impreuna cu bibliotecile utilizate aici
Prototipul l-am facut tot pe o placa te test cu sirme la care i-am atasat si o sursa:
Ulterior s-a facut o caseta din doua placi fata-spate una transparenta si una opaca, cu gauri pentru butoanele de reglaj.


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