Electgpl

PIC - Medidor V A W Ah

Oct 31st, 2015
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.19 KB | None | 0 0
  1. #include <16F883.h>
  2. #device adc=10
  3. #use delay(int=4000000)
  4. #include <LCD.C>
  5. void main(){
  6.    setup_adc_ports(sAN0|sAN1|VSS_VDD);
  7.    setup_adc(ADC_CLOCK_DIV_2);
  8.    lcd_init();
  9.    int i;
  10.    int16 currentADC, voltajeADC;
  11.    float current, voltaje, power, currentHr, currentInc;
  12.    while(TRUE){
  13.       for(i=0;i<10;i++){
  14.          set_adc_channel(0);
  15.          delay_us(10);
  16.          currentADC=read_adc();
  17.          set_adc_channel(1);
  18.          delay_us(10);
  19.          voltajeADC=read_adc();      
  20.          current=(5.0*currentADC/1023.0)/1.6665;
  21.          voltaje=((5.0*voltajeADC/1023.0)/0.151)-(current/10);
  22.          power=voltaje*current;
  23.          currentHr=current/3600.0;
  24.          delay_ms(100);
  25.       }  
  26.       lcd_gotoxy(1,1);      
  27.       if(voltaje>9.999)
  28.          printf(lcd_putc," %02.2fV %02.3fA ",voltaje,current);
  29.       else              
  30.          printf(lcd_putc,"  %02.2fV %02.3fA",voltaje,current);    
  31.       lcd_gotoxy(1,2);
  32.       currentInc = currentInc + currentHr;
  33.       if(power>9.999)
  34.          printf(lcd_putc," %02.2fW %02.3fAh ",power,currentInc);  
  35.       else              
  36.          printf(lcd_putc,"  %02.2fW %02.3fAh",power,currentInc);        
  37.    }  
  38. }
Advertisement
Add Comment
Please, Sign In to add comment