2017-10-24 12:08 | カテゴリ:PIC応用回路
さて、ドットマトリクスLED上で、直線や四角形を回転させるプログラムが出来ました。
で、何をしたいかと言いますと、アナログ表示の時計を製作したいと思っています。

イメージ先行で、とりあえずこんな時計がいいかなぁ?
と、画面を考えてみました。


(MTX20)
MTX20.jpg



続きは、、、


とりあえず簡単な時計の文字盤をデザインして、ドットデータにして、表示させてみました。
この上で、長針と短針、出来れば秒針も含めて、時間を刻みつつ、動作してくれれば時計になるわけですが、、、

この文字盤はちょっとシンプルすぎですね。
数字もちょっと加えて修正してみました。
これならよさそうです。

(MTX21)
MTX21.jpg


時刻表示の為の針を表示して、回転させるところは既に目途が付きました。
前回のプログラムでは、約6度刻みで運針させることが出来ました。

今度は、運針の大本になる時刻のカウントを検討していきます。
時刻のカウントに関しては、以前の「時計型気象モニター」で経験があります。

(MTX22)
MTX22.jpg

(MTX23)
MTX23.jpg

http://vividhobby.blog.fc2.com/blog-entry-398.html


すっかり内容を忘れていますので、この記事をもう一度自分で読み返して、検討しました。(笑)

今回は、時計機能と共に、同時にSPI通信機能でドットマトリクスLEDにデータを高速で送出する必要があり、PICのクロックをできるだけ高速にしたいのですが、時計クロックのカウントを容易にするためには、正確な1秒カウントを得ることができる発進周波数が必要です。
手持ちの20MHxのセラロックでは、精度も含めて適しませんので、高精度のクリスタル発振器の12.8MHzを使用します。

(MTX24)
MTX24.jpg

(MTX25)
MTX25.jpg

このICをよく見るとEPSONとあります。
あのEPSONでしょうね。たぶん。

これまでセットしていた20MHzのセラロックを取り外して、このクロックICをブレッドボードにセットして、プログラムの作成を始めます。

(MTX26)
MTX26.jpg

さて、肝心の時間計測のプログラムですが、アイデアはこうです。

1)内蔵タイマーを20msec毎にリセットさせるように各種パラメータをセットします。
  これは、クロックが12.8MHzなのでそれを分周させて得られる時間となります。

2)タイマーが20msec毎にリセットされる際に、割り込みが発生する様にします。

3)割り込みが発生したら、20msecを単位としたカウントを順次進めて、秒、分、時間を求めます。

4)1秒ごとに、秒針、長針、短針の角度を求めて、時計画面を更新します。(SPI通信)

と、先週ここまで書いたのですが、週末ちょっと体調がイマイチで、続きがありませんので、とりあえずここまでアップしておきます。

関連記事
【ジャンル】:趣味・実用 【テーマ】:電子工作
コメント(2)

管理者のみに表示する