- Jun 6, 2020
- 11,593
- 4,508
[H1]
[H3]سنسور رطوبت با استفاده از 8051 (نم سنج)[/H3]
این پروژه در مورد یک سنسور ساده رطوبت مبتنی بر میکروکنترلر 8051 است. سنسور رطوبت نیز رطوبت سنج نامیده می شود. این مدار می تواند رطوبت نسبی (RH) را از 20% تا 95% با دقت 5% حس کند. اطلاعات رطوبت روی یک صفحه نمایش LCD 16×2 نمایش داده می شود. یک رله نیز در نظر گرفته شده است که زمانی فعال می شود که رطوبت از یک نقطه ترمز خاص عبور کند. مدار کار می کند و نصب آن بسیار آسان است. DHT11 سنسور رطوبت مورد استفاده در اینجا است. جزئیات و عملکرد سنسور رطوبت DHT11 در زیر آورده شده است.
[H4]سنسور رطوبت DHT11.[/H4]
DHT11 یک سنسور دمای کم هزینه رطوبت است که دارای خروجی دیجیتال است. برای سنجش رطوبت از روش خازنی و برای اندازه گیری دما از ترمیستور استفاده می شود. سنسور می تواند رطوبت نسبی 20% تا 95% را با وضوح 5% حس کند. اندازه گیری دما تا 50 درجه سانتی گراد در وضوح 2 درجه سانتی گراد است. ارتباط با میکروکنترلر از طریق یک سیم می باشد. طرح اصلی ارتباط در تصویر زیر آورده شده است.
ارتباط رفت و برگشت با سنسور DHT11 بسیار آسان است. پایه 2 DHT11 به پایه پورت میکروکنترلر متصل است. طرح اتصال در تصویر زیر نشان داده شده است. پین داده (pin2) DHT11 به یک مقاومت پول آپ خارجی 10K نیاز دارد.
پروتکل ارتباطی به صورت زیر توضیح داده شده است. MCU (واحد میکروکنترلر) ابتدا یک سیگنال کم با عرض 18 میلی ثانیه به DHT11 ارسال می کند. پس از این سیگنال، MCU خط ارتباطی را بالا می کشد و منتظر پاسخ DHT11 می ماند. تا 2. تا 40uS طول می کشد. سپس DHT11 خط ارتباطی را پایین می کشد و آن را برای 80uS پایین نگه می دارد. سپس DHT11 خط را بالا می کشد و آن را برای 80uS بالا نگه می دارد. سپس DHT خط را برای 50uS پایین می کشد و پالس بالاتر بعدی اولین بیت داده خواهد بود. داده ها به صورت پشت سر هم 8 بیتی ارسال می شوند. هر پالس بالای انفجار یک سیگنال داده را نشان می دهد.
سیگنال های پایین 50uS بین بیت های داده فقط فاصله دهنده هستند. منطق بیت داده با اندازه گیری عرض آن مشخص می شود. پالس عریض 26 تا 28 uS نشان دهنده "LOW" و 70uS پهن نشان دهنده "بالا" است. به زبان ساده، پالس باریکتر از 50uS را می توان به عنوان "LOW" و بازتر از 50us را می توان به عنوان "HIGH" در نظر گرفت. 8 بیت اول اطلاعات پشت سر هم مقدار انتگرال رطوبت نسبی، 8 بیت دوم مقدار اعشار رطوبت نسبی، 8 بیت سوم مقدار انتگرال داده دما و 8 بیت آخر نشان دهنده مقدار اعشار است. از داده های دما، برای DHT11 مقادیر اعشاری همیشه صفر هستند و ما فقط در این پروژه رطوبت نسبی را اندازه گیری می کنیم. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است.
نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. 8 بیت دوم نشان دهنده مقدار اعشاری رطوبت نسبی است، 8 بیت سوم نشان دهنده مقدار انتگرال داده های دما، و 8 بیت آخر نشان دهنده مقدار اعشاری داده های دما هستند، برای DHT11 مقادیر اعشاری همیشه صفر هستند و ما در حال اندازه گیری هستیم. رطوبت نسبی فقط در این پروژه. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. 8 بیت دوم نشان دهنده مقدار اعشاری رطوبت نسبی است، 8 بیت سوم نشان دهنده مقدار انتگرال داده های دما، و 8 بیت آخر نشان دهنده مقدار اعشاری داده های دما هستند، برای DHT11 مقادیر اعشاری همیشه صفر هستند و ما در حال اندازه گیری هستیم. رطوبت نسبی فقط در این پروژه. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است.
سنسور رطوبت DHT11 به P3.1 میکروکنترلر 8051 متصل است. R8 خط ارتباطی بین DHT11 و 8051 را بالا می کشد. رله با استفاده از P2.0 میکروکنترلر هدایت می شود. ترانزیستور Q1 رله را سوئیچ می کند. R0 یک مقاومت کششی است و R7 جریان پایه Q1 را محدود می کند. D5 فقط یک دیود چرخ آزاد است. خطوط داده نمایشگر LCD به پورت 0 میکروکنترلر متصل شده است. خطوط کنترل RS، R/E و E به ترتیب به پایه های P2.7، P2.6 و P2.5 میکروکنترلر متصل می شوند. R4 کنتراست نمایشگر را تنظیم می کند. R5 جریان را از طریق LED چراغ پشتی محدود می کند. C9 یک خازن بای پس است. C8، C10 و X1 با مدار ساعت مرتبط هستند. C11، R6 و S2 مدار تنظیم مجدد را تشکیل می دهند.
[H4]کدها.[/H4]
[H4]در مورد برنامه[/H4]
پین خروجی داده DHT11 به P3.5 میکروکنترلر متصل است. در شروع حلقه اصلی، P3.5 بالا نگه داشته می شود. سپس کم می شود و روتین تاخیر 18 میلی ثانیه (DELAY1) فراخوانی می شود. سپس P3.5 بالا ساخته می شود. این اولین سیگنال شروع عریض 18 میلیثانیه برای DHT11 را تشکیل میدهد. حالا خط ارتباطی بالاست و میکروکنترلر وضعیت این خط را نظرسنجی می کند و آنجا منتظر می ماند تا کم شود. هنگامی که DHT11 سیگنال پاسخ را ارسال می کند، کم می شود. سپس میکروکنترلر منتظر سیگنال پاسخ دوم است که سیگنال بالایی است. هنگامی که این سیگنال بالا دریافت می شود، میکروکنترلر منتظر سیگنال پایین بعدی است و پس از این سیگنال کم، انتقال داده آغاز می شود.
قبلاً اشاره شد که هر بیت داده با یک سیگنال بالا نشان داده می شود و عرض آن منطق را تعیین می کند. بنابراین زمانی که میکروکنترلر یک پالس داده دریافت می کند، Timer1 راه اندازی می شود و برنامه در آنجا منتظر می ماند تا پالس داده ناپدید شود. سپس تایمر متوقف می شود. اکنون رجیستر پایین TL1 یعنی Timer1 شامل عرض پالس داده است. سپس عرض با کم کردن 50 از تعداد TL1 با 50 مقایسه می شود. اگر پرچم حمل (PSW.7) تنظیم شده باشد به این معنی است که عرض کمتر از 50uS است و اگر پرچم حمل تنظیم نشده باشد به این معنی است که عرض از 50uS بیشتر است.
اگر عرض کمتر از 50uS باشد، نشان دهنده سیگنال کم است و ACC.0 پاک شده است. اگر عرض بیشتر از 50uS باشد، سیگنال بالا را نشان می دهد و ACC.0 تنظیم شده است. سپس ثبات TL1 و بیت PSW.7 پاک می شوند. سپس LOOP 8 بار تکرار می شود و انباشت کننده در شروع هر تکرار به چپ می چرخد. دستورالعمل چرخش به چپ (RL) استفاده می شود زیرا در طول هر تکرار فقط ACC.0 را به روز می کنید و باید آن بیت را قبل از به روز رسانی بعدی ذخیره کنید. این با تغییر هر بار به چپ به دست می آید.
آخرین به روز رسانی ACC.0 نیازی به تغییر موقعیت ندارد زیرا در جای درستی قرار دارد که قرار است باشد. این دلیل پشت قرار دادن دستورالعمل RL A در ابتدای حلقه است. پس از هشتمین تکرار، LOOP بدون چرخش انباشته خارج می شود. در حال حاضر محتوای آکومولاتور برابر است با مقدار انتگرال رطوبت نسبی فعلی بر حسب درصد.
سپس زیربرنامه DINT برای مقداردهی اولیه نمایشگر فراخوانی می شود. سپس زیربرنامه TEXT1 فراخوانی می شود که "Hygrometer" را نمایش می دهد. سپس زیر روال LINE2 برای تغییر مکان نما به خط دوم فراخوانی می شود. سپس زیر روال HMDTY برای نمایش مقدار رطوبت بر حسب درصد فراخوانی می شود. سپس زیر روال CHECK برای بررسی اینکه آیا مقدار رطوبت بالاتر یا کمتر از 65 درصد است فراخوانی می شود. اگر رطوبت بالای 65 درصد باشد رله فعال می شود و در غیر این صورت رله غیرفعال می شود. زیربرنامه تاخیر 2S DELAY2 نامیده می شود. 2 ثانیه تأخیر داده می شود زیرا می توانید فقط هر 2 ثانیه یک بار از DHT11 ریدینگ بگیرید. این همچنین باعث پایداری نمایشگر می شود. سپس برنامه به برچسب MAIN می رود و کل فرآیند تکرار می شود.
سنسور رطوبت با استفاده از 8051
[/H1][H3]سنسور رطوبت با استفاده از 8051 (نم سنج)[/H3]
این پروژه در مورد یک سنسور ساده رطوبت مبتنی بر میکروکنترلر 8051 است. سنسور رطوبت نیز رطوبت سنج نامیده می شود. این مدار می تواند رطوبت نسبی (RH) را از 20% تا 95% با دقت 5% حس کند. اطلاعات رطوبت روی یک صفحه نمایش LCD 16×2 نمایش داده می شود. یک رله نیز در نظر گرفته شده است که زمانی فعال می شود که رطوبت از یک نقطه ترمز خاص عبور کند. مدار کار می کند و نصب آن بسیار آسان است. DHT11 سنسور رطوبت مورد استفاده در اینجا است. جزئیات و عملکرد سنسور رطوبت DHT11 در زیر آورده شده است.
[H4]سنسور رطوبت DHT11.[/H4]
برای دیدن لینک ها باید ثبت نام کنید
[/URL]DHT11 یک سنسور دمای کم هزینه رطوبت است که دارای خروجی دیجیتال است. برای سنجش رطوبت از روش خازنی و برای اندازه گیری دما از ترمیستور استفاده می شود. سنسور می تواند رطوبت نسبی 20% تا 95% را با وضوح 5% حس کند. اندازه گیری دما تا 50 درجه سانتی گراد در وضوح 2 درجه سانتی گراد است. ارتباط با میکروکنترلر از طریق یک سیم می باشد. طرح اصلی ارتباط در تصویر زیر آورده شده است.
برای دیدن لینک ها باید ثبت نام کنید
ارتباط رفت و برگشت با سنسور DHT11 بسیار آسان است. پایه 2 DHT11 به پایه پورت میکروکنترلر متصل است. طرح اتصال در تصویر زیر نشان داده شده است. پین داده (pin2) DHT11 به یک مقاومت پول آپ خارجی 10K نیاز دارد.
برای دیدن لینک ها باید ثبت نام کنید
پروتکل ارتباطی به صورت زیر توضیح داده شده است. MCU (واحد میکروکنترلر) ابتدا یک سیگنال کم با عرض 18 میلی ثانیه به DHT11 ارسال می کند. پس از این سیگنال، MCU خط ارتباطی را بالا می کشد و منتظر پاسخ DHT11 می ماند. تا 2. تا 40uS طول می کشد. سپس DHT11 خط ارتباطی را پایین می کشد و آن را برای 80uS پایین نگه می دارد. سپس DHT11 خط را بالا می کشد و آن را برای 80uS بالا نگه می دارد. سپس DHT خط را برای 50uS پایین می کشد و پالس بالاتر بعدی اولین بیت داده خواهد بود. داده ها به صورت پشت سر هم 8 بیتی ارسال می شوند. هر پالس بالای انفجار یک سیگنال داده را نشان می دهد.
سیگنال های پایین 50uS بین بیت های داده فقط فاصله دهنده هستند. منطق بیت داده با اندازه گیری عرض آن مشخص می شود. پالس عریض 26 تا 28 uS نشان دهنده "LOW" و 70uS پهن نشان دهنده "بالا" است. به زبان ساده، پالس باریکتر از 50uS را می توان به عنوان "LOW" و بازتر از 50us را می توان به عنوان "HIGH" در نظر گرفت. 8 بیت اول اطلاعات پشت سر هم مقدار انتگرال رطوبت نسبی، 8 بیت دوم مقدار اعشار رطوبت نسبی، 8 بیت سوم مقدار انتگرال داده دما و 8 بیت آخر نشان دهنده مقدار اعشار است. از داده های دما، برای DHT11 مقادیر اعشاری همیشه صفر هستند و ما فقط در این پروژه رطوبت نسبی را اندازه گیری می کنیم. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است.
نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. 8 بیت دوم نشان دهنده مقدار اعشاری رطوبت نسبی است، 8 بیت سوم نشان دهنده مقدار انتگرال داده های دما، و 8 بیت آخر نشان دهنده مقدار اعشاری داده های دما هستند، برای DHT11 مقادیر اعشاری همیشه صفر هستند و ما در حال اندازه گیری هستیم. رطوبت نسبی فقط در این پروژه. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. 8 بیت دوم نشان دهنده مقدار اعشاری رطوبت نسبی است، 8 بیت سوم نشان دهنده مقدار انتگرال داده های دما، و 8 بیت آخر نشان دهنده مقدار اعشاری داده های دما هستند، برای DHT11 مقادیر اعشاری همیشه صفر هستند و ما در حال اندازه گیری هستیم. رطوبت نسبی فقط در این پروژه. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است. بنابراین ما باید فقط نگران 8 بیت اول داده باشیم، که بخشی جدایی ناپذیر از داده های رطوبت نسبی است. نمودار مدار سنسور رطوبت در تصویر زیر نشان داده شده است.
برای دیدن لینک ها باید ثبت نام کنید
سنسور رطوبت DHT11 به P3.1 میکروکنترلر 8051 متصل است. R8 خط ارتباطی بین DHT11 و 8051 را بالا می کشد. رله با استفاده از P2.0 میکروکنترلر هدایت می شود. ترانزیستور Q1 رله را سوئیچ می کند. R0 یک مقاومت کششی است و R7 جریان پایه Q1 را محدود می کند. D5 فقط یک دیود چرخ آزاد است. خطوط داده نمایشگر LCD به پورت 0 میکروکنترلر متصل شده است. خطوط کنترل RS، R/E و E به ترتیب به پایه های P2.7، P2.6 و P2.5 میکروکنترلر متصل می شوند. R4 کنتراست نمایشگر را تنظیم می کند. R5 جریان را از طریق LED چراغ پشتی محدود می کند. C9 یک خازن بای پس است. C8، C10 و X1 با مدار ساعت مرتبط هستند. C11، R6 و S2 مدار تنظیم مجدد را تشکیل می دهند.
[H4]کدها.[/H4]
محتوای این بلوک پنهان فقط برای کاربر فعال, کاربر ویژه, کاربر ویژه برنزی الکترونیک, کاربر ویژه طلایی الکترونیک, کاربر ویژه نقره ای الکترونیک, کاربر ویژه پلاس الکترونیک قابل مشاهده است.
[H4]در مورد برنامه[/H4]
پین خروجی داده DHT11 به P3.5 میکروکنترلر متصل است. در شروع حلقه اصلی، P3.5 بالا نگه داشته می شود. سپس کم می شود و روتین تاخیر 18 میلی ثانیه (DELAY1) فراخوانی می شود. سپس P3.5 بالا ساخته می شود. این اولین سیگنال شروع عریض 18 میلیثانیه برای DHT11 را تشکیل میدهد. حالا خط ارتباطی بالاست و میکروکنترلر وضعیت این خط را نظرسنجی می کند و آنجا منتظر می ماند تا کم شود. هنگامی که DHT11 سیگنال پاسخ را ارسال می کند، کم می شود. سپس میکروکنترلر منتظر سیگنال پاسخ دوم است که سیگنال بالایی است. هنگامی که این سیگنال بالا دریافت می شود، میکروکنترلر منتظر سیگنال پایین بعدی است و پس از این سیگنال کم، انتقال داده آغاز می شود.
قبلاً اشاره شد که هر بیت داده با یک سیگنال بالا نشان داده می شود و عرض آن منطق را تعیین می کند. بنابراین زمانی که میکروکنترلر یک پالس داده دریافت می کند، Timer1 راه اندازی می شود و برنامه در آنجا منتظر می ماند تا پالس داده ناپدید شود. سپس تایمر متوقف می شود. اکنون رجیستر پایین TL1 یعنی Timer1 شامل عرض پالس داده است. سپس عرض با کم کردن 50 از تعداد TL1 با 50 مقایسه می شود. اگر پرچم حمل (PSW.7) تنظیم شده باشد به این معنی است که عرض کمتر از 50uS است و اگر پرچم حمل تنظیم نشده باشد به این معنی است که عرض از 50uS بیشتر است.
اگر عرض کمتر از 50uS باشد، نشان دهنده سیگنال کم است و ACC.0 پاک شده است. اگر عرض بیشتر از 50uS باشد، سیگنال بالا را نشان می دهد و ACC.0 تنظیم شده است. سپس ثبات TL1 و بیت PSW.7 پاک می شوند. سپس LOOP 8 بار تکرار می شود و انباشت کننده در شروع هر تکرار به چپ می چرخد. دستورالعمل چرخش به چپ (RL) استفاده می شود زیرا در طول هر تکرار فقط ACC.0 را به روز می کنید و باید آن بیت را قبل از به روز رسانی بعدی ذخیره کنید. این با تغییر هر بار به چپ به دست می آید.
آخرین به روز رسانی ACC.0 نیازی به تغییر موقعیت ندارد زیرا در جای درستی قرار دارد که قرار است باشد. این دلیل پشت قرار دادن دستورالعمل RL A در ابتدای حلقه است. پس از هشتمین تکرار، LOOP بدون چرخش انباشته خارج می شود. در حال حاضر محتوای آکومولاتور برابر است با مقدار انتگرال رطوبت نسبی فعلی بر حسب درصد.
سپس زیربرنامه DINT برای مقداردهی اولیه نمایشگر فراخوانی می شود. سپس زیربرنامه TEXT1 فراخوانی می شود که "Hygrometer" را نمایش می دهد. سپس زیر روال LINE2 برای تغییر مکان نما به خط دوم فراخوانی می شود. سپس زیر روال HMDTY برای نمایش مقدار رطوبت بر حسب درصد فراخوانی می شود. سپس زیر روال CHECK برای بررسی اینکه آیا مقدار رطوبت بالاتر یا کمتر از 65 درصد است فراخوانی می شود. اگر رطوبت بالای 65 درصد باشد رله فعال می شود و در غیر این صورت رله غیرفعال می شود. زیربرنامه تاخیر 2S DELAY2 نامیده می شود. 2 ثانیه تأخیر داده می شود زیرا می توانید فقط هر 2 ثانیه یک بار از DHT11 ریدینگ بگیرید. این همچنین باعث پایداری نمایشگر می شود. سپس برنامه به برچسب MAIN می رود و کل فرآیند تکرار می شود.