Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
senzor pritiska 0.5-4.5V
#1
Dobio sam ovaj senzor za merenje pritiska 

http://www.ebay.com/itm/311233888623?_tr...EBIDX%3AIT

problem je sto je njegov naponski izlaz 0.5-4.5V ovako

0.5V = 0MPa  (0 bara)
linearno
4.5V = 0.5MPa (5 bara)

na ADC kanalu citam ADC konverziju 0-5V (PIC 18F14K50) i to prikazujem na LCD

moje pitanje je kojom matematikom da dobijem korektan rezultat npr. 0.0-5.0bara

deo CODE za citanje ADC kanala (0-5V je ovako i to je OK

       adc_rez = citaj_ADC_CH();
       
       adc_rez = (adc_rez * 49) / 100 ;

       dig1 = adc_rez / 100;// Calculate digit1
       dig2 = (adc_rez - dig1 * 100) / 10;// Calculate digit2
       dig3 = adc_rez - (dig1 * 100 + dig2 * 10);// Calculate digit3


       poz_lcd(1,0);
       data_lcd(dig1 + 48);
       data_lcd(dig2 + 48);
       data_lcd(dig3 + 48);
Reply
#2
Matematika ti je izuzetno prosta za to sto ti treba. Prema tvojim zahtevima pritisak dobijas na sledeci nacin:
Pritisak = (NaponAD - 0.5) / 8
NaponAD je napon koji se dobija konverzijom ocitanih AD jedinica u volte. Ako ti je AD konvertor rezolucuje 12 bit-a, a referntni napon je 5V, onda je:
NaponAD = AD * 5 / 4095
gde AD predstavljaju ocitane AD jedinice.

Pozdrav
Reply
#3
ADC je 10bit-a pa predpostavljam da je ovako

NaponAD = AD * 5 / 1023
Reply
#4
Jeste. Prva jednacina daje rezultat u MPa. Pomnozi je sa 10 ako zelis rezultat u bar. Takodje pazi kako implementiras ove jednacine. To bi trebalo sve da se radi preko floating point aritmetike. Sve promenljive koje su tipa int ili unsigned int, eksplicitnom konverzijom prebaci floatin point. Npr.
NaponAD = (float)AD * 5.0 / 1023.0;

Pozdrav
Reply
#5
@vojinilic

sa malim zakasnjenjem hvala za pomoc sve ukapirao i probao radi ok.

vojinilicvojinilic
Reply
#6
Nema na cemu, i drugi put. Ako mogu da pomognem, tu sam.

Pozdrav.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)