さて。いよいよ設計に入ります。
今回はLEDの輝度調整にPWMと言うモノを使用いたします。
これを作り出すとともに検査を行う必要があります。
これにタイマー機能を活用すると、先日お話を致しました。
タイマー機能には大変多くの機能が存在致します。
上記は、タイマー機能の一覧です。
今は上記の意味が分からなくても大丈夫です。
ただ、マイコンのタイマー機能には数多くの機能があることがわかっていただけるだけで十分です。
上記図の中に「キャプチャ動作」「コンペア動作」と言うモノを見つけることが出来ますか?
「キャプチャ動作」と言うのは、GPIOの入力信号が「0」から「1」に「立ち上がった」、あるいは「1」から「0」に「立ち下がった」、その瞬間を取り出す動作を言います。
分かりにくいと思いますが、パルスには「立ち上がり」と「立ち下がり」があります。
この「立ち上がり」「立ち下がり」の瞬間を「キャプチャ(取り込む)」機能が通常のマイコンにはあるんです。
このタイミングでタイマー機能が持っている「時間計測機能」を組み合わせる。
すると、例えば「立ち上がり」でタイマースタート、「立ち下がり」でタイマーストップと言ったことが可能となります。
「コンペア動作」と言うのは、GPIOの入力信号を「0」から「1」に「立ち上げる」、あるいは「1」から「0」に「立ち下げる」動作を言います。
これとタイマーの時間計測機能を組み合わせる。
タイマーをスタートさせると同時に「立ち上げる」、決めた時間が経過したら「立ち下げて」ストップさせる。
あるいはその逆を行う。
・・・
これね。簡単に書いていますけど。。。
たったこれだけのPWMを測定するための測定器が数十万円で販売されている場合もあります。
まあまあ、そういうモノなんだということを理解いただければ問題ございません。
このような測定器、購入不可能なので。。。自分達で作成するわけです!
・・・
ちなみに「エッジ」と言う言葉が出てまいりますが、これは「立ちあがり」「立ち下がり」を意味していると考えてください。
「立ち上がりエッジ」「立ち下がりエッジ」
・・・
上記の図の中の
(5) 入力パルス間隔測定
(6) 入力信号のハイ/ロー・レベル幅測定
上記2つの機能を組み合わせると「PWM」情報を測定できそうです。
何故か分かりますか?
「PWM」についてもう少し詳しく調べて見ましょう。
ChatGPT、お願い致します。
PWMの時間幅を測定するためには2つの情報が必要です。
一つは「PWM信号の周波数」、もう一つは「デューティ比」です。
「(5) 入力パルス間隔測定」により「PWM信号の周波数」を測定。
「(6) 入力信号のハイ/ロー・レベル幅測定」により「デューティ比」を測定。
上記2つの情報からPWMの時間幅を測定することが可能となります。
・・・
ココはかなり難しいところです。
前述した通り、これだけの測定器で何十万円もする場合もあるのです。。。
それだけ難しいという事なんです。
これについては覚えておいてください!
ですから、今すぐにできなくても当たり前なんです。
・・・
では明日から、「実際のPWMを出力するプログラム」及び「そのPWMを測定するプログラム」の記述を開始致します。
宜しくお願い致します。