「ちっちゃいーの」にRTCを付ける
について、スイッチの件は、まりす@maris_HYさんから
ヒントを頂いたので、「ちっちゃいーの」本体のスイッチが
使えそうだと分かり、とにかくRTCのスケッチを書いてみました。
なかなか時間が取れずに居ましたが、
とりあえず出来たのが、これです。
時間はでたらめですが、表示できました。
3x8ドットで数字を表示したので、7セグっぽい感じになりました。
このモジュールに使われているRTCのICはDS1307で、
ググるといろいろ出てきます。
I2Cのプログラムはここを参照しました。
そして、スイッチを押すと0:00になるようにしてみました。
なかなか、良い感じ。
ちゃんと反応しています。
ところが、スイッチを乱打すると、しばらくしてフリーズしてしまいました。
ならば、まりすさんのアドバイス通り、I2Cのタイムアウトを検出して....
ん? wireの説明にタイムアウトがありません。
ググってみると案の定、I2Cのタイムアウトは取っていないとのこと。
さらに、普通にしててもハングすることがあるらしいことが分かりました。
ArduinoのI2Cのライブラリってダメダメじゃん。
また、Sim@Sim0000さんのブログも見つけました。
ちょっと、じっくり考えて対策を考えることにします。
について、スイッチの件は、まりす@maris_HYさんから
ヒントを頂いたので、「ちっちゃいーの」本体のスイッチが
使えそうだと分かり、とにかくRTCのスケッチを書いてみました。
なかなか時間が取れずに居ましたが、
とりあえず出来たのが、これです。
時間はでたらめですが、表示できました。
3x8ドットで数字を表示したので、7セグっぽい感じになりました。
このモジュールに使われているRTCのICはDS1307で、
ググるといろいろ出てきます。
I2Cのプログラムはここを参照しました。
そして、スイッチを押すと0:00になるようにしてみました。
なかなか、良い感じ。
ちゃんと反応しています。
ところが、スイッチを乱打すると、しばらくしてフリーズしてしまいました。
ならば、まりすさんのアドバイス通り、I2Cのタイムアウトを検出して....
ん? wireの説明にタイムアウトがありません。
ググってみると案の定、I2Cのタイムアウトは取っていないとのこと。
さらに、普通にしててもハングすることがあるらしいことが分かりました。
ArduinoのI2Cのライブラリってダメダメじゃん。
また、Sim@Sim0000さんのブログも見つけました。
ちょっと、じっくり考えて対策を考えることにします。