ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

電子サイコロをちょっとググってみた

2011年09月17日 23時17分54秒 | 電子工作
電子サイコロをググってみると、色々な作り方があるのが分かりました。

ロジックICを使ったものは、基本通りに
発振器 --- 6進カウンタ --- デコーダ --- LED
の構成になっている物が多かったのですが、
電子工作キットのコロスケくん[電子サイコロ] (TK-725)を見て驚きました。
たったIC 2個で実現しています。

一体どんな回路なのか、さらにググってみると、ここの一番下の方に回路図がありました。
なんと、シフトレジスタHC164を使って配線のみでデコードしています。

シフトレジスタのカウンタと言えばジョンソンカウンタですが、このキットでは違っていました。
入力に1を入れて、シフトしていき、全部1になったら、非同期リセットを掛けてしまうと言う物です。
そして、LEDのアノードとカソードを巧みに配線してデコーダ無しで点灯させています。
教材としては使えませんが、この発想は面白いですね。

一方、マイコンを使った物はやはりPICが多いですね。
それに、表示をゆっくりにしていく所はディレイを大きくしていくものばかりです。
一般的には、これが普通なのかもしれませんね。

でも、組込みソフトを作る場合、
「メインループの周期は一定とし、スイッチ入力は1ヶ所で行う」
が大前提となります。

これによって、一定周期のポーリング入力が実現できます。
組込みソフトはここからスタートします。

フローチャートで書くと、main関数はこうなります。
もし、周期的な出力が有る場合はここに入れます。

つまり、定常的にメインループが回っているということです。
だから、このメインループの中の1ヶ所に、ウォッチドッグタイマのリセットを入れる事で
ウォッチドッグタイマを有効に使えるのです。

ちなみに、Arduinoではmain関数は自動的にsetupとloopと言う関数から下のように構成されます。
だから、loop関数を上の図のように作っていけば良いのです。