マルチコインセレクター を使ってarduinoで硬貨を判別してみよう

工作

自動販売機のようなものを作りたくて、コインセレクターを買ってみました。今回買ったのは6種類までの判別が出来る、 マルチコインセレクター というものです。メーカー名とかは書いてないので詳細は不明w

マルチコインセレクター

マルチコインセレクターの設定は「Arcade1upに取り付け予定♫コインセレクターの設定&テスト」(koudaken7777さんのブログ)の記事を参考にさせてもらいました。何が分からないかというと、最初に設定をリセットしないと新たな設定が出来ないのに、説明書にはリセット手順が書いてないのです!

koudaken7777さんのブログからの引用によると、

①まずはサンプリングを開始。出荷時がこのモードなので、A1と表示されているときにコインを入れていきます。

②すると数字が1,2,3,4とコインを入れるたびに数字が増えていきます。本来なら20枚入れてサンプリングするのですが数枚入れたらコインセレクターの電源を切断します。

③そして30秒ほどしたらもう一度電源を入れます。

これで、設定モードの「E」の文字が表示されます。

後はそれぞれの硬貨ごとに認識させて、個別に出力パルス数(これが本体のLEDに表示される)を決めるだけ。設定させすればなかなか優秀な機械で、ほぼ間違えることがなく硬貨を判別できます。だがしかし、この情報をarduinoに正確に伝えるのが想像以上に難しいのです!!

色々な問題はCH923/CH925/CH926/CH928/ JY923/JY925/JY926/JY928 coin acceptor: Features and caveatsのページにまとめて書いてありますが、例えば日本円の500、100、50、10、5、1円をそれぞれ1,2,3,4,5,6パルスとした場合、arduinoで識別させようとすると、1円(6パルス)を入れると2パルス+3パルス+1パルス(足せば6パルス)というように分割されてしまって、200(2=100円)+50(3=50円)+500円(1=500円)で750円と判別されることが多々あるのです。もちろんちゃんと認識されることもありますが、色んなパルスにランダム分割されて、1パルス以外を見分けるのがかなり困難なのです。

この問題に悩んでるのは世界共通らしく、Arduino Forum> Using Arduino> Project Guidance> Problem with number of pulses with coin selectorなんかみても、なかなか難しいようでした。

試行錯誤を続けながら、構想を考えていると、Arduino Forum> Using Arduino> Programming Questions> using interruptsの#17番のヒントがもっとも解決法に近いんじゃないかと思いました。

それでどうにか試した結果がこちらです。

動画では1種類1枚ずつの判定ですが、すくなくとも20回くらいは間違えずに判別してくれました。まぁまだ試作段階ではありますが、なかなかの出来だと思います!

工作室

いいね! (2 いいね!)

読み込み中...

コメント

タイトルとURLをコピーしました