costyy86 Postat Martie 31, 2016 Partajează Postat Martie 31, 2016 (editat) Repun cablajul pe partea de top, cum este montat afisaju si atmega, nu pot muta afisaju pe cealalta parte, daca mut nu mai vin pini de anod comun, 13 respectiv 14 pe tranzistori. Model display cu 18 pini, dublu, DA56-11EWA voltmetru top.pdf Editat Martie 31, 2016 de costyy86 Link spre comentariu
nico_2010 Postat Martie 31, 2016 Partajează Postat Martie 31, 2016 Imi pare rau sa te anunt ca ai incurcat ceva in realizarea cablajului, respectiv modul de dispunere a afisorului, sau mai grav a microcontroller-ului. Totusi insist ca afisorul trebuie montat pe prtea opusa microcontroller-ului. Link spre comentariu
costyy86 Postat Martie 31, 2016 Partajează Postat Martie 31, 2016 (editat) Multumesc pentru ajutor,insa nu am rezolvat nimic, am reverificat de multe ori cablajul, si e ok fata de schema, eu cred ca este gresit programul. Cum pot genera codurile de mai jos? Am vazut cu ceva timp in urma un tutorial cu, calculatorul, dar numai hgasesc.. "Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00, &H18" Editat Martie 31, 2016 de costyy86 Link spre comentariu
Elison Postat Martie 31, 2016 Partajează Postat Martie 31, 2016 Nu stiu daca am inteles bine ce ai vrut sa zici, dar ai mai jos o imagine din care poti sa-ti dai seama cum s-a ajuns la acele valori din Dta.Daca vrei sa faci calcule in excel, in K2 pui formula" =CONCATENATE(D2,E2,F2,G2,H2,I2,J2,)", iar in L2 pui " =BIN2HEX(K2)".Repeti formulele pana la K11 si L11.Poti folosi pagina excel pentru ca sa-ti faci caractere personalizate pe un digit, de exemplu.In functie de tipul afisajului(anod comun sau catod comun) un segment se aprinde pentru zero sau pentru unu. Link spre comentariu
costyy86 Postat Aprilie 2, 2016 Partajează Postat Aprilie 2, 2016 Multumesc. Acea explicatie cautam. Nu am reusit sa fac mai nimic cu codul anterior, asa ca am cautat alta schema cu cod, de aceasta data am facut totul pe un breadboard, si se aprinde ok, dar nu functioneaza ok, am pus pe intrare adc un divizor rezistiv pentru o tensiune maxima de 50v 10k cu 1.11K, si imi afiseaza tensiunea aiurea, + ca ce e mai rau fluctueaza intruna tensiunea pe display, tinand cont ca este masurata tensiunea unui acumulator de 3.7v, ceea ce nu ar trebui sa se intample. Schema si codul sunt la adresa de mai jos, singura modificare, eu am modificat crystalul la 8mhz intern. http://inkubator-teknologi.com/voltmeter-digital-dengan-bascom-dan-cvavr/ Multumesc. Link spre comentariu
Elison Postat Aprilie 2, 2016 Partajează Postat Aprilie 2, 2016 Ai mai jos un fisier .bas care citeste intrarile analogice la fel ca in programul cu care ai inceput si pentru care aveai cablaj facut.In Proteus functioneaza corect.Daca valoarea indicata nu este stabila, adauga la inceput o bucla for in care citesti intrarea analogiga de mai multe ori,aceste valori le insumezi intr-o variabila si apoi faci media citirilor.Intre doua citiri consecutive poti sa pui un delay de 2-5ms.Poti sa mai stabilizezi variatiile de tensiune afisate cu un condensator de capacitate mica pus pe intrare analogica.Foarte important este sa ai o tensiune de alimentare stabilizata, bine filtrata si condensator de decuplare pe alimentarea atmega8 7segDisp.rar Link spre comentariu
nico_2010 Postat Aprilie 2, 2016 Partajează Postat Aprilie 2, 2016 Monteaza un condensator de 0.1u intre Aref si masa si intrerupe legatura acestui pin cu 5V. Monteaza pe Avcc o bobina de 100u precedata de un cond de 0.1u. Modifica codul de calcul al tensiunii. Acum e gresit. Link spre comentariu
costyy86 Postat Aprilie 2, 2016 Partajează Postat Aprilie 2, 2016 @Elison, am vazut ca in proteus functioneaza, functiona si codul ce l-am pus eu, dar in realitate nu, ce mi-ai dat, functioneaza oarecum, exceptand tensiunea afisata eronata, dar asta se va calcula, plus ca fluctueaza afisarea cam la intervale de 50-100ms, de nu intelegi nimic uneori, alteori doar cate o cifra. Am pus si condensator pe intrarea analogica, am legat si aref printr-un condensator la masa, toate astea incercate pe un breadboard, Am incercat alimentand direct din usb-asp si apoi am alimentat dintr-un acumulator de 3.7v, si tot asa functioneaza, Pe cablajul ce il am facut am incercat, dar tot asa face, in plus este gresit cum ai scris codul deoarece comanda pentru digiti, pentru numarul lor este exact invers...digit 1- portd.3, digit 2 portd.2, digit 3 portd.1 si digiot4 portd.,0 @nico_2010 Am montatacel condensator, bobina nu am gasit,dar cond am montat, ce nu imi place este ca se comporta ciudat si cand este alimentat sau masoara o baterie, ceea ce nu ar trebui,toturi are tensiunea "curata" pe langa o alimentare si filttrare cu traf. Multumesc. Link spre comentariu
nickrvl Postat Aprilie 3, 2016 Partajează Postat Aprilie 3, 2016 Cred ca trebuie sa incepi de la "0", in prima faza asigura-te ca citirea respectiv afisarea e ok, aprinde cite un digit cu o valoare stiuta adica da-i variabilei o valoare direct in soft si vezi daca o afisaza corect si deabia dupa asta citeste si un ADC, in codul din link-ul aratat de tine citirea nu prea e ok, regindeste softul ca nu e deosebit de greu...... Link spre comentariu
Elison Postat Aprilie 3, 2016 Partajează Postat Aprilie 3, 2016 Daca ai chef sa mai incerci o varianta de program, am facut una in care afisarea pe fiecare digit se face atunci cand are loc o intrerupere a timerului 1.Asa cum este acum, rata de refresh este de 100Hz.Am avut grija sa nu mai inversez ordinea segmentelor.Daca vrei alta rata de refresh, schimbi Valtimer1,eventual prescaler.Tensiunile afisate sunt cele care corespund intervalului 0-5V. $regfile = "m8def.dat"$crystal = 8000000Portd = &HFFDdrd = &HFFPortb = &HFFDdrb = &HFFConfig Adc = Single , Prescaler = Auto , Reference = AvccDim W As Word , V As Word , Seg1 As Byte , Seg2 As Byte , Seg3 As Byte , Seg4 As ByteDim Valtimer1 As Word , Tick As Byte , Canal As Byte , Contor_canal As ByteDim Vstring As String * 4 , Sseg1 As String * 1 , Sseg2 As String * 1 , Sseg3 As String * 1Dim Sseg4 As String * 1Sw1 Alias Pind.6Sw2 Alias Pind.7Portd.6 = 1Portd.7 = 1Config Sw1 = InputConfig Sw2 = InputConfig Debounce = 30Config Timer1 = Timer , Prescale = 1On Timer1 Isr_timer1Enable Timer1Enable InterruptsValtimer1 = 55536Contor_canal = 0Tick = 0Start AdcDo Debounce Sw1 , 0 , Up , Sub Debounce Sw2 , 0 , Down , Sub W = Getadc(contor_canal) V = W * 5 Vstring = Str(v) Sseg1 = Mid(vstring , 1 , 1) 'mii Sseg2 = Mid(vstring , 2 , 1) 'sute Sseg3 = Mid(vstring , 3 , 1) 'zeci Sseg4 = Mid(vstring , 4 , 1) 'unitati Seg1 = Val(sseg1) Seg2 = Val(sseg2) Seg3 = Val(sseg3) Seg4 = Val(sseg4)LoopEndIsr_timer1: Timer1 = Valtimer1 Tick = Tick + 1Select Case Tick Case 1 : Portd = &B1110 Portb = Lookup(seg1 , Led) Case 2 : Portd = &B1101 Portb = Lookup(seg2 , Led) Case 3 : Portd = &B1011 Portb = Lookup(seg3 , Led) Case 4 : Portd = &B0111 Portb = Lookup(seg4 , Led) Tick = 0End SelectReturnUp:Incr Contor_canalIf Contor_canal >= 6 ThenContor_canal = 0End IfReturnDown:If Contor_canal > 0 ThenDecr Contor_canalElseContor_canal = 5End IfReturnLed: Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H18 Link spre comentariu
costyy86 Postat Aprilie 3, 2016 Partajează Postat Aprilie 3, 2016 (editat) Multumesc foarte mult pentru ajutorul acordat,insa tot nu vrea sa functioneze ok, fluctueaza rau ca naiba, am schimbat si rata de refres, si prescaleru, fara efect, cred ca voi renunta si voi face un voltmetru cu lcd 16x2, doar ca pe acela va trebui sa afiseze 8 tensiuni si 8 curenti, deci un atmega cu 16adc-uri sau un arduino mega. Multumesc tutoror pentru efortul depus de a ma ajuta. L.E.Am reusit sa filmez un pic cum functioneaza, desi uneori fluctueaza mult mai repede.... Editat Aprilie 3, 2016 de costyy86 Link spre comentariu
nico_2010 Postat Aprilie 5, 2016 Partajează Postat Aprilie 5, 2016 @costyy86: In atasament ai fisierul .hex aferent schemei din pagina PDF anexata. Ar trebui sa faci un minim de modificari la montaj (succesiunea comenzii tranzistoarelor) si sa imi spui daca functioneaza. La fisierul main.txt schimbi extensia in .hex si il incarci in uC. Frecventa de ceas a uC este de 8MHz intern. Daca este OK, atunci postez si sursa. voltmetru_costi.pdf main.txt Link spre comentariu
costyy86 Postat Aprilie 12, 2016 Partajează Postat Aprilie 12, 2016 Revin dupa lungi teste, se pare ca nu functioneaza, asa ca, dupa cumam spus, voi face cu un Display Grafic, Am primit un display grafic 160x160 ,insa este o problema cu pini si nu stiu cum sa rezolv. LCD-ul are alta configuratie la pini, bascomul din ce am studiat nu stie decat pe urmatori pini: WR RD CE CD Reset FS Eu am la lcd-ul meu, http://www.tme.eu/en/Document/1d217dff24d22b5ff25472b629e20e04/RG160160B-TIY-V.pdf R/W E CS RS RST Cum sa fac conexiunea? sau cum sa configurez LCD-ul? Multumesc. Link spre comentariu
nico_2010 Postat Aprilie 13, 2016 Partajează Postat Aprilie 13, 2016 Daca citeai putin Help-ul BASCOM ai fi vazut ca chipul LC7981 nu este suportat de acest compilator. Se pare ca exista o librarie pentru acest controller pe site-urile nemtesti. Poate te ajuta asta: http://www.mikrocontroller.net/attachment/62874/PollinBascomTest.bas care integreaza si partea de initializare si comanda a display-ului pe care il ai. Incearca si varianta din arhiva de mai jos. display.zip Link spre comentariu
nickrvl Postat Aprilie 14, 2016 Partajează Postat Aprilie 14, 2016 .............. Eu am la lcd-ul meu, http://www.tme.eu/en/Document/1d217dff24d22b5ff25472b629e20e04/RG160160B-TIY-V.pdf............... Cu scuze, nu am timp sa verific dar o problema cu un LCD grafic impreuna cu cei ce au putut sa ma ajute am rezolvat-o aici: http://www.elforum.info/topic/112559-lcd-grafic-128x64/?hl=%2Bnickrvl+%2Bgrafic&do=findComment&comment=1321425 Poate te ajuta..... 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