lama Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 Salut Am un montaj cu PIC12F675. Am pus un potentiometru de 10k legat la GP0. Trimit ce am citit pe GP2(serial pe 2400). Configurarea este urmatoarea. ANSEL = 0x11; // Analogue input on GP0 and Fosc/8 rate TRISIO = (1<<5) | (1<<1) | (1<<0); // set as output except bits 5,1 GP5=i/p, GP1=i/p and zero (ANO) ADCON0 = 0 | (1<<7) | (1<<0);// Vdd reference //Channel 00 (AN0), A/D converter ON // bit 6 trecut in 1 se face fata de Vref pin / cu 0 se face fata de VDD Citind obtin valori intre 0-5 pina la un maxim de 844. Poate sa imi explice cineva cum e cu ADC-ul? Ca as avea tensiunea de ref (5.03v) de impartit la 1023. si obtin 4.88mV. De aici rezulta ca 4.88mV * 844 = 4.12V. Ma asteptam sa obtin totusi 5V . Ce parere aveti? Link spre comentariu
Liviu M Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 Cu un multimetru (extern) ai masurat tensiunea de pe pinul ala sa vezi ce tensiune ai de fapt acolo? Link spre comentariu
lama Postat Iulie 20, 2011 Autor Partajează Postat Iulie 20, 2011 Cu un multimetru (extern) ai masurat tensiunea de pe pinul ala sa vezi ce tensiune ai de fapt acolo?4.72 V Link spre comentariu
Liviu M Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 Hm, tot e cam mare diferenta.Astepti suficient inainte sa pornesti masuratoarea?Daca masori de mai multe ori, se mentin valoriloe citite?Esti sigur ca "aduni" cum trebuie cei 2 registrii cu rezultatele ADC?Cum e setat ADCON1?A propos, la tine ADCON0= 10000001, adica Fosc/32 sau Fosc/64 (in functie de cum e setat ADCON1). In principiu nu e nici o problema, da' trebuie sa astepti mai mult pana sa citesti datele; daca testezi bitul GO/DONE, atunci nu e nici o problema. Link spre comentariu
lama Postat Iulie 20, 2011 Autor Partajează Postat Iulie 20, 2011 Hm, tot e cam mare diferenta. Astepti suficient inainte sa pornesti masuratoarea? Da, am un delay de 100ms intre Daca masori de mai multe ori, se mentin valoriloe citite? Mici variatii Esti sigur ca "aduni" cum trebuie cei 2 registrii cu rezultatele ADC? Cum e setat ADCON1? ADCON1? nu cred ca are. A propos, la tine ADCON0= 10000001, adica Fosc/32 sau Fosc/64 (in functie de cum e setat ADCON1). Pai nu in ANSEL se face setarea de Fosc? Ca asa scrie in manual. Nu ANSEL si TRISC determina functionarea? In principiu nu e nici o problema, da' trebuie sa astepti mai mult pana sa citesti datele; daca testezi bitul GO/DONE, atunci nu e nici o problema. Codul de loop while(1){ //looping GODONE = 1; //Start Conversion while(GODONE){} //Wait for conversion complete ADC_Value = ( ADRESH << 8) + ADRESL; // citire valoare conversie , shiftare la stanga cu 8 biti itoa(buf, ADC_Value, 10); _Soft_USART_Println(&buf); __delay_ms(100); } Link spre comentariu
Liviu M Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 Sorry, m-am uitat unde stiam eu mai bine - 16f877. M-am uitat in data-sheetul care trebuie si pare OK, asa ca n-am idee de unde vine.Ar fi interesant sa vezi cumva continutul registrilor ADRESH & ADRESL, ca nu cumva sa ai probleme cu conversia (itoa) sau la transmisie.Chiar, transmisia ai testat-o? Daca trimiti un caracter cunoscut, il receptionezi cum trebuie? Link spre comentariu
lama Postat Iulie 20, 2011 Autor Partajează Postat Iulie 20, 2011 Sorry, m-am uitat unde stiam eu mai bine - 16f877. M-am uitat in data-sheetul care trebuie si pare OK, asa ca n-am idee de unde vine.Ar fi interesant sa vezi cumva continutul registrilor ADRESH & ADRESL, ca nu cumva sa ai probleme cu conversia (itoa) sau la transmisie.Chiar, transmisia ai testat-o? Daca trimiti un caracter cunoscut, il receptionezi cum trebuie?Seriala am testat-o in gol(cu siruri cunoscute). Dupa ce am intrebat pe aici pe forum am facut eu o fctie de transmitere si merge. O sa afisez ADRESH & ADRESL sa le vad cum arata. Am verificat si tensiunea de alimentare e 4.72(o ia din clona de PicKit2) Link spre comentariu
Liviu M Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 4.72V sunt masurati cu voltmetrul pe pin (AN0), nu ti-o zice pickit2 prin vreo fereastra de calculator, da? Link spre comentariu
lama Postat Iulie 20, 2011 Autor Partajează Postat Iulie 20, 2011 4.72V sunt masurati cu voltmetrul pe pin (AN0), nu ti-o zice pickit2 prin vreo fereastra de calculator, da?El in fereastra zice 4,8V.Si cred ca stiu de unde vine eroarea(noroc ca mi-ai zis sa masor). Eu urmeza sa pun un LM35 dar nu a venit inca si am zis sa testez cu un potentiometru. Doar ca ptr LM35 e pusa o rezistenta de 1k de la AN0 la pinul 2 al lui LM35. Asa ca la un maxim de 4,72V am pe AN0 3.91V.Urmatorul proiect o sa il fac cu DS18B20(sunt pe drum ) ca sa scap de aceste probleme. Link spre comentariu
Liviu M Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 (noroc ca mi-ai zis sa masor)Eu ti-am zis sa masori pinul ala inca din primul post; am crezut ca acolo ai masurat cei 4.72V. Link spre comentariu
lama Postat Iulie 20, 2011 Autor Partajează Postat Iulie 20, 2011 Era mai facil accesul pe potentiometru. Si am uitat de rezistenta aia(ca doar eu am pus-o dar .... deh batranetile astea ).Sa vad ce intrebari am cand pun LM35-ul... 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