با سلام بر مهندسین
این پروژه برای سنسور 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); //مدت زمان تاخیر برای خواندن مجدد سنسور
}
}







;


دیدگاه