CO2測定器のUIと内部処理を見直しました。UIは従来のものに加え、リング状の中に濃度を表示してみました。少しはカッコよくなったか。下記は1,000ppm未満なので緑色のリングですが、濃度に応じてリングの色が変わります。
太い線の円は描けないので、半径を変えて複数描画しています。これだけだと太くはなるのですがモアレが表示されてしまうので、中心点も移動しながら塗りつぶせるように描画しています。当初、塗りつぶしで大きな円を描き、小さめの円を黒塗りしていたのですが、書き換え時に一瞬大きな円の塗りつぶしが表示されるのが見えてしまうので、このようにしました。
内部処理の見直しは、これまでmillis()関数で前回測定から10秒経過したかを判断していましたが、タイマー割り込みを使って時間をカウントするようにしました。10ms毎の割り込みでタッチスイッチの状態確認(チャタリング排除のためのサンプリングですが、タッチスイッチでは意味はないかな)をし、その中で1,000カウントすることで10秒を測っています。
下記は本日のダイニングのCO2濃度で、右端が17:45頃です。11時間前あたり(朝6:30頃)に4,000ppmのピークがでていますが、これは朝方寒くてファンヒータをつけたことによるものです。
これでプログラムはほぼ完了とします。コードを少しキレイにして、この週末あたりに回路図と共に公開予定です。需要はあるか分かりませんが。
0 件のコメント:
コメントを投稿