مدار رقص نور ساده

 قطعات مورد نیاز

  • 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‬ها در برنامه قابل تنظیم می باشد. در این پروژه از میکروی سری‬ ‫90s‪1200 ‬  استفاده شده اما می توان از سری 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
 

منبع : سایت میکرو دات کام

مقالات مشابه

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

پر بازدید ترین مقالات