قطعات مورد نیاز
- 10 عدد LED
- قرمز یا هر رنگ دیگر
- 1 عدد آی سی 4011
- 1 عدد آی سی 4017
- 1 عدد خازن 0.1UF
- 1 عدد پتانسیومتر 100k
- 1 عدد مقاومت 1 مگا اهم
- 1 عدد مقاومت 1 کیلو اهم
- برد بورد
- سیم تلفن
آیسی 4011
این آیسی دارای 4 گیت NAND است.به پایه های ورودی وخروجی در شکل زیر دقت کنید.،پایه 7 تغذیه منفی و پایه 14 تغذیه مثبت است.گیت NAND عکس گیت AND است.همانطور که در شکل مشاهده می کنید.،علامت NOT در بالای AND هر دو پایه ورودی وجود دارد.J،K،L،M پایه های خروجی هستند.
LED
پایه بلندتر پایه مثبت(آند) و پایه کوتاهتر منفی (کاتد)است.همانطور که در نقشه ملاحظه می کنید.پایه بلندتر به پایه های آیسی متصل است و پایه کوتاهتر تمامی LED ها به صورت مشترک به منفی منبع تغذیه متصل شده است.
نقشه مدار
تمام اتصالات کاملا در نقشه مشخص است.،آیسی 4017 یک Shift Register است.که پالس دریافت شده در پایه 14 را که در نقشه می بینید.،به بقیه پایه هایی که LED به آن متصل است.، شیفت می دهد.واین کار مکررا تکرار می شود وشما شاهد روشن و خاموش شدن LED ها خواهید بود.،اگر مدار شما عمل نکرد.،با استفاده از پیچ گوشتی ساعتی پتانسیومتر را به گونه ای تنظیم کنید.،تا شاهد رقص نور در LED ها باشید.U2 آیسی 4011 و U1A ,U1B در واقع 2 تا از گیتهای NAND آیسی 4011 است. پایه 15 آیسی 4017 پایه reset یا آغاز شمارش از پایه 3 است.این پایه با لبه بالارونده ولتاژ تحریک می شود.برای جلوگیری از reset مدار به صورت ناخودآگاه آنرا به همراه پایه8 و 13 زمین می کنیم. پایه 14 نیز نسبت به لبه بالا رونده پالس حساس است.و به محض دریافت پالس در اولین بار پایه 3 را high می کند.وشما شاهد روشن شدن LED متصل به این پایه می شوید.این روند تا پایه 11 که آخرین پایه مربوط به شمارش است در صورت دریافت پالس در پایه 14 ادامه خواهد داشت. پالس نیز به طور خودکار توسط آیسی NAND 4011 ایجاد می شود.فاصله زمانی بین شارژ و دشارژ خازن باعث تحریک پایه 14 می شود.فاصله زمانی بین شارژ و دشارژ خازن در واقع فاصله زمانی بین روشن و خاموش شدن LED ها یا high و low شدن پایه های آیسی 4017 است. می توانید با پیچ گوشتی ساعتی این پتانسیو متر را پیچانده و فاصله زمانی شارژ و دشارژ خازن و در واقع فاصله زمانی بین شمارش ها را به طور دلخواه تنظیم کنید.
منبع : سایت همه چی
رقص نور توسط میکروکنترلر AVR
در این پروژه از 15 عدد LEDقرمز mm3استفاده شده که 15 تا از پایه های مربوط به پورت B,Dرا برای هندل کردن LEDها بکار می برد
پورت های میکروی AVRمی توانند 20mAجریان بکشند پس تنها به تعدادی مقاومت نیاز است که در پایه ای میکرو قرار بگیرد .
مدت روشنایی LEDها در برنامه قابل تنظیم می باشد. در این پروژه از میکروی سری 90s1200 استفاده شده اما می توان از سری 90s2313نیز استفاده کرد..همچنین یک سرامیک 10MHZبعنوان منبع Clock مورد استفاده قرار می گیرد . که ازکریستال ارزانتر است.مدار با ولتاژ 5Vکار می کند.
یک کید push botton برای کاربر نیز وجود دارد که از طریق آن می تواند یکی از3 مود کاری را انتخاب کند . این 3 مود کاری عبارتند از:
1-1 LED
3-2 LED
3- 5 LED
البته میتوان با اندکی تغییرات در کد اسمبلی نمونه های بیشتری قرار داد.
این پروژه bytes300 از حافظه فلش میکرو را اشغال می کند .میکروی 1200 AVRدارای 1 مگا بایت حافظه فلش می باشد.
شماتیک مدار
PCB مدار
برنامه اسمبلی و کد هگز
running LED asm source code Title : runningled.asm Version : 1.0 Last updated : 2005 03 12 Target : AT90S1200 Hardware requirements: running led printed circuit board .include "1200def.inc" .def temp = r19 .def seq = r20 rcall set_ports rcall loop_1 rcall loop_2 rcall loop_3 ldi seq,0 main_loop: clr temp out ddrb,temp ser temp sbic pinb,0x00 inc seq cpi seq,0 breq test_1 cpi seq,1 breq test_2 cpi seq,2 breq test_3 rjmp main_loop test_1: rcall set_ports rcall loop_1 rjmp main_loop test_2: rcall set_ports rcall loop_2 rjmp main_loop test_3: rcall set_ports rcall loop_3 rjmp main_loop rjmp main_loop set_ports: ser temp out ddrb,temp out ddrd,temp ret ; 1 led loop loop_1: ldi temp,0 out portd,temp rcall delay_100 ldi temp,1 out portb,temp rcall delay_100 ldi temp,2 out portb,temp rcall delay_100 ldi temp,4 out portb,temp rcall delay_100 ldi temp,8 out portb,temp rcall delay_100 ldi temp,16 out portb,temp rcall delay_100 ldi temp,32 out portb,temp rcall delay_100 ldi temp,64 out portb,temp rcall delay_100 ldi temp,128 out portb,temp rcall delay_100 ldi temp,1 out portd,temp ldi temp,0 out portb,temp rcall delay_100 ldi temp,2 out portd,temp rcall delay_100 ldi temp,4 out portd,temp rcall delay_100 ldi temp,8 out portd,temp rcall delay_100 ldi temp,16 out portd,temp rcall delay_100 ldi temp,32 out portd,temp rcall delay_100 ldi temp,64 out portd,temp rcall delay_100 ldi temp,0 out portd,temp ret ; 3 led loop loop_2: ldi temp,7 out portb,temp rcall delay_300 ldi temp,56 out portb,temp rcall delay_300 ldi temp,192 out portb,temp ldi temp,1 out portd,temp rcall delay_300 ldi temp,0 out portb,temp ldi temp,14 out portd,temp rcall delay_300 ldi temp,112 out portd,temp rcall delay_300 ldi temp,0 out portd,temp ret loop_3: ldi temp,31 out portb,temp ldi temp,0 out portd,temp rcall delay_500 ldi temp,224 out portb,temp ldi temp,3 out portd,temp rcall delay_500 ldi temp,0 out portb,temp ldi temp,124 out portd,temp rcall delay_500 ldi temp,0 out portd,temp ret delay loop 100ms delay_100: ldi R17, $09 WGLOOP10: ldi R18, $BC WGLOOP11: ldi R19, $C4 WGLOOP12: dec R19 brne WGLOOP12 dec R18 brne WGLOOP11 dec R17 brne WGLOOP10 ret delay loop 300ms delay_300: ldi R17, $10 WGLOOP20: ldi R18, $F8 WGLOOP21: ldi R19, $FB WGLOOP22: dec R19 brne WGLOOP22 dec R18 brne WGLOOP21 dec R17 brne WGLOOP20 ret delay loop 500ms delay_500: ldi R17, $21 WGLOOP30: ldi R18, $D6 WGLOOP31: ldi R19, $EB WGLOOP32: dec R19 brne WGLOOP32 dec R18 brne WGLOOP31 dec R17 brne WGLO
منبع : سایت میکرو دات کام