چراغ پلیس
دومین پروژهای که در این مسیر انجام خواهیم داد، ساخت یک چراغ پلیس با استفاده از میکروکنترلر ATmega32 است. در این پروژه، از 4 LED آبی و 4 LED قرمز استفاده میکنیم که به صورت متناوب و با الگوی خاصی روشن و خاموش میشوند. هدف این پروژه آشنایی با نحوه کار با چندین پایه خروجی و کنترل زمانبندی برای ایجاد الگوهای پیچیدهتر برای روشن و خاموش کردن LEDها است.
موارد مورد نیاز:
– میکروکنترلر ATmega32
– 4 LED آبی
– 4 LED قرمز
– مقاومت (برای محدود کردن جریان LED)
– برد بورد و سیمهای اتصال
در این پروژه، با استفاده از برنامهنویسی ATmega32 و کنترل زمانهای تاخیر، میتوانید یک الگوی چشمک زن مشابه به چراغهای پلیس واقعی بسازید. LEDهای آبی و قرمز به صورت متناوب روشن و خاموش میشوند و شما میتوانید این الگوها را تغییر دهید تا نمایشی جذاب و پویا از چراغ پلیس داشته باشید.
#include
#include
int time1 = 100;
int time2 = 300;
void main(void)
{
DDRA = 255 ;
while (1)
{
PORTA = 0XF0 ; delay_ms(time1);PORTA = 0X00 ;delay_ms(time1); PORTA = 0XF0 ; delay_ms(time1);PORTA = 0X00 ;
delay_ms(time2);
PORTA = 0X0F ; delay_ms(time1);PORTA = 0X00 ;delay_ms(time1); PORTA = 0X0F ; delay_ms(time1);PORTA = 0X00 ;
delay_ms(time2);
}
}
این کد برای پروژه چراغ پلیس با استفاده از میکروکنترلر ATmega32 نوشته شده است. در این پروژه، از 8 پایه میکروکنترلر (پایههای PORTA) برای کنترل 4 LED آبی و 4 LED قرمز استفاده میشود. برنامه به گونهای طراحی شده که LEDها به صورت متناوب و با الگوهای مختلف روشن و خاموش میشوند. در این کد، ابتدا تمام پایههای PORTA به عنوان خروجی تنظیم میشوند (`DDRA = 255`). سپس در داخل یک حلقه بیپایان، ابتدا 4 LED قرمز و سپس 4 LED آبی به صورت چشمک زن روشن و خاموش میشوند. برای تنظیم مدت زمان روشن بودن هر LED، از دو متغیرtime1 time2 استفاده میشود که به ترتیب برای تنظیم زمان روشن و خاموش شدن هر گروه LED استفاده میشوند. این کد نمایی ساده از عملکرد چراغ پلیس با استفاده از میکروکنترلر ATmega32 ایجاد میکند.