2014/08/18

7segLED時計の試作(AVRマイコン)

AVRマイコンと4桁7segLEDを使った時計を試作しました。今回は時刻合わせ機能も入れてあります。

用意するもの


1秒の作り方


前回と同じ方法で作ります。

回路図


今回は4桁7segLEDをダイナミック点灯方式で使います。以下に回路図を示します。

図1 7segLEDボード回路図

手持ち部品がアノードコモンタイプの7SegLEDとNPNトランジスタのみだったので一般的なエミッタ接地ではなく、コレクタ接地(エミッタフォロワ)回路になっています。

図2 ボード間接続図

プッシュスイッチにプルアップ抵抗がありませんが、AVR内蔵のプルアップで代用しています。

機能


時計表示機能
 24時間表記で時分を表示します。4桁LEDなので秒数は表示できません。
 秒数は7seg LEDの小数点を点滅させることで表現します。
 秒数により点滅する小数点の位置を変え、大まかな秒数が把握できるよう
 にします。
  00-14秒:1桁目の小数点を点滅、2-4桁目は消灯
  15-29秒:2桁目の小数点を点滅、1桁目は点灯、3-4桁目は消灯
  30-44秒:3桁目の小数点を点滅、1-2桁目は点灯、4桁目は消灯
  45-59秒:4桁目の小数点を点滅、1-3桁目は点灯

日付表示機能

 Bボタンを押すと年(4桁)を表示します。
 さらにBボタンを押すと月日を表示します。
 さらにBボタンを押すと曜日を表示します。

日時修正機能

 Aボタンを長押し(3秒)すると日時修正モードに入ります。
 年→月→日→時→分→秒の順に入力します。
 Bボタンを押すことにより各値がインクリメントされます。
 秒修正時はBボタン押下で00秒に設定されます。
 3秒間何も操作しないと時計表示モードに戻ります。(そこまでに
 入力した値は反映されます)
 曜日は入力しません。(年月日から自動計算されます)
 うるう年を認識します。(2/29はうるう年のみ入力を受け付けます)

オートディマー(減光機能)

 夜間(23-06時)は減光モードになります。ボタンを押すと通常モードに
 なります。5秒間何も操作しないと減光モードに戻ります。

状態遷移図


上述の機能を状態遷移図化したものを以下に示します。

図3 状態遷移図

完成


こんな感じで動きます。

【備忘録】時系列データの編集方法(R言語, tidyverse)

TimeSeries.knit 1 サンプルデータ作成 2 日付単位に集計する 2.1 月毎集計 2.2 四半期毎集計 ...