راه اندازی سنسور DHT22 در کدویژن

در این پروژه به کمک سنسور DHT22 (که تشکیل شده از یک سنسور رطوبت سنج و دماسنج با دقت بالا.) و میکروکنترول ATMEGA8a و مانیتور LCD 16X2  یک  دماسنج و رطوبت سنج راه اندازه کرده ایم .

سنسور DHT22 درون خود یک چیپ دارد که اطلاعات را بصورت دیجیتال فقط بر روی یک پایه برای میکروکنترلر ارسال می کنند.این سنسور می تواند دمایی مابین -40 تا 80 درجه سانتی گراد و همچنین  رطوبت 0 تا 100 درصد را اندازه بگیرید. به منظور خواندن اطلاعات از این سنسور کتابخانه ای طراحی کرده ایم تا با استفاده از آن در طراحی پروژه های مختلف فقط با فراخوانی کتابخانه ،اطلاعات سنسور را آنالیز کنیم.

 

پایه شماره 1 سنسور را به VCC (یا همان ولتاژ +5 بعد از رگولاتور) ، پایه DATA را به پایه شماره 6 میکرو و پایه شماره 4 را هم به GND یا زمین مدار وصل کنید.مقاومت 4.7 رو از پایه VCC به سمت پایه DATA سنسور وصل کنید .
 و همینطور یک خازن 104 به منظور نویز گیری به VCC و GND میکروکنترولر وصل کنید و در صورت امکان یک خازن 104 نیز به پایه VCC و DATA سنسور هم وصل کنید بعد کریستال داخلی میکرو را بروی 8 مگاهرتز تنظیم کنید.
رطوبت سنج هر یک ثانیه یک بار اطلاعات را به میکرو ارسال می کند، لذا در برنامه هر 2 ثانیه یک بار دما و رطوبت را آنالیز می کنیم.

 قسمت کدویژن

اکنون با استفاده از کد ویزارد یک پروژه جدید با LCD کاراکتری ایجاد کنید.دقت داشته باشید که پایه D.4 میکرو در اختیار سنسور گذاشته خواهد شد.بعد از ذخیره پروژه، فایل کتابخانه (که می توانید از انتهای پست دانلود کنید) را درون پوشه پروژه کپی کنید.

حال در هر قسمت برنامه که خواستید میتوانید با فراخوانی کتابخانه با استفاده از قطعه کد زیر مقدار دما و رطوبت آنالیز شده از سنسور توسط کتابخانه را درون دو متغیر ذخیره کنید.

 float temperature,humidity;
dht22_read(&temperature,&humidity); 

دقت داشته باشید که متغیر هایی که قرار است خروجی تابع در آن قرار بگیرد حتما از نوع اعشاری باشد.

اکنون با استفاه از کد زیر میتوان مقدار رطوبت و دما را بصورت مجزا بر روی یک LCD نمایش داد.

#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#include <alcd.h>
#include "DHT22.h"
void main(void)
{
float temperature,humidity;
char str[10],temp[10],hum[10];
lcd_init(16);
while (1)
{
if(dht22_read(&temperature,&humidity) == -40)
{
lcd_putsf("DHT22  ERROR");
}
else
{
ftoa(temperature,1,temp);
ftoa(humidity,1,hum);
sprintf(str,"Temp=%s,Hum=%s %",temp,hum);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(str);
}

delay_ms(2000);
}
}

دانلوذ فایل های پروژه

کتابخانه DHT22

فایل کدویژن


توسط

برچسب‌ها:

دیدگاه‌ها

4 پاسخ به “راه اندازی سنسور DHT22 در کدویژن”

  1. حیدر رضا جاسمی نیم‌رخ

    اصلا کار نمیده و اونی که نوشته اصلا برنامه نویسی بلد نبوده یا سرکاری

  2. حمیدرضا نیم‌رخ
    حمیدرضا

    برنامه در پروتئوس جواب نداد. مشکل کجاست؟

  3. پوريا امينايي نیم‌رخ
    پوريا امينايي

    این پروژه مشکل دارد و کار نمی کند

  4. شهروز نیم‌رخ
    شهروز

    سلام و عرض خسته نباشید
    برنامتون بسیار ساده و روان توضیحدادین که خیلیییییی عالی هست
    یه دنیا سپاس
    فقط من سنسور dht11 دارم و برنامتون مقادیر رو 0صفر نشون میده
    میشه تعغیراتی که برای سنسورdht11 تو برنامه بدمو بگین؟؟
    ممنونتون میشم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *