Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


Postări Recomandate

Daca LCD-ul e bun incearca codul asta

$regfile = "m8def.dat"$crystal = 1000000$hwstack = 40$swstack = 16$framesize = 32Ddrc = &HFF                                                 'config PORTC ca iesireConfig Lcd = 16 * 2                                         ' comanda a fost adaugata aici, pentru ca aici ii este loculConfig Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2Config Adc = Single , Prescaler = Auto                      'configureaza convertorul ADCStart Adc                                                   'porneste convertorul ADCDim A As ByteDim W As LongDim W2 As LongDim X As SingleDim X2 As SingleDim P As SingleCursor OffCls                                                         'comanda CLS se pune aici sa nu flicare ecranul'-------------------DoW = Getadc(5)W2 = Getadc(4)X = W / 1024X = X * 5X2 = W2 / 1024X2 = X2 * 50P = X * X2Locate 1 , 1 : Lcd X ; " V  " ; X2 ; "A  "Locate 2 , 1 : Lcd P ; " VA       "Waitms 100                                                  'refresh ecranLoopEnd
Ar trebui sa functioneze bine.
Link spre comentariu

Cred ca tocmai l-ai alimentat invers.

Pinul 1 este la GND, pinul 2 la +5V. In principiu, dupa ce il lasi sa se raceasca, ar trebui sa functioneze normal.

Ca sfat, pe viitor foloseste conectori pentru LCD.

 

LE:

codul modificat de mine este urmatorul:

 

 

 

$regfile = "m8def.dat"$crystal = 1000000Config Lcd = 16 * 2' comanda a fost adaugata aici, pentru ca aici ii este loculConfig Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2Cursor OffDisable Interrupts                                          '  comanda se poate introduce pentru a evita declansarea nedorita a intreruperilorDim Flag As BitDim W As WordDim W2 As WordDim X As SingleDim X2 As SingleDim P As SingleDim Tensiune As String * 16Dim Curent As String * 16Dim Putere As String * 16Flag = 1DoStart AdcW = Getadc(5)W2 = Getadc(4)Stop AdcFlag = 1X = W / 1024X = X * 5X2 = W2 / 1024X2 = X2 * 50p=x*x2Tensiune = Fusing(x , "#.##")Curent = Fusing(x2 , "#.##" )Putere = Fusing(p , "#.##")If Flag = 1 ThenGosub Disp_lcdEnd IfLoopEnd                                                         'end programDisp_lcd:Locate 1 , 1 : Lcd Tensiune ; " V " ; Curent ; " A "Locate 2 , 1 : Lcd Putere ; " VA "Flag = 0Return
si rezultatul simularii:

http://www.4shared.com/folder/nONFTHuz/_online.html

Link spre comentariu

Cred ca tocmai l-ai alimentat invers.Pinul 1 este la GND, pinul 2 la +5V. In principiu, dupa ce il lasi sa se raceasca, ar trebui sa functioneze normal.Ca sfat, pe viitor foloseste conectori pentru LCD.

Scuze, prima data nu am fost atent! Alimentarea LCD-ului este OK.Verifica inca odata conexiunile dintre afisor si uC si, de asemenea, verifica sa nu ai scurturi intre pinii afisorului.Nu ar trebui sa se incalzeasca integratele de pe spatele LCD.Manifestarea relatata de tine poate fi si urmarea unei inversari a semnalelor de date si/sau a celor de la pinii E si RS.
Link spre comentariu

Licăritul imaginii se numeşte flicker şi este cauzat de ştergerea conţinutului de pe ecran/display între două afişări consecutive. Din cauza vitezei scăzute de lucru a display-ului, ochiul ajunge să perceapă tot procesul de afişare ca un tremurat cauzat de ştergerea dintre afişări.O soluţie ar fi să nu mai ştergi display-ul între afişări ceea ce înseamnă că va trebui să ai grijă să suprascrii la fiecare iteraţie tot ecranul pentru a nu prezenta utilizatorului date fantomă.

Link spre comentariu
  • 2 săptămâni mai târziu...

Stai linistit, nu esti singurul care a descoperit ca firul de 5V poate fi legat si la 12V. :rade:

 

Ca sa eviti, foloseste una din urmatoarele metode:

- un conector antiprost (adica intra doar in locul si pozitia care trebuie, altfel nu intra indiferent cati muschi ai - personal nu cred ca exista asa ceva pentru ca am vazut de mai multe ori conectori Molex de HDD bagati invers si o data am vazut chiar un conector DB25, metalic, bagat invers)

- marcheaza firul cu marker-ul sau macar fa-i nod(uri)

- foloseste tile sau etichete cu care denumesti cablul

- pune fire de aceeasi culoare, de exemplu rosu la rosu, sa nu le inversezi din greseala

Link spre comentariu

As avea nevoie de ajutorul vostru inlegatura cu PWM-ul la un atmega88 sau attiny2313(vorbind in gereal de PWM).Folosesc mikroC for avr sau flowcode4. Am reusit sa generez PWM-ul dar nu stiu cum il spre un pin de output. Adica ceva gen arduino. Acolo scriam codul si puteam pune semnal PWM la pinul capabil de PWM. va multumesc.LE: Am incercat sa caut dupa PWM in sectiunea atmel dar nu pot cauta cuvinte mai scurte de 4 caractere. Ce ar fi sa se foloseasca totusi 3 caractere sau sa se treaca cuvintele cu 3 caractere folosite la uC la exceptii.(ca exemplu, avr, pic, adc, pwm)

Link spre comentariu

As avea nevoie de ajutorul vostru inlegatura cu PWM-ul la un atmega88 sau attiny2313(vorbind in gereal de PWM).

Pai vorbim in general, dar ne intrebi cum scoti un semnal PWM pe un pin al unui anumit microcontroler.Nu am citit (recent) foile de catalog ale atmega88 sau attiny2313 deci din cate stiu s-ar putea sa se faca diferit.

Folosesc mikroC for avr sau flowcode4. Am reusit sa generez PWM-ul dar nu stiu cum il spre un pin de output. Adica ceva gen arduino. Acolo scriam codul si puteam pune semnal PWM la pinul capabil de PWM.

De unde stii ca ai reusit sa generezi un semnal modulat in latime daca nu poti sa il vezi nici cum? Cat despre arduino... aici te aduce. Multi is "profesionisti" in domeniu dar nu stiu ce e ala un registru.In foaia de catalog gasesti tot ce ai nevoie.De exemplu pentru atmega88 http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdfPentru timerul 0, in functie de modul PWM configurat trebuie sa setezi anumite valori in TCCR0A (detalii la pagina 101). In functie de aceste valori vei putea scoate semnalul PWM pe pinii OC0A si/sau OC0B in mod normal sau inversat.
Link spre comentariu

La flowcode4 ai un grafic care iti arata cat % din PWM ai setat. La mikroC nu stiu.m-am gandit ca exista o librarie in care ii zici pin-ul, duty cycle si face el restul, dar vad ca m-am inselat.Presupun ca la toate avr-urile se face la setarea wpm-ului la fel, am intrebat mai precis de attiny 2313 si atmega88 ca ep acestea le foloesc.

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări