SHIROのIchigoJam日記

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

自動クリスマスツリー2025

※2025/11/29:回路・基板更新、クリスマスツリープログラム追加

以前作った自動クリスマスツリー
www.ichigojaman.jp
を若干変更しました。

※2025/11/29変更

スイッチをONにすると、8個のLEDがランダムに光ります。
電子工作教室のネタとしていかがでしょうか。

回路図


※2025/11/29更新

トランジスタ2個の弛張発振回路で約1Hzのクロック信号を生成して、シフトレジスタ・4015のクロック端子へ入力します。
4015の出力が1ビットずつシフトして、8個のLEDが光ります。
その出力の一部をXORゲート・4030を通して、4015のシリアル入力へ帰還しています(線形帰還シフトレジスタ)。

XORゲートの真理値表。入力A,Bが同じ時はL、違う時はHを出力する。
BASICなら「Y=A^B」。

そのままの回路だと電源ON直後は4015の出力が全てLで、それらをXOR演算したシリアル入力もLのままでLEDがいつまでも光らないので、余ったXORゲート1個でVCC(=H)とのXORを取って反転させています(=NOT、インバータと同じ動作)。

基板データ

*同じ基板を2枚配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2025 Shiro Saito (https://www.ichigoaman.jp)

材料

だいたい以下の順番ではんだ付けすると作りやすいです。

疑似乱数プログラム


今回の回路と同じ線形帰還シフトレジスタの疑似乱数プログラムをIchigoJamで作ってみました。
1秒に1ビットずつシフトして、8ビットの疑似乱数(2進数と10進数)を表示します。

10 '*LFSR
20 CLV:CLS
30 @LOOP
40 D=0
50 FOR B=7 TO 0 STEP -1
60 ?[B];
70 C=[B]<<B
80 D=D+C
90 NEXT
100 ?"=";D
110 A=[7]^[5]
120 A=A^[4]
130 A=A^[3]
140 A=!A
150 WAIT 60
160 FOR B=7 TO 1 STEP -1
170 [B]=[B-1]
180 NEXT
190 [0]=A
200 GOTO @LOOP

クリスマスツリープログラム


ツリーの8個のLEDがランダムに光るプログラムです。

10 '*XMAS TREE
20 CLV:VIDEO 3:CLS
30 ?"      O      "
40 ?"     * *     "
50 ?"    O   O    "
60 ?"   *     *   "
70 ?"  O       O  "
80 ?" *         * "
90 ?"O*****O*****O"
100 ?"     * *"
110 ?"     * *"
120 LET [0],#60,#42,#82,#24,#A4,#06,#66,#C6
130 GSB @LIGHT
140 @LOOP
150 Z=2
160 GSB @LIGHT
170 WAIT 60
180 GOTO @LOOP
190 @LIGHT
200 FOR L=0 TO 7
210 LC [L]/16,[L]%16
220 ?CHR$(232+RND(Z))
230 NEXT
240 RTN