Hola a todos.
Tengo un sensor de humedad HIH-4030 + PIC 16F877A, estoy programando en CCS pero e tenido errores ya que en el LCD se muestran valores que no corresponden con lo que muestra el datasheet. Aquí les muestro el código, estoy utilizando conversión de 8 bits.
Aqui les muestro la formula que creo es la que hay que utilizar ya que la vi en el datasheet
(Vout - 0.958)/ 0.0307)
Ademas les muestro el datasheet.
Tengo un sensor de humedad HIH-4030 + PIC 16F877A, estoy programando en CCS pero e tenido errores ya que en el LCD se muestran valores que no corresponden con lo que muestra el datasheet. Aquí les muestro el código, estoy utilizando conversión de 8 bits.
Aqui les muestro la formula que creo es la que hay que utilizar ya que la vi en el datasheet
(Vout - 0.958)/ 0.0307)
Ademas les muestro el datasheet.
Código:
#include <HUMEDAD.h>
#include <LCD.c>
void main()
{
lcd_init();
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
//setup_pp(PMP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
//TODO: User Code
int8 humedad,medicion;
printf(LCD_PUTC, "\f"); //borra lcd
lcd_gotoxy(1,1);
printf(LCD_PUTC, "humedad");
delay_ms(2000);
printf(LCD_PUTC, "\f");
lcd_gotoxy(1,1);
printf(LCD_PUTC, "RH:");
delay_ms(2000);
while (true){
lcd_gotoxy(1,1);
printf(LCD_PUTC, "");
set_adc_channel (0); // Elige canal a medir RA0
delay_us (10);
medicion=read_adc (); // Hace conversión AD
humedad=(((medicion - 0.958)/ 0.0307)/255); // Operacion de conversion
printf(lcd_putc,"%u",humedad); // xxx.x °C
delay_ms (1000);
}
}
Adjuntos
Última edición por un moderador: