gombeのブログ

マイコンの電子工作系PIC32/KiCad/C/C++/3D/

時計の設計(4)受信プログラムを考える

フローチャート受信プログラム。。。うっ本プロジェクト最難関科目。。。では考えましょう。まずはCdSの特性とその利用です。CdSは反応時間が非常に長く(20-30ms)非常に扱いにくいです。それに加えてLCDは反応時間が同程度あります。なので立ち上がり立ち下がりが非常に遅く、通信時にネックになります。実験もしましたがやっぱりcode1-3の区別が難しいのが現状です。区別するときの閾値について検討したいと思います。

閾値は調節するデバイスや周りの輝度によって大きく変わります。なので難しいところですが80±20で論理0と1を区別しましょう。ここでは周りの状況によって合わせるとどこを基準とするのかが難しいのとスマホの輝度はすぐにできるし暗い中で輝度最高まで上げることを想定するからです。

code0-1の区別は論理0の状態から1に向けて立ち上がってから1.5fのときの論理でこれが0だとcode0です。しかしこれだとcode3との区別がつきません。code3はその後論理0が1fだけ続く時なので立ち下がり後から立ち上がりまで1.5f以上であるかで判定できます。

まとめるとコードが確定するのはそのフレームが完了してからになります。具体的には次の立ち上がりした瞬間であり、コード判別後そのコードに対する処理をします。最初のcode3から始まり、その後補正をスタートします。一つずつ読みますが、周期が異常に長い(5f以上)等エラーが発生した場合最初からのスタートになります。

正常に補正できたら補正時間を補正しそこから30秒ほど調節を禁止します。

とりあえずこんな感じでやってみます。