目次
前
次
ハードウエアテスト(その8)
IchigoJamのV1.1では、PWMを簡単に利用できるようになりました。
ホタルの発光を、PWMで実現してみます。
ホタルは、フェードイン、フェードアウトの光り方を
利用します。
PWMのDUTY比で見ると、フェードイン、フェード
アウトになるように、0%から100%、100%から
0%となるように制御すればよいはず。
PWMのDUTY比を0%から100%に変化させるには
次のようにすればよいでしょう。
100 ' fade in
110 FOR I=0 TO 100
120 LET J,I
130 PWM 2,J,100
140 NEXT
PWMのDUTY比を100%から0%に変化させるには
引き算をして、DUTY比を計算し直します。
150 ' fade out
160 FOR I=0 TO 100
170 LET J,100-I
180 PWM 2,J,100
190 NEXT
合体すると、以下。
100 ' fade in
110 FOR I=0 TO 100
120 LET J,I
130 PWM 2,J,100
140 NEXT
150 ' fade out
160 FOR I=0 TO 100
170 LET J,100-I
180 PWM 2,J,100
190 NEXT
光を放つ部品にはLEDを利用しますが、DUTY比で考えると
人間の目で知覚可能な範囲は、デバイスにもよりますが
30%から80%程度です。
サブルーチンを呼び出す部分を追加して完成です。
10 ' hotal
20 GOSUB 100 : WAIT 60
30 GOSUB 150 : WAIT 120
40 IF BTN() GOTO 60
50 GOTO 20
60 ? "Exit"
70 END
100 ' fade in
110 FOR I=0 TO 100
120 LET J,I
130 PWM 2,J,100
140 NEXT
145 RETURN
150 ' fade out
160 FOR I=0 TO 100
170 LET J,100-I
180 PWM 2,J,100
190 NEXT
195 RETURN
ラベル利用で、次のようにも書けます。
10 ' hotal
20 @LOOP
30 GSB @FIN : WAIT 60
40 GSB @FOUT : WAIT 120
50 IF BTN() GOTO @EXIT
60 GOTO @LOOP
70 @EXIT
80 ? "Exit"
90 END
100 @FIN
110 FOR I=0 TO 100
120 LET J,I
130 PWM 2,J,100
140 NEXT
145 RTN
150 @FOUT
160 FOR I=0 TO 100
170 LET J,100-I
180 PWM 2,J,100
190 NEXT
195 RTN
北海道札幌の梅澤無線の「ホタルの光」と似た
点滅ができます。
PWMの波形出力は複数あるので、2頭のホタルにしてみます。
10 ' hotal
20 GOSUB 100 : WAIT 60
30 GOSUB 150 : WAIT 120
40 IF BTN() GOTO 60
50 GOTO 20
60 ? "Exit"
70 END
100 ' fade in
110 FOR I=0 TO 100
120 LET J,I : LET K,(J+50)%101
130 PWM 2,J,100 : PWM 3,K,100
140 NEXT
145 RETRUN
150 ' fade out
160 FOR I=0 TO 100
170 LET J,100-I : LET K,(J+50)%101
180 PWM 2,J,100 : PWM 3,K,100
190 NEXT
195 RETRUN
ラベル利用で、次のようにも書けます。
10 ' hotal
20 @LOOP
30 GSB @FIN : WAIT 60
40 GSB @FOUT : WAIT 120
50 IF BTN() GOTO @EXIT
60 GOTO @LOOP
70 @EXIT
80 ? "Exit"
90 END
100 @FIN
110 FOR I=0 TO 100
120 LET J,I : LET K,(J+50)%101
130 PWM 2,J,100 : PWM 3,K,100
140 NEXT
145 RTN
150 @FOUT
160 FOR I=0 TO 100
170 LET J,100-I : LET K,(J+50)%101
180 PWM 2,J,100 : PWM 3,K,100
190 NEXT
195 RTN
目次
前
次