こんにちは。Yukiです。
今回はキッチンタイマーをCH32V003F4P6で作ったことを書こうかと思います。
更新を忘れていたっぽいので、更新しておきます。
こんな感じの見た目になりました

持ち運びとかも考えて、乾電池3本(または5V電源)で動かせるようにしました。
簡単な機能紹介
基本的には、100均とかで販売しているタイマーと変わらない仕様です。
MINボタンで分数を指定。SECボタンで秒数を指定。START/STOPでタイマー・ストップウォッチのスタート/ストップをします。MIN/SECボタンを同時押しすると時間がクリアされ、0分0秒に戻ります。
FAST1/FAST2ボタンは、指定した時間にすぐセットできる機能です。
指定したい時間に合わせて、FAST1/2ボタンをピッという音がなるまで長押し。
今後はその時間が記録されるので、登録した方のボタン(FAST1/2)を押せば、その時間にセットされます。
個人的には、FAST1に3:00 を入れて、FAST2に5:00 とかで入れておくと、カップ麺のタイマーとかに便利だなーと個人的には思っています。
次にストップウォッチモードです。
00:00の状態でSTART/STOPモードを押すと、時間がカウントアップしていきます。要はストップウォッチです。
最後にスリープ機能です。タイマー機能やストップウォッチ機能が動いていないときに、放置しておくと、自動で7セグLEDが消灯します。
ちなみにMAX99:59(99分59秒)までタイマー・ストップウォッチできます。
製作の裏話
電池は逆接しやすいということで、ショットキーバリアダイオードを入れてたり、万が一のショート対策にポリスイッチとかを入れて安全策は取っています。
(こんな機能いらねーよって人はこの部分に0Ω抵抗とかリード線とかを入れてもらえば大丈夫です)
今回、とある場所でキット販売したのですが、はんだ付けする場所が多くなると面倒ということで、抵抗内蔵トランジスタ(デジタルトランジスタ)を使ったりもしています。実はこれだけで8本の抵抗を削減できます。(ベース抵抗とベース-エミッタ抵抗の2本削減)
次にプログラムとかの製作の裏話を書いていこうかなと思います。
FASTボタンはできればつけたい機能でした。これFLASHに保存しているので、電池外したり電源を切っても保持され続けます。このマイコンEEPROMがないので、少し面倒なんですよね。
最後にスリープ機能です。スリープ機能も個人的に努力した部分で、スリープ時に電流が流れないように回路設計をしました。(本当はもう2個所省電力化できたのですが、マイコンの仕様で断念)
ただ、過去に自作ライブラリやらFLASHの扱い方やらスリープ機能の使い方やらをまとめていたので、実際にプログラムにかかった時間は4時間程度でした。他の時間をデバッグ作業とかに費やせて良かったなと個人的には思っています。
Github
今回作成したデータ等はすべてGithubにアップロードしてあります。
再配布や販売等をしたい場合は、必ず連絡をください。(一応BSD3ライセンスなので、再配布OKなのですが、サポートできなくなる可能性があります)
販売
手元に3枚程度基板が余っていますので、それらをBOOTHに出そうと思っています。(売れたらいいな)


コメント