前回まではGLCDへのBMP画像を出力させたり、円,直線を出力させる記事(どちらかというと動画)を書いてきました。
今回はオシロスコープを作成しました!
それでは、いってみましょう。
オシロスコープとは?
オシロスコープは電気信号を波形という形でみるための装置のことです。
中学,高校時代に下図のような装置をみたことがありませんか?これがオシロスコープです。
オシロスコープを使うことで波形を確認することができます。
その結果、振幅の大きさだけでなく、波形のon,off時間などを確認することができるようになります。
ノリユキオシロスコープのスペック
こんな感じのスペックになりました。
①0~5Vまでの電圧を測定可能
②サンプリング周期は10ms,25ms,50msの3通り
③サンプリング周期の切り替えはロータリーDIPスイッチ
④1チャネル動作
①0~5Vまでの電圧を測定可能
マイコンの電圧が0~5.5Vであるため、測定電圧の範囲を0~5Vにしました。
②サンプリング周期は10ms,25ms,50msの3通り
サンプリング周期について下図を用いて説明します。
図はGLCDの拡大図です。
横軸の赤枠部分について、左側のドットが表示されてから右側のドットが表示されるまでの速度のことをサンプリング周期といいます。
本当はこのサンプリング周期をより短くしたかったのですが、私の能力では無理でした。
このオシロスコープの測定プログラムは、
①タイマーでサンプリング周期を作る
②サンプル周期になったら割り込み関数の発生
③AD変換
④データ取得
こんな感じでやりました。この測定プログラムより、
“サンプリング周期”=”①+②+③+④にかかる時間の合計”ということになります。
②、③、④は0sであることが理想です、しかし現実には0sではありません。。
それではどこに大きな問題があったかというと③AD変換です。②、③、④の中でAD変換が一番時間を要します。
サンプリング周期(①)をさらに少なくすると、AD変換にかかる時間を無視できなくなりました。
具体的にはサンプリング周期=1msにしたら、ad変換にかかる時間を無視できなくなり、その結果、正確なグラフが描けなくなりました。
マイコンの周波数1MHzではこれくらいが限界のようです。
このような理由からサンプリング周期を10ms,25ms,50msにしました。
ノリユキオシロスコープではサンプルリング周期(①)を大きくすることで、AD変換③にかかる時間を無視してもGLCDへの表示に影響がないようにしました。
③サンプリング周期の切り替えはロータリーDIPスイッチ
ロータリDIPスイッチは下図のようなものです。
ダイヤル部分をまわすことでサンプリング周期を切り替えられるようにプログラムを組みました。
④1チャネル動作
測定は1つだけということです。
2チャネルとなると、2つ測定できるようになります。
そうなるとただでさえ遅いサンプリング周期をさらに遅くする必要があります。
今回は波形が見えれば十分なので、1チャネルにしています。
最後にオシロスコープの表示について説明させてください。下図に示します。
y軸の補助線間(破線)の間隔は1.25V/divになります。
x軸の補助線間(破線)の間隔は,サンプリング周波数が
10msときは0.5s/div。25msのときは1.25s/div。50msのときは2.5s/divとなります。
ノリユキオシロスコープのスペックの説明は以上です。
オシロスコープの回路
回路図を下図に示します。左図がマイコン-GLCD間、右図がマイコン-ロータリDIPスイッチ間の接続になります。
GLCD-マイコン間の接続は前回、前々回の記事と同じです。
波形を測定するための端子はPC0(マイコン側)、もう一方はGNDにしました。
ロータリDIPスイッチとマイコン間の接続は、PIN1をPB5(マイコン側)、PIN2をPB6(マイコン側)、PINCをGNDに接続します。
それ以外のロータリDIPスイッチのPIN(4,8)は使用しません。
以上です。
実験
オシロスコープで検出するための信号は別のマイコンで作りました。その信号はこのような波形です。
highが700ms、lowが500msの波形です。これをオシロスコープで検出します。
それでは動画をみてください。動画時間は4分30秒くらいです。
いかがでしたか!?ノリユキオシロスコープで上記波形を検出できていることが確認できました!
サンプリング周期を変えることでグラフも追従して変化していることがわかります。
次回は、、、
GLCD関係の記事はいったんおわりになります。
次回はI2Cになります。
本日はここまでです。毎度ありがとうございます。