Sari la conținut
ELFORUM - Forumul electronistilor

ADC - formula de conversie


Bird

Postări Recomandate

Va salut ! Incerc sa gasesc o formula de conversie a valorii rezultate din intrarea unei tensiuni variabile intre o si 4,95 volti pentru afisarea pe un displai LCD , dar nu reusesc sa vad o creste contiunua . Cu 8 biti , crescand de la 0 la 5 volti am doua plaje de cate 2,4 volti , iar in alta situatie nu indica zecimalele .....Am incercat pe rezolutii de 8 si 10 biti . Cred ca mare lucru nu poate fi , dar.... cand nu sti ..... Va rog , spuneti-mi si mie care este solutia . Va multumesc !

Link spre comentariu
  • Răspunsuri 7
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Bird

    4

  • cirip

    1

  • vsurducan

    1

  • caddyct

    1

Top autori în acest subiect

Va salut !Incerc sa gasesc o formula de conversie a valorii rezultate din intrarea unei tensiuni variabile intre o si 4,95 volti pentru afisarea pe un displai LCD , dar nu reusesc sa vad o creste contiunua . Cu 8 biti , crescand de la 0 la 5 volti am doua plaje de cate 2,4 volti , iar in alta situatie nu indica zecimalele .....Am incercat pe rezolutii de 8 si 10 biti . Cred ca mare lucru nu poate fi , dar.... cand nu sti .....Va rog , spuneti-mi si mie care este solutia .Va multumesc !

8 biti inseamna 256 de nivele, deci 4.95V=cap scala/255 = 19.4mV/pas, rezolutia digitala in care masori. Daca la 255 trebuie sa-ti afiseze 4.95V trebuie sa inmultesti cu 1.94. Asta se face in mai multe feluri depinde daca lucrezi cu un compilator sau in assembler. In assembler faci ochii mari de tot la metoda asta:http://www.piclist.com/techref/method/math/divconst.htmsi o aplici aici:http://www.piclist.com/techref/piclist/ ... divmul.htm
Link spre comentariu

Incerc sa gasesc o formula de conversie a valorii rezultate din intrarea unei tensiuni variabile intre o si 4,95 volti pentru afisarea pe un displai LCD , dar nu reusesc sa vad o creste contiunua . Cu 8 biti , crescand de la 0 la 5 volti am doua plaje de cate 2,4 volti , iar in alta situatie nu indica zecimalele .....Am incercat pe rezolutii de 8 si 10 biti . Cred ca mare lucru nu poate fi , dar.... cand nu sti .....

Mai lipsesc informatii. Ce referinta folosesti?La modul general, daca rezultatul conversiei este N si ADul e de 8 biti, atunci Vin[mV]=N*(Vref[mV]/256). In proiectele facute de mine am preferat sa folosesc Vref in [mV], ca sa pot face calculele cu numere intregi sau virgula fixa. Mi se pare mai usor.Pe de alta parte, nu inteleg afirmatia "am doua plaje de cate 2,4 volti".Cat despre "mare lucru nu poate fi" :), e discutabil, ca dovada. Pana sa ajungi pe LCD iti cam mananca zilele conversiile. Rezultatul este in binar. Trebuie apoi convertit in zecimal, apoi in ASCII si dupa aceea trimis la LCD. Nu neglija nici regimul tranzitoriu (settling) al ADului. Mi s-a intamplat sa am erori ptr ca citeam prea repede dupa ce comutam pe un canal.Rutinele sunt facute de tine sau sunt luate de pe net?Cirip
Link spre comentariu

Dac? ar fi fost ?i codul prezent, era mai simplu pentru toat? lumea.

Cu liniile de mai jos , s-ar parea ca pot afisa pe LCD

 

val_masurata VAR WORD

Volti VAR WORD

 

 

DEFINE ADC_BITS 8 ' Set number of bits in result

DEFINE ADC_CLOCK 3 ' Set clock source (rc = 3)

DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds

 

ADCON1=%00001110

TRISA =%00000001

 

ADCIN 0,val_masurata

 

Volti = val_masurata*100/512

 

pause 100

 

'

'AFISARE PE LCD

 

'Lcdout $fe, 1

 

'LCDOUT $fe, $80, dec Volti /10,"," , dec volti //10

Link spre comentariu

Dac? ar fi fost ?i codul prezent, .....................

Am rezolvat ! Va multumesc ! Am folosit urmatoarele linii de cod si formula de conversie :...................................................... ADCON1=%00001110 'seteaza PORTA.0 analog restul digital ADCON0=%00000001 'MASURARE UMIDITATE ADCON0.2 = 1 ' Start ConversionNU-IGATA: Pause 5 If ADCON0.2 = 1 Then NU-IGATA ' Wait for low on bit-2 of ADCON0, conversion finished Umiditate = ADRESH ' Move high byte of result to adval volti= Umiditate*194/10 Lcdout $fe, 1 ' Clear LCD Lcdout "Volti: ", DEC volti/1000,",",dec3 volti//1000 ' Display the decimal value Acum trebuie sa fac corespondenta intre tensiunea masurata pe senzor si umiditatea relativa data de tebelul firmei .
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