روشن خاموش کردن چراغ led با کلید
پروژه: روشن و خاموش کردن LED با کلید (Pull-Down) با ATmega32
در این پروژه، با استفاده از میکروکنترلر ATmega32، دو LED را با استفاده از یک کلید که به صورت Pull-Down متصل شده است، روشن و خاموش خواهیم کرد. در این پروژه، با فشار دادن کلید، LEDها روشن یا خاموش میشوند. این پروژه به شما کمک میکند تا با نحوه کار با ورودیها و خروجیها در میکروکنترلرها و همچنین استفاده از مقاومت Pull-Down برای جلوگیری از نوسانات ورودیها آشنا شوید.
موارد مورد نیاز:
– میکروکنترلر ATmega32
– 2 LED
– کلید Push Button
– مقاومت 10 کیلو اهم (برای کلید به عنوان Pull-Down)
– برد بورد و سیمهای اتصال
در این پروژه، کلید به صورت Pull-Downبه پایه ورودی میکروکنترلر متصل میشود و با فشار دادن آن، وضعیت LEDها تغییر میکند. با استفاده از میکروکنترلر ATmega32، میتوانید کنترل دقیقی بر روی وضعیت LEDها داشته باشید و این پروژه میتواند مبنای یادگیری نحوه تعامل با ورودیهای دیجیتال و خروجیهای LED در میکروکنترلر باشد.
#include
#include
void main(void)
{
DDRA.0 = 1;
DDRD.0 = 0;
DDRB.0 = 1;
while (1)
{ if (PIND.0 == 1){
PORTA.0 = ~PORTA.0;
while (PIND.0 == 1){}
}
PORTB.0 = 1 ;
delay_ms(30);
PORTB.0 = 0 ;
delay_ms(30);
}
}
در این کد، یک LED به پورت A0 و یک LED دیگر به پورت B0 متصل است. همچنین یک کلید به پورت D0 متصل شده که برای تغییر وضعیت LED اول (پورت A0) استفاده میشود. وقتی کلید فشرده میشود، وضعیت LED اول تغییر میکند و LED دوم دیگر چشمک نمیزند. مشکل این کد این است که وقتی کلید نگه داشته میشود، وارد یک حلقه میشود و منتظر میماند تا کلید رها شود. این باعث میشود که بقیه عملکردهای برنامه (مثل چشمک زدن LED دوم) متوقف شود و به درستی اجرا نشوند. برای رفع این مشکل، باید از روشهای غیر مسدودکننده استفاده کرد .