Hola a todos, tengo un problema ya que quise comenzar a aprender más de pic y comencé con algo sencillo, a usar el DHT11 y el código es el siguiente
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_ENABLE_PIN PIN_B3
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
//End LCD module connections
#include <18F4580.h>
#device adc=10
#FUSES NOMCLR,INTRC_IO,NOWDT, PUT, PROTECt
#use delay(clock=8000000)
//#BYTE TRISD = 0x95
//#use fast_io(D)
#include "DHT11.c"
#include <lcd.c>
void main()
{
unsigned char state = 0;
lcd_init();
DHT11_init();
lcd_gotoxy(6, 1); // Go to column 2 row 1
lcd_putc("SENSOR");
lcd_gotoxy(7, 2); // Go to column 1 row 2
lcd_putc("DHT11");
delay_ms(2000);
// trisd=0b0011;
while(true)
{
state = get_data();
lcd_putc("\f");
printf(lcd_putc,"\fNo hay sensor %3u ",state);
break;
}
case 3:
{
// printf(lcd_putc,"\fFaltan datos en la informacion");
//break;
printf(lcd_putc,"\fNo hay Datos");
break;
}
default:
{
lcd_gotoxy(2,1);
printf(lcd_putc,"Tmp *C: %3u.%01u \r\n" , values[2], values[3]);
lcd_gotoxy(2,2);
printf(lcd_putc,"R.H : %3u \r\n", values[0]);
lcd_gotoxy(7,2);
lcd_putc("%");
break;
}
}
delay_ms(1000);
}
}
el problema es que cuando lo conecto todo va bien pero me sale un segundo los valores y en otro me sale "no hay sensor", el mensaje que quise poner al no detectarlo, ya intenté mucho y no he podido,los valores si lo muestra pero repito, primero me salen los valores, luego se limpia la pantalla y me muestra el mensaje de error y vuelve a mostrar los valores, por favor ayuda!!!