روشن خاموش کردن چراغ 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
int shahin = 0;
void main(void)
{
DDRA.0 = 0;
DDRB.0 = 1;DDRB.7 = 1;
while (1)
{
if (PINA.0 == 1 && shahin == 0 ){PORTB.0 = ~PORTB.0; shahin = 1;}
if (PINA.0 == 0 && shahin == 1 ){ shahin = 0;}
PORTB.7 = ~PORTB.7;
delay_ms(100);
}
}
این کد برای کنترل دو LED با استفاده از یک کلید نوشته شده است. در اینجا، LED متصل به پورت B0 با فشردن کلید متصل به پورت A0 روشن و خاموش میشود و LED دیگر متصل به پورت B7 به صورت چشمک زن با تاخیر 100 میلیثانیه روشن و خاموش میشود. در این کد از متغیر `shahin` برای پیگیری وضعیت کلید استفاده میشود. وقتی کلید فشرده میشود، LED اول تغییر وضعیت میدهد و پس از رها کردن کلید، وضعیت متغیر `shahin` به حالت اولیه برمیگردد. برخلاف کد قبلی، این کد در حلقه اصلی گیر نمیکند، زیرا با استفاده از وضعیت متغیر `shahin`، برنامه میتواند به طور مداوم به سایر عملیاتها (مثل چشمک زدن LED دوم) پرداخته و از مسدود شدن کد جلوگیری کند. برای بهبود بیشتر، میتوان از تکنیکهای پیشرفتهتری مانند وقفهها برای کنترل بهتر وضعیت کلید استفاده کرد.