凄く安く製作したLED点灯装置

video へのリンク
LED 60個点灯 動画
一寸重いですが見てやってください

2001−12−26記

仕事で使ってる基板を流用
殆どの部分が使われていません
ポートBの0〜5を
抵抗10KΩシリーズ
2SC1815をドライブ
モニター用のLED
黄色が一番明るいです。 10個ずつ1系統にして
6系統分
玄関の所の生け垣にセット


使用部品など
品名 規格 数量 単価
カーボン抵抗 1/4W 10KΩ
ケミコン 2000μF35WV
ケミコン 220μF35WV
積層セラミックC 104Z
セラロック 8.00MHz
ブリッチD W02
3端子レギュレーター 7805
ICソケット 20P
CPU AT90S2313
コネクター EI 3P 雄、雌
コネクター EI 7P 雄、雌
コネクター モレックス 2P 中継 雄、雌 66
LED赤 20
LED黄 20
LED緑 20
基板 仕事で使っている物
スイッチング電源 AC100/DC24V
電線 特注フラットケーブル

ツール
BASCOM-AVRコンパイラ BASCOM-AVR IDE Version : 1.11.6.2 2313まではフリーのソフトでも可能 http://www.ipic.co.jp シュミレーターも付いてます。
機能が多いです。
書き込み器 AT90系8ピン〜40ピンまで 秋月電子通商 ソフトバージョンが上がっても
対応しています。
デバッカ AVR Studio 3.53 盛りだくさんで
無料
意気込みが感じられます
Atmel Corp. ソースコードデバック、
ニーモニックコードデバック
オリジナルだけ有って
機能が盛りだくさん








BASCOM-AVRコンパイラ ソースコード



Dim A As Byte , B As Byte , C As Byte , D As Byte , Ca As Byte , Cb As Byte
Dim Count1 As Byte , Count2 As Byte
Dim Count3 As Byte , Count4 As Byte
Dim I As Byte

Config Servos = 6 , Servo1 = Portb.0 , Servo2 = Portb.1 , Servo3 = Portb.2 , Servo4 = Portb.3 , Servo5 = Portb.4 , Servo6 = Portb.5 , Reload = 100

Config Portb = Output
Config Portd = Output



Servo(1) = 1 '1000 uS on
Servo(2) = 1
Servo(3) = 1
Servo(4) = 1
Servo(5) = 1
Servo(6) = 1


D = 5 'LOOP
Ca = 1
Cb = 0

Main:

C = 100
Gosub Rot

Gosub Sav

Gosub Alt

A = 20
C = 250
Gosub Ran

A = 60
C = 75
Gosub Ran

Goto Main









'/////////////////////////////////////////
' ROTATE
'/////////////////////////////////////////
Rot:

Start1:

Count2 = 0

Start:

Count1 = 0

Do
Incr Count1

If Ca = 1 Then B = &B1
If Ca = 2 Then B = &B11
If Ca = 3 Then B = &B111
If Ca = 4 Then B = &B111000
If Ca = 5 Then B = &B110000
If Ca = 6 Then B = &B100000

Portb = B

For A = 1 To 6
If Ca =< 3 Then Rotate B , Left
If Ca => 4 Then Rotate B , Right

B = B And $3f

If Ca = 2 Then If B = &B100000 Then B = B Or $01

If Ca = 3 Then If B = &B110000 Then B = B Or $01
If Ca = 3 Then If B = &B100010 Then B = B Or $01

If Ca = 4 Then If B = &B000011 Then B = B Or $20
If Ca = 4 Then If B = &B010001 Then B = B Or $20

If Ca = 5 Then If B = &B000001 Then B = B Or $20

Waitms C

Portb = B

Next

Loop Until Count1 = D
If Cb = 0 Then Ca = Ca + 1
If Cb = 1 Then Ca = Ca - 1

If Ca = 1 Then Cb = 0 'Cb=0 UP
If Ca = 6 Then Cb = 1 'Cb=1 DOWN

Incr Count2

If Count2 = 5 Then Goto Jumpnext

Goto Start

Jumpnext:

Return

'///////////////////////////////////////////////////////
' SERVO DRIVE
'///////////////////////////////////////////////////////

Sav:


Count1 = 0

Enable Interrupts

Do
Incr Count1

For I = 1 To 255
Servo(1) = I
Servo(2) = I
Servo(3) = I
Servo(4) = I
Servo(5) = I
Servo(6) = I
Waitms 10
Next

For I = 255 To 1 Step -1
Servo(1) = I
Servo(2) = I
Servo(3) = I
Servo(4) = I
Servo(5) = I
Servo(6) = I
Waitms 10
Next

Loop Until Count1 = 2

Disable Interrupts

Return

'/////////////////////////////////////
' ALT
'/////////////////////////////////////
Alt:

For I = 1 To 10
Portb = &B101010
Waitms 100
Portb = &B010101
Waitms 100
Next

Return

'/////////////////////////////////////
' random number.
'/////////////////////////////////////
Ran:

For I = 1 To A

B = Rnd($3f) 'get random number from 0-$3F

Portb = B

Waitms C
Waitms C
Waitms C
Waitms C

Next

Return

End