جستجو برای:
سبد خرید 0
  • Home
  • weblog
    • electronic
      • hardware
      • Integrated Circuit
      • microcontroller
      • knowledge base
      • PCB
      • book
    • power electronic
    • mechanics & aerospace
      • Exercise
      • CFD
    • computer
      • matlab
  • Courses
    • Power Engineering
    • Altium Designer
    • image processing
    • raspberry
  • shop
    • electronic
  • Cart
  • Payment
  • Contact US

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • فقط تلگرام و واتس آپ : 09374187582
  • octacore.ir[at]gmail.com
perm_identity
سبد خرید 0
0
هشت هسته
  • Home
  • weblog
    • electronic
      • hardware
      • Integrated Circuit
      • microcontroller
      • knowledge base
      • PCB
      • book
    • power electronic
    • mechanics & aerospace
      • Exercise
      • CFD
    • computer
      • matlab
  • Courses
    • Power Engineering
    • Altium Designer
    • image processing
    • raspberry
  • shop
    • electronic
  • Cart
  • Payment
  • Contact US
ورود و ثبت نام

وبلاگ

هشت هسته > weblog > electronic > microcontroller > AVR > راه اندازی سنسور دما و رطوبت dht11

راه اندازی سنسور دما و رطوبت dht11

access_timeشهریور 13, 1399
perm_identity ارسال شده توسط مهدی
folder_open AVR ، electronic ، weblog
visibility 93 بازدید

سنسور dht11 یه سنسور پر کاربرد برای اندازه گیری دما و رطوبت محیط هستش که چند وقتی هستش بین مهندسان ایرانی جا افتاده و به دلیل سهولت در استفاده و قیمت پایین اون در پروژه های زیادی مورد استفاده قرار میگیره.

تو این قسمت آموزش کار با سنسور dht11تهیه شده و کتابخونه ی آن را برای کدویژن مینویسیم.
این سنسور برای اندازه گیری دما و رطوبت در کارهای معمولی،پرکاربرد میباشد.

در شکل فوق نحوه ی اتصالات آنرا مشاهده میکنیم. برای ارتباط با میکرو تنها یک پین لازم دارد.
عملکرد سنسور به این صورت میباشد که برای شروع ارتباط با آن ابتدا باید خط
DATAرا به مدت 02میلی ثانیه صفر کنیم تا سنسور متوجه درخواست شود سپس پین را به حالت یک منطقی تبدیل میکنیم و منتظر دریافت پاسخ از سنسور میمانیم.

سنسور در پاسخ، پنج بایت یعنی 02بیت برای ما ارسال میکند.
بایت اول مقدار رطوبت بوده، بایت دوم مقدارش صفر میباشد، بایت سوم مقدار دما بوده، بایت چهارم مقدارش صفر است، بایت پنجم مقدار مجموع چهار بایت قبلی میباشد که بوسیله آن میتوانیم از صحت دیتای دریافتی اطمینان داشته باشیم.

سنسور قبل از ارسال هر بیت خط را به مدت 40میکروثانیه صفر میکند.سپس خط یک میشود.

اگر مدت زمانی که خط یک میماند 00 میکروثانیه باشد مقدار بیت ارسالی صفر است و اگر خط به مدت 02 میکرو ثانیه یک باشد یعنی مقدار بیت دریافتی یک منطقی است.

از قوانین فوق استفاده میکنیم و کتابخانه ی سنسور را در بوسیله ی سه تابع مینویسیم.

تابع درخواست ()Request :

1
2
3
4
5
6
void Request(void)}
DDRD |= (1<<6);
PORTD &= ~(1<<6);
delay_ms(20);
PORTD |= (1<<6);
{

خط دیتا را به پین  6پورت  Dزدیم در مگا32
ابتدا پین رو خروجی کردیم، سپس خط رو به مدت  20 میلی ثانیه صفر
کردیم تا درخواست مشاهده شود. سپس خط رو یک کردیم.
تابع دریافت جواب سنسور:

1
2
3
4
5
6
void Response)({
DDRD &= ~(1<<6);
while(PIND & (1<<6));
while((PIND & (1<<6))==0);
while(PIND & (1<<6));
}

برای دریافت جواب ابتدا پین را ورودی کردیم که بتوانیم آنرا بخوانیم.
در خط دو منتظر میمانیم تا سنسور پین را صفر کند .
سیستم به مدت
20 میکروثانیه در خط سوم منتظر میماند، سپس سنسور پین را یک میکند و به مدت 20 میکرو ثانیه در خط چهارم توقف میکنیم.
در این هنگام سنسور شروع به ارسال
4بایت میکند که بوسیله تابع زیر آنها را به راحتی دریافت میکنیم.
تابع دریافت جواب سنسور:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
unsigned char Receive_data()
{
while(cnt_bit<8){
cnt_bit++;
while((PIND & (1<<6))==0);
delay_us(30);
if(PIND & (1<<6)){
c=(c<<1)|(0x01);
}
else{
c=c<<1;
}
while(PIND & (1<<6));
}
cnt_bit=0;
return c; }

متغیر  cnt_bitاز قبل تعریف شده و شمارنده تعداد بیت های ارسالی در هر بایت هست.
برنامه ابتدا توقف میکند تا سنسور شروع به ارسال مقدار یک کند، سپس به مقدار  22میکروثانیه تاخیر ایجاد میشود،

اگر بعد از 22میکرو ثانیه باز مقدار یک رو خط شناسایی شود، یعنی بیت دریافتی 1هست،

در غیر این صورت صفر خواهد بود(بر اساس آنچه در ابتدا از عملکرد سنسور گفته شد).

در نهایت بعد از 0مرتبه دریافت بیت ها، یک بایت کامل میشود و به خروجی تابع میرود. نحوه و ترتیب استفاده از تئابع به صورت زیر است:

1
2
3
4
5
6
7
Request();
Response();
H= Receive_data();
H1= Receive_data();
T= Receive_data();
T1= Receive_data();
E= Receive_data();

مقادیر  Hو  Tرطوبت و دما خواهند بود که میتوانیم در طول برنامه از آن ها استفاده کنیم.
نکته: خط  dataکه از میکرو به سنسور متصل است باید توسط یک مقاومت  12کیلو پول آپ شود.

 

نکته: حداکثر فرکانس خواندن مقادیر سنسور 1هرتز است.
نکته: اگر جمع
0بایت ابتدایی که دریافت میشود با مقدار Eبرابر نباشد یعنی مقدار دریافتی صحیح نیست.
با استفاده از توابع فوق میتوانید توابع هارا برای هر میکرویی بازنویسی کنید.

این آموزش توسط جناب آقای خلیل آقایی توسط گروه گارد منتشر شده است.

اشتراک گذاری:
برچسب ها: dht11dht11 avrdht11 librarydht11 کدویژنآموزش سنسورراه اندازی dht11راه اندازی سنسور dht11 با avrراه اندازی سنسور با avrراه اندازی سنسور رطوبت با avrسنسور دماسنسور رطوبت
درباره مهدی

مهدی طالبی هستم ،مدرس وبسایت هشت هسته.. تو زمینه الکترونیک ، بعضی وقت ها هم توی علوم کامپیوتری و علوم دیگه براتون مطالب مفید میذارم.برای دیدن اطلاعات بیشتر از من اینجا کلیک کنید.

نوشته های بیشتر از مهدی
22 درصدتخفیف
post
تخفیف استثنائي فروشگاه هشت هسته ، پروگرامر stk500 با کمترین قیمت و بالاترین کیفیت ! 187 تومان
مشاهده محصول
مطالب زیر را حتما بخوانید
  • why FPGA

    124 بازدید

  • Image_Processing_By_Verilog

    145 بازدید

  • دانلود نسخه سالم نرم افزار HSPICE + آموزش نصب

    202 بازدید

  • Driving MCP4922_DAC By Verilog

    140 بازدید

  • معرفی نرم افزار کاربردی MDP Terminal

    128 بازدید

جدید تر نیروگاه بادی منفصل از شبکه
قدیمی تر شهرهای هوشمند و شبکه های برق

دیدگاهتان را بنویسید لغو پاسخ

قوانین ثبت دیدگاه

  • اگر امکان داره دیدگاهتون رو به صورت فینگلیش ننویسید!
  • لطفا دیدگاهتون متناسب با مطلب باشه!
  • لطفا دیدگاه تکراری ننویسید!
  • اگر سوالی هم دارید همین جا میتونید بپرسید و مشکلی نداره.

جستجو برای:
سرفصل مطالب سایت
  • biomedical engineering
  • hardware
    • article
    • Source Code
  • other
    • business
    • practical software
  • power electronic
  • software engineering
    • image processing
  • weblog
    • electronic
      • book
      • knowledge base
      • microcontroller
        • AVR
          • AVR Library
          • AVR Tutorial
      • PCB
      • programming
    • mechanics & aerospace
      • ariplane designe
      • book
      • Exercise
آخرین دیدگاه‌ها
  • Homa Zarei Zohdy در شهرهای هوشمند و شبکه های برق
  • Homa Zarei Zohdy در شهرهای هوشمند و شبکه های برق
  • Homa Zarei Zohdy در شهرهای هوشمند و شبکه های برق
  • japanese platform beds در شهرهای هوشمند و شبکه های برق
  • erotik در شهرهای هوشمند و شبکه های برق
آخرین مطالب
  • شهرهای هوشمند و شبکه های برق
  • راه اندازی سنسور دما و رطوبت dht11
  • نیروگاه بادی منفصل از شبکه
  • فشرده سازی تصاویر ثابت و متحرک (قسمت دوم )
  • روش های پیشنهادی برای کنترل ریزشبکه ها
دسترسی سریع به وبلاگ
  • electronic
  • mechanics & aerospace
  • biomedical engineering
اطلاعات تماس
  • location_on
    شماره تماس فقط برای ارتباط از طریق واتس آپ یا تلگرام میباشد.
  • phone_android
    09374187582
  • email
    octacore.ir@gmail.com
دسترسی به فروشگاه
  • فروشگاه
  • حساب کاربری من
  • پرداخت
  • سبد خرید
پیوندهای مفید
  • تماس با ما

 وبسایت هشت هسته ای با هدف توسعه علوم مهندسی توسط مجموعه ای از مهندسان تشکیل شده است.

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

ما رو حتما دنبال کنین ..

© تمام حقوق برای octacore.ir محفوظ است.کپی بدون ذکر منبع لینکدار مجاز نمیباشد.
keyboard_arrow_up