SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

2台連動信号機

以前作った立形信号機
www.ichigojaman.jp
を2台ケーブルでつないで、連動させてみました。
動画はこちら。

【IchigoJam】2台連動信号機


歩行者用信号機基板にある、TX,RX,GNDパッドをクロスで結線します。
(TX→RX、RX→TX、GND→GND)

プログラム

全体は親機のプログラムで動いています。子機は親機から飛んできたコマンド通りに、各LEDを点灯/消灯しているだけです。
コマンドは文字コードで送っています(ポート番号×10+0または1)。そのままだとコントロールコードになってしまって動作がおかしくなるので、160を足してカタカナコード領域にして送受信しています。

親機プログラム

10 @ARUN:'*T.LIGHT-P
20 CLS:UART 1
30 OUT 0
40 FOR I=1 TO 6:?CHR$(160+I*10):NEXT
50 @LOOP
60 OUT 1,1
70 OUT 5,1
80 ?CHR$(160+31)
90 ?CHR$(160+61)
100 WAIT 300
110 FOR I=1 TO 3
120 ?CHR$(160+61)
130 WAIT 30
140 ?CHR$(160+60)
150 WAIT 30
160 NEXT
170 ?CHR$(160+51)
180 WAIT 120
190 OUT 1,0
200 OUT 2,1
210 WAIT 120
220 OUT 2,0
230 OUT 3,1
240 WAIT 120
250 ?CHR$(160+30)
260 ?CHR$(160+11)
270 OUT 5,0
280 OUT 6,1
290 WAIT 300
300 FOR I=1 TO 3
310 OUT 6,1
320 WAIT 30
330 OUT 6,0
340 WAIT 30
350 NEXT
360 OUT 5,1
370 WAIT 120
380 ?CHR$(160+10)
390 ?CHR$(160+21)
400 WAIT 120
410 ?CHR$(160+20)
420 ?CHR$(160+31)
430 WAIT 120
440 OUT 3,0
450 ?CHR$(160+50)
460 GOTO @LOOP

子機プログラム

10 @ARUN:'*T.LIGHT-C
20 CLS:UART 0,1
30 OUT 0
40 @LOOP
50 K=INKEY()
60 IF K<160 GOTO @LOOP
70 K=K-160
80 A=K/10
90 B=K%10
100 OUT A,B
110 GOTO @LOOP