• 公開日:2018年12月03日
  • | 更新日:2022年10月14日

[7SEGルーレット貯金箱製作] 第5話 フォトインタラプタって?

前回まで

こんにちは、すーさんです。

前回までで7セグメントLEDとタクトスイッチ、コインボックスの鍵となるソレノイド、LEDの動作確認ができました。
最後に透過型フォトインタラプタの動作確認後、ユニバーサル基板上に半田付けをしていこうと思います!

フォトインタラプタとは?

コインの枚数をカウントするための透過型フォトインタラプタ(CNZ1023)を使用します。

時間があればコインの種類を見分けられるセンサに変えてみようと思いました。
(この時点で既にセンサを入れ替えることは時間的に厳しいことに)

期限まで形にすることを優先に進めることにします。

透過型フォトインタラプタは発光素子(赤外発光ダイオード)と受光素子(フォトトランジスタ)を組み合わせたセンサです。
ダイオードからの赤外光を常にフォトトランジスタが受光しています。この赤外光を遮るように何か物が通過すると、信号がHigh→Lowの状態に変化します(図1)。

赤外光を遮ることさえできれば信号はHigh→Lowに。つまりコインでなくても反応しますが、
今回これを利用しコインが通過した回数=枚数とし、コインの枚数をカウントし7セグメントLEDで枚数を表示します。

また通過してから7セグルーレットのスタートボタンを押せる状態にします。
(通過させなければスタート場ボタンを押しても7セグルーレットはスタートさせることができない)

今回の動作確認は7セグメントLED、スタートボタンと連動させることではなく、
私が描いた回路図でフォトインタラプタが動作するかどうか確認していきます。

本来マイコンのポートに接続する箇所にLEDをブレッドボード上に配線します(図2)。

LEDを点灯させておき、赤外光を遮った時にLEDが消灯すれば、
図2の回路図で問題なくフォトインタラプタは動作していることになると考えました。

動作確認の結果はこちらになります(写真1)。

写真1より、ものをフォトインタラプタに通過させるとLEDが消灯させることができたので、
この回路図(図2)でフォトインタラプタは動作することが確認できました。

ようやく各部品の動作確認ができ、部品同士を連動させるプログラムの書き方もわかってきました。

動作確認後の回路図(修正後)は下になります。

回路図

あとはすべての部品をユニバーサル基板に半田付けして、ソフトで連動させていきます。

半田付け開始!

動作確認が終わりユニバーサル基板に部品を半田付けし配線していきます。
完成イメージ図と回路図を元に部品を配置し配線、実装していきます。

できるだけ1回で思い通りに動くことを願って、テスターで導通チェックしながら進めていきました。

また先輩方から、できるだけビニール線同士を交差させないように配線していくと後でデバッグしやすい、
というアドバイスを頂いたのでこれも意識して進めました。

3日間、ひたすら半田作業をしてようやく完成!(写真2)

最初はビニール線が交差しないように進めていたのですが、途中から不可能になりました。なのでとても汚いです笑(写真3)。

最初に配線図を細かく決めておけばよかったです・・・。

また、これ以上の配線は私の技術では厳しいと考えたため、電源供給用の基板を別で製作しました(写真4)。

基板が完成したので次にソフトで各部品を連動させていきます。

残りの機能をソフトで実現!

ここで一度、7セグルーレット貯金箱の機能をおさらいします。

・コイン投入口にコインを通過させると、スタートスイッチが押せるようになる。
・1回通過させると、枚数カウント用7セグのカウントが1進む
・コインを通過させた回数と同じ回数スタートスイッチを押すことができる。
・スタートスイッチを押すとルーレットが開始。
・ストップスイッチを押すとルーレットが停止。
・ストップスイッチを押した後の7セグの表示はランダム。
・ルーレット停止後、コインを通過させると7セグルーレットは初期状態になる。
・7セグルーレットの表示が全て7になれば、コインボックスを開ける事ができ、LED(青)が点灯する。
・枚数カウントの表示が00=100枚まで7が揃わなかったら、コインボックスを開けることができ、LED(赤)が点灯する。
・コインをコインボックスから取り出した後、コインを通過させるとコインボックスの鍵が閉まり、LEDが消灯する。

動作確認の段階で以下の機能のプログラムは完成しています。

・ストップスイッチを押すとルーレットが停止。
・7セグルーレットの表示が全て7になれば、コインボックスを開ける事ができ、LED(青)が点灯する。

残りの機能を実現するためのコードを動作確認時に作成したコードに追加する形で作成していきます。
思っていた以上に機能が残っていたので、急がなければ・・・。

実現したい機能を1つずつ潰していきます。

プログラムは動作確認時に作成したものと同じように書いていけば良かったので、
動作確認のときよりもスムーズに進められるようになっていました。

日によって動作がおかしい?

プログラムを書き込み、連動しているかを確認していく中で、前日の動作確認した時は問題なく動いていたはずなのに、
次の日出社し確認すると7セグメントLEDが点灯しなかったり、スイッチが反応しなくなっていたりと問題だらけに・・・。

動作不良の原因は半田付けがあまくビニール線が取れていたことや
導通していると思っていた3.3V、1.5AラインとGNDラインが導通していなかったことがあげられます。

動作不良が出るたび不良箇所の配線をデジタルマルチメーターで確認し半田付けし直しました。

ついに・・・

機能実現するためのプログラム作成とデバッグ作業を5日間程おこない、なんとか動作不良なく動かせるようになりました。

最後にできたソースコードはこちらになります。

ソースコード

後は7セグルーレット貯金箱の筐体を作るのみ、完成まであと少しです。いよいよ製作実習も大詰めを迎えます。

[7SEGルーレット貯金箱]シリーズ