با سلام بر مهندسین
این پروژه برای سنسور dht22 هست! که مشکل در نمایش دما و رطوبت داره!!
در سطر اول lcd باید مقدار دما به سانتی گراد یعنی حرف c باید کنار عدد باشد و در سطر دوم باید مقدار رطوبیت به درصد را نشان بدهد !! الان مشکل اش این هست که سطر اول یعنی دما نشان نمی دهد و سطر دوم یعنی رطوبت نشان میدهد!! کسی می داند علت اش از چی هست؟
سپاس
این پروژه برای سنسور dht22 هست! که مشکل در نمایش دما و رطوبت داره!!
در سطر اول lcd باید مقدار دما به سانتی گراد یعنی حرف c باید کنار عدد باشد و در سطر دوم باید مقدار رطوبیت به درصد را نشان بدهد !! الان مشکل اش این هست که سطر اول یعنی دما نشان نمی دهد و سطر دوم یعنی رطوبت نشان میدهد!! کسی می داند علت اش از چی هست؟
کد:
Project : Version : Date : 05/30/2015 Author : Company : Comments: Chip type : ATmega8A Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *******************************************************/ // DHT22 humidity and Temprature sensor & USART Project #include <mega8.h> #include <delay.h> #include <stdio.h> #include <alcd.h> #include "DHT22.h" void main(void) { float temperature,humidity; char str[10],str2[10],temp[10],hum[10]; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x08; UCSRC=0x06; UBRRH=0x00; UBRRL=0x33; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; lcd_init(16); lcd_gotoxy(0,0);//انتخاب سطر اول،برای ثابت ماند ارور روی ال سی دی lcd_putsf("please wait.."); //متن مورد نظر شما delay_ms(3000); // سه ثانیه تاخیر lcd_clear(); //دستور پاک سازی ال سی دی while (1) { if(dht22_read(&temperature,&humidity) == 0) { lcd_gotoxy(0,0);//انتخاب سطر اول،برای ثابت ماند ارور روی ال سی دی lcd_putsf("DHT22 ERROR "); } else { ftoa(temperature,1,temp); //sprintf(str,"Temp=%s",buff); //putsf("Temp ="); //puts(str); ftoa(humidity,1,hum); sprintf(str,"Temp=%s C",temp); sprintf(str2,"Hum=%s %%",hum); //putsf("Hum ="); lcd_gotoxy(0,0); //انتخاب سطر اول ال سی دی lcd_puts(str); //نمایش دما lcd_gotoxy(0,1); //انتخاب سر دوم ال سی دی lcd_puts(str2); //نمایش رطوبت } delay_ms(2000); //مدت زمان تاخیر برای خواندن مجدد سنسور } }
دیدگاه