فهرست بستن

هفتمین پروژه: چراغ راهنمایی

چراغ راهنمایی

پروژه:کنترل چراغ راهنمایی رانندگی با دو سون سگمنت و ATmega32

در این پروژه، با استفاده از میکروکنترلر ATmega32، دو سون سگمنت و شش LED (دو سبز، دو قرمز و دو زرد)، یک سیستم چراغ راهنمایی رانندگی طراحی و پیاده‌سازی خواهیم کرد.

هدف این پروژه نمایش زمان‌بندی تغییر وضعیت چراغ‌ها روی سون سگمنت‌ها و کنترل ترتیب روشن و خاموش شدن چراغ‌های راهنمایی (سبز، زرد، و قرمز) است. چراغ‌ها به ترتیب زیر عمل می‌کنند:
LED قرمز: نشان‌دهنده توقف است.
LED سبز:نشان‌دهنده مجاز بودن حرکت است.
LED زرد: هشدار تغییر وضعیت بین حرکت و توقف را نمایش می‌دهد.

موارد مورد نیاز:
– میکروکنترلر ATmega32
– 2 سون سگمنت
– 2 LED سبز
– 2 LED قرمز
– 2 LED زرد
– مقاومت‌ها (برای محدود کردن جریان LEDها)
برد بورد و سیم‌های اتصال



این پروژه برای آشنایی با کنترل ورودی‌ها و خروجی‌ها در ATmega32، کنترل نمایشگرها و مدیریت ترتیب روشن و خاموش شدن LEDهادر یک پروژه دیجیتال کاربردی، بسیار مناسب است.

				
					#include <mega32.h>
#include <delay.h>
int seg[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int  j ;
void main(void){
     DDRA = 0XFF;
     DDRB = 0XFF;
     DDRC = 0XFF;
     DDRD = 0XFF;
     PORTA = 255;

     while (1)
     {     
          for (j = 9 ; j >= 0 ; j -- ){ 
               PORTD = seg[j]; 
               PORTC = seg[j];
               delay_ms(50);
               if(j>=3){PORTB = 0X01;PORTA = 0X04;}
               if(j<3){PORTB = 0X01;PORTA = 0X02;}}
               
          for (j = 9 ; j >= 0 ; j -- ){ 
               PORTD = seg[j]; 
               PORTC = seg[j];
               delay_ms(50);
               if(j>=3){PORTA = 0X01;PORTB = 0X04;}
               if(j<3){PORTA  = 0X01;PORTB = 0X02;}}     
     }
}

				
			

این کد مربوط به شبیه‌سازی یک چراغ راهنمایی رانندگی با دو سون سگمنت و چهار LED است. در کد، از آرایه `seg` برای ذخیره الگوی نمایش اعداد 0 تا 9 در سون سگمنت‌ها استفاده شده است. پورت‌های PORTD و PORTC به دو سون سگمنت متصل هستند و به صورت معکوس از 9 تا 0 شمارش می‌کنند. چراغ‌های راهنمایی با استفاده از پورت‌های PORTA و PORTB کنترل می‌شوند. در هر چرخه شمارش:
– PORTA و PORTB وضعیت چراغ‌های قرمز، زرد و سبز را شبیه‌سازی می‌کنند.
– برای اعداد بزرگ‌تر یا مساوی 3، چراغ‌های سبز و زرد فعال می‌شوند و برای اعداد کمتر از 3، چراغ قرمز روشن می‌شود.
– تأخیرها (`delay_ms`) برای ایجاد زمان‌بندی مناسب بین تغییرات استفاده شده‌اند.

این کد دو چرخه شمارش معکوس مستقل را برای دو حالت مختلف چراغ راهنمایی اجرا می‌کند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *