stefan_k Postat Aprilie 13, 2010 Partajează Postat Aprilie 13, 2010 In primul rand, salutari tuturor. Ma invart de ceva vreme prin zona, am mai furat idei din stanga si din dreapta, asa ca am considerat ca ar fi bine sa mai si dau inapoi. Pentru inceput, va propun un multi-voltmetru, cu urmatoarele caracteristici: - afisare a 2 valori "simultan", pe display-uri led/7segmente - pana la 8 intrari diferite, selectabile manual (din buton) - posibilitate de configurare pentru a se preta cerintelor utilizatorului (tipul displayului - anod/catod comun, factorul de divizare la intrare, etc). Ca utilitate, se pot mentiona: - voltmetru + ampermetru pentru sursele de tensiune/curent - indicator de temperatura pentru statiile de lipit (prezente pe forum) Am incercat sa reduc costurile la minim, pentru a se justifica realizarea proiectului in locul altor solutii dedicate de genul ICL7107. Costuri estimative: - atmega8: 5 lei - display 3 digiti 7 segmente: 3 lei (x 2 bucati) - rezistente, condensatori ... 1-2 lei - total: sub 15 lei, cu afisaj dublu. Tin sa mentionez ca pentru mine electronica nu e decat un hobby; ca urmare, astept si accept orice critici pertinente si constructive, din partea celor cu mai multe cunostinte decat mine. Pentru inceput, schema de principiu: Microcontrolerul este din familia Atmega8 (merge si 48/88); pe PORTB se conecteaza segmentele, iar pe PORTD pinii comuni. Cat timp pastram curentul prin fiecare segment la un maxim de 5mA, acestea se pot conecta direct la microcontroler. Daca dorim curent mai mare, e nevoie de tranzistoare npn/pnp pe pinii comuni ai digitilor, in functie de tipul display-ului (catod comun/anod comun); restrictia este de a nu depasi 40mA pe pinii comuni atunci cand sunt aprinse toate ledurile (cifra 8 + punctul zecimal). Schema pentru varianta cu tranzistoare este prezentata in pdf-ul de final. Nota: daca se foloseste varianta DIP a microcontrolerelor, atunci numarul maxim de intrari ADC va fi de 6. Pentru varianta TQFP, numarul maxim de intrari e 8. Secventele de conectare pe porturile PDx si PBx nu sunt critice, ele pot fi configurare in firmware (segmentele sa ramana pe PB; pinii comuni si butonul sa ramana pe PD - in rest ordinea poate fi modificata dupa cum e mai usor sa se faca rutarile pe PCB). Semnalul de masurat se aplica pe intrarile ADC0-ADC7, prin intermediul unui divizor rezistiv, astfel incat sa reducem tensiunea aplicata la intrarea atmega-ului la maxim 2.56V pentru atmega8, sau 1.1V pentru atmega48/88. Pe baza factorului de divizare, se va calcula factorul de multiplicare cu care trebuie configurat firmware-ul, in fisierul config_generic_sch.h Firmware-ul: consta in 2 fisiere, firmware.c si fisierul de configurare - config_generic_sch.h. In fisierul de configurare se definesc pinii segmentelor, pinii comuni si factorii de divizare pe intrarile analogice. Am inclus si doua fisiere (compile.sh si programmer.sh) pentru a fi mai usor compilarea/programarea de cei ce doresc aceasta. Pentru utilizatorii de windows, sa priveasca aceste fisiere ca ".bat"-uri. Compilator folosit: avr-gcc (winavr pentru cei de pe windows) Ca programator, am folosit avr-dude, dar fiecare foloseste ce doreste. Am descris si fusebitii, practic ce trebuie modificat fata de varianta din fabrica e setarea microcontrollerului sa ruleze pe 8MHz, ceas intern. Va prezint si primul exemplar, conectat la statia de lipit: Din pacate aici am luat o teapa; testele le-am facut pe placa de teste cu alte display-uri, pe placa finala am montat display-uri mai mari, iar dupa ce totul a fost gata am constatat ca acestea nu au ... punct zecimal. Au furat chinezii punctul. Pentru statia de lipit nu e o problema, dar vroiam sa folosesc montajul si pentru sursa de tensiune; asa ca sunt nevoit sa mai construiesc un exemplar, cu alte display-uri. Nu am sa public cablajul, pentru simplul motiv ca nu sunt multumit de el. Se poate vedea ca tehnica de realizare e cam ... hibrida, ca sa ma exprim frumos. Pentru divizorii rezistivi am folosit o placa separata, pentru a-i putea modifica fara sa intervin pe cablajul principal. In final, schemele format pdf, cu/fara tranzistori: http://dizzy.ro/projects/multivoltmeter/voltmeter.pdf http://dizzy.ro/projects/multivoltmeter/voltmeter_transistors.pdf Nota: NPN pentru displayuri cu CATOD comun, legate la GND; PNP pentru display-uri cu ANOD comun, legate la VCC (ultima varianta nu am mai figurat-o). Si sursele firmware-lui: http://dizzy.ro/projects/multivoltmeter/firmware_20100413.zip Nota finala: Deocamdata nu am sa pun un "hex" gata compilat, dintr-un motiv simplu: - fiecare are alte cerinte cu privire la tensiunile de intrare, afisajele folosite (anod/catod comun), dispunerea traseelor intre pini, etc Daca vor fi doritori in realizarea acestui montaj, astept in primul rand un cablaj functional (mai bun decat am facut eu); pe baza acelui cablaj pot sa recompilez sursele dupa cerintele celui care a facut cablajul (tensiuni de intrare, etc). Link spre comentariu
vasile eugen Postat Aprilie 13, 2010 Partajează Postat Aprilie 13, 2010 chiar este util intr-o sursa de alimentare,arata bine si este mai robust Link spre comentariu
GeoMar Postat Aprilie 13, 2010 Partajează Postat Aprilie 13, 2010 Foarte frumos @stefan_k si util totodata acest multi-volmetru. Felicitari din partea mea. Link spre comentariu
nana Postat Iunie 22, 2010 Partajează Postat Iunie 22, 2010 Ar trebui sa mentionezi ca acel divizor RA/RB sa nu aiba impedanta echivalenta mai mare de 10K parca astfel creste timpu de incarcare al condensatorului de SH. iar daca tu faci sampling la frecv max sar putea sa ai surpriza sa nu apuce sa se incarce condensatorul. Link spre comentariu
stefan_k Postat Iunie 22, 2010 Autor Partajează Postat Iunie 22, 2010 Corect, mentiune buna, impedanta de intrare e limitata de microcontroler, asta e. Recomandat 10kohm or less, as datasheet says.Daca prin "sampling" intelegi citirea ADC-ului la fiecare iteratie in bucla principala, atunci nu e cazul in situatia de fata; "free running mode" e dezactivat.In momentul de fata, prescalerul pt ADC e setat la 1:64, ceea ce ar inseamna 125KHz. Eventual se poate cobora la 1:128, daca chiar e cazul.E activata intreruperea pt ADC, valoarea citita in intrerupere e pastrata pana la urmatoarea citire, care se face dupa aproximativ 250ms (in jur de 4 citiri pe secunda pentru fiecare pin; doi pini "simultan" (alternativ), deci 8 conversii pe secunda pentru ambii pini impreuna - mai mult nu are rost pentru ochi).Nu m-am obosit nici macar sa calculez/afisez media ultimelor citiri, fiindca pentru ce il folosesc valoarea afisata e suficient de "stabila".Eu il consider "proiect de incalzire", in fond e banal ce e in el; mai interesanta a fost partea pt multiplexarea 7-digit-ilor; oricum intre timp am pus mana pe cateva afisoare 16x2, asa ca mi-am mai rezolvat niste probleme. Timp sa fie ... Link spre comentariu
nana Postat Iunie 27, 2010 Partajează Postat Iunie 27, 2010 Si eu urasc afisarile pe 7 segmente ca trebuie sa stau sa calculez la fiecare digit val pe port sa fac niste bucle de conversie in functie de cati digiti am sa fac un timer ca sa baleez cifrele etc... e spinoasa rau problema la afisoarele astea, la un moment dat mi-am facut niste bibliotecti insa fiecare proiect cu particularitatile sale si ajungea sa am mai mult probleme si sa modific bibliotecile decat daca le scriam de la 0. Noroc cu displayurile 2x16 la care sunt biblioteci gramada pe net si sunt si incluse in multe compilatoare by default, atat ca aici munca se face pe ram si stringuri dar mie mi se pare mai usor si mai putin de scris decat la 7 segm. Link spre comentariu
schukaru Postat Februarie 3, 2011 Partajează Postat Februarie 3, 2011 A facut cineva un cablaj Link spre comentariu
yo9hnf Postat Mai 29, 2011 Partajează Postat Mai 29, 2011 M-am apucat sa fac un cablaj in SprintLayout pentru acest voltmetru (stefan_k, felicitari si multumiri !!!). Credeti ca e ok daca las Rb ca rezistenta fixa, si Ra ca semireglabil in ideea de a justa tensiunea masurata pe shunt (in cazul curentilor) ? Link spre comentariu
yo9hnf Postat Mai 30, 2011 Partajează Postat Mai 30, 2011 Am terminat de facut cablajul. Sper sa va placa... Cablajul are 42mm x 82mm. Cablajul este desenat in Sprint Layout si este in singur strat. Mufa de sus este pentru ISP. Pentru afisoare, ledurile care indica selectia si butonul de selectie am folosit PIN HEADER. Link spre comentariu
yo9hnf Postat Iunie 1, 2011 Partajează Postat Iunie 1, 2011 Nicio parere despre cablaj? Link spre comentariu
yo9hnf Postat Iunie 9, 2011 Partajează Postat Iunie 9, 2011 Imi poate compila cineva firmware-ul in BIN sau HEX ? Multumesc ! Link spre comentariu
Stefan Postat Iunie 9, 2011 Partajează Postat Iunie 9, 2011 pentru ATMEGA8 fara modificari in firmware Link spre comentariu
iulian2010 Postat Decembrie 12, 2011 Partajează Postat Decembrie 12, 2011 Foarte frumos!Felicitari pentru realizare! Link spre comentariu
stefan_k Postat August 1, 2012 Autor Partajează Postat August 1, 2012 Nu m-am uitat de mult pe aici, si sincer sa fiu sunt cam dezamagit.Initial am pornit de la ideea de "daca tot faci ceva nou, macar sa inveti ceva". Ati avut surse, practic tot ce va trebuia. Intentionat nu am postat varianta compilata, si urmarile le vad.Va place mai mult sa copiati chestiile, decat sa le intelegeti. "Frumoasa realizare", asa o fi, dar realizarea e zero barat. Cablaje frumos facute, recunosc, dar principala intrebare e "hex-ul, unde e hex-ul". Mai bine ati fi apelat la ICL7107.Succese, ce sa zic, Link spre comentariu
yo9hnf Postat August 26, 2012 Partajează Postat August 26, 2012 Oameni buni, voi vorbiti despre un voltmetru cu LCD. Scrie in titlul subiectului "LCD" ? Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum