バイナリクロック(その8)

 いよいよ時刻設定部分の実装です。

背面操作部
 背面操作部

操作部基板
 操作部基板

 操作用のタクトスイッチを並べてコネクタ接続によりMPU基板でボタン操作の処理を行います。タクトスイッチは押すとGNDにつながるように回路を組み、MPU側で内部プルアップを行うことでプルアップやプルダウンの抵抗を省略することができます。プログラム側としては押されたらLow、押されていなければHighになります。Arduino IDEのライブラリ関数でpinMode(x, INPUT_PULLUP)を指定すれば明示的に内部プルアップの指定が可能なのですが、ボタンが多数あって面倒くさいのでDDRBで該当ピンを入力に、PORTBレジスタで該当ピンに1を書き込んでレジスタ操作で一括設定してしまいました。またピン入力の読み込みにはdigitalRead()を用いるのではなくPINBレジスタの読み込みで行います(ボタンの割り当てピンに明示的にpinMode(INPUT)をしていない事からArduino IDEの管理下に無いので)。
 出来るだけすっきりと実装したかったのでタクトスイッチのボタン操作部とボタン穴との隙間を極力小さく、またボタン基板の取り付けにはネジ頭部の凸部を無くしたかったので皿ネジにしました。皿ネジを使うとネジの頭とパネル表面がフラットにできるメリットがありますが、穴あけ位置とその穴を利用する部品との精度がシビアになってしまいます。また取り付けネジとタクトスイッチのボタン部分の位置関係もかなり精度を高くして穴あけしなければずれたり入らなかったりしてしまいますので、穴あけ作業はいつにも増して慎重に行いました。
 まず基板取り付けの穴を開けて基板が無理せず保持できるようになっている事を確認して、タクトスイッチのボタンを開けます。スイッチのボタン部は3mmφありますが、まず2.5mmで穴を開けて基板に実装したボタン位置と現物あわせを行いながら穴を広げたり位置調整を行いました。最終的に無理なく取り付けられる穴あけ位置が確定したところで3.2mmのドリルで穴を広げて操作がスムーズにできる事を確認してからタクトスイッチを半田付けと、結構手間と時間がかかってしまいましたが、すっきりした背面操作部になったと思います。

時刻表示
 時刻表示(18:33:17)

日付表示
 日付表示(24(2024)/05/28)

 とりあえず7セグメント表示部を時刻(時分秒)と日付(年月日)の表示モード切り替えを行うところまでプログラムを組んでみました。時刻表示では桁間がコロン表示、日付表示ではドット表示になります。またバイナリ表示部は常に時刻表示です。
 時刻設定操作はどのように行うかのUIを現在検討中。と言っても操作ボタンはすでに決まっているので使い勝手レベルの微調整になるでしょう。

バイナリクロック(その1)
バイナリクロック(その2)
バイナリクロック(その3)
バイナリクロック(その4)
バイナリクロック(その5)
バイナリクロック(その6)
バイナリクロック(その7)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA