[..]
16進時計
なにか新しいものを…
きっかけ
デジットさんの在庫処分にて、7セグ200個入りを買ってしまいました。
少しでも消費したかったので、無難に時計をつくることにしました。ところで、普通に時計つくったところでつまんないですよね…なので、16進数表示の時計をつくることにしました!(2進数表示のものはいろんな方がやられてたから…)16進数表示はさっと調べてみた結果見当たらなかったから初かも…まぁ、わざわざ7セグ2つ使ってるのに16進数表示にする人居ないよね…
なお、買った7セグはカソードコモンです。
設計
いたって普通の時計です。必要最小限の部品しかつけてません。マイコンはPIC16F628Aを使いました。クロックには32.768kHzとか使うのが良いんでしょうけども、手持ちに無かったので内部クロック4MHzにしました。←これがすべて悪い
PICのPORTAは7セグのカソード側に、PORTBはPNPトランジスタを介して7セグのアノード側a~DPに接続しています。回路図とか書かなかったのでないです…
電源は単三電池3本です。
基板はこんな感じ
一個しか作る気が無かったのでラッピングです。
制御
プログラムはもちろんアセンブラです。
mainループでダイナミック制御をしつつ、1秒たったら割り込みで秒数をインクリメントする感じです。実は、16進表示にしたことで2進を10進に変換する手間が減ってプログラム的には簡単になってます。
ソースコードは
githubを参照してください。ちょこちょこ汚いのはゆるして…(意味のないmain_loopがあったり、GOTOなのかRETなのかよくわかんないところがあったり)
動作
動作はこんな感じ!
ちゃんと動いてますが、内部クロックなので誤差が激しい。1時間経つと数分ずれてしまう…さらに、4Mhzで動かしてるため、電池の消費が激しくなってしまった。一日半動かすと7セグがチラチラしだしてしまう…
/(^o^)\ナンテコッタ
ということで、実用的な時計にはなりませんでした。これは作り直す必要が…
少なくとも電池4本にして3端子レギュレータとかで安定した5Vを作ったりしてやんないと…
展望
まぁ、動作的にはやりたいことやれたので良かったです。
また、16進時計のキットとか作ったら面白いかなぁと思いました。もちろん、プログラミングもやってもらうキットを作りたいですね。
というのも、世の中に出ている自称「時計キット」は基板と部品、そしてプログラムが書き込まれたマイコンが揃っていて、はんだ付けしたら完成というものが多すぎます。時計作りのメインはどう考えてもはんだ付けではなく、プログラミングだろと!ダイナミック制御とか割り込みとかの動きがわかって時計を作ったと言えるだろうと!
私のがやりたいことの中にプログラミング入門者にアセンブラを書かせるというのがあるので、その一環でキット製作できたらいいなと考えています。
作成日:2024/11/17
最終編集日:2024/11/17