年 始なので双六用に、定番の「電子サイコロ」を作ってみました。
サイコロと言っても、7セグメントLEDを使っているので、0から9の値が出来ます。
小さなLEDを使ったのでは、迫力にかけるため、大きな7セグメントLEDを使い、スイッチも大きなゲームスイッチを使用しているのが特徴です。
↑3の目が出たところ。
↑一般的なサイズの7セグメントLEDと比べてみた所(手は、左手人差し指)。
【動画(28秒)】
ピッ!ピッ!ピッ!と鳴りながら、7セグメントLEDが回っています。
プッシュスイッチを押すと、音が鳴り止み、数字を表示します。
2秒くらいたつと、また音が鳴りながら、LEDが回転します。
このくらいシンプルなほうが、使いやすいです。
VIDEO
電 子回路は、Arduinoを使い、7セグメントLEDを制御しています。
今回使った7セグメントLEDは大型のため、一つの表示部分にLEDが5個入っています(ドット部分は1個)。
そのため、通常サイズの7セグメントLEDのように、Arduinoの端子で直接ドライブする事が出来ません。
そこで、トンジスタを使いました。
7セグメントLEDなので、7個のトランジスタが必要ですが、7個もハンダ付けしたくないので、トランジスタアレイTD62003APGを使い、作業量をへらしています。
トランジスタアレイは、トランジスタが何個も入っているICで、ロジックICのように、出力をH又はLとして使うICではなく、電流を増幅して利用するICですね。
見た目がロジックICと同じなので、間違えやすいですね。
入力回路のスイッチは、大き目のゲームスイッチを使用。
Arduinoのプログラム上で、プルアップの命令を使っているので、プルアップ抵抗をあえてつなぐ必要はありません。
ゲームスイッチをArduinoにつなぐだけです。
音もスピーカーだと発振回路が必要になるので、ブザーにし、簡単にしました。
プログラムは、パラパラ表示させる部分は、Arduinoの端子を制御し、LEDを点灯させているだけです。
ゲームスイッチを押したら止まるプログラムは、Arduinoの割り込み機能 を使っています。
そのため、ゲームスイッチは、Arduinoの2番端子(タイマー0)につないでいます。
他の端子につなぐと、タイマーが使えないので注意が必要です。
タイマーの関数はdelayが使えない ので、フラグを立てるだけにし、メインloop内でフラグの有無で、LEDを制御しています。
作っている最中に気がついたのですが、この大きな電子サイコロは、
@トランジスタアレイ
A割り込み
を学ぶには、良い教材と感じました。
↑お店で購入した時にもらった説明書です。
Arduinoで制御しています。
大きいゲームスイッチ。
Arduinoのプルアップを利用しているので、つなぐだけです。
トランジスタアレイTD62003APGです。
5V入力、7出力なので、今回の7セグにぴったりです。
遊び心で買った、ブロック式のブレッドボード。
初めて役に立ちました。
電流制限抵抗で、電流が流れる量を調節しています。
圧電スピーカーでなく、ブザーを使い、回路を簡単にしています。
【組み立て】
部品をブレッドボードから取り除き、基板へ組み立てました。
7セグメントLEDは大きいので、大きなユニバーサル基板をカットして使用しています。
Arduinoはそのまま使うのはもったいないので、Arduinoブートローダー、水晶発振子、セラコンと、必要最小限の部品のみ使います。
今回作った回路の電源は、「7セグメントLEDが12VでArduinoが5V」です。
電源は一つにしたかったので、5VのUSB電源を使用、12Vは秋月から販売されている
ISL97519A使用可変昇圧電源キット K-04377 \650
を使用し、5V→12Vへ昇圧しています。
電子回路の固定は、当店ではお決まりのユニバーサル基板に固定しました。
ブレッドボード上に組み立てるのは簡単ですが、ハンダ付けまですると、かなり時間がかかり、約1日かかってます。
電源は、モバイルバッテリーです。
ゲームスイッチの固定は、結束バンドです。
【動画(38秒)】
暗闇でも、視認性抜群です。
VIDEO
(2021年1月3日(日)作成)