fc2ブログ

AE-ATMEGA328-MINIで簡易オシロを作る(2)

 前回の続きです。配線もArduinoの設定、スケッチの書き込みも終わりましたので、今回は、Processingの実行からです。

4.Processing用スケッチを実行
 ダウンロードしたソフトのProcessingフォルダ内のProcessing Source Code(pde)ファイル「kit_scope」を開きます。ProcessingのIDEが起動したら、Runボタンを押して実行させます。Processing_Run_180430.pngCH1のみ配線しており、信号を入れていない状態なので、0Vを示しています。
 次に信号発生器として利用するRaspberry Pi Zeroからパルス信号を入れますが、簡便に「gpioコマンド」をターミナルから打ち込んで出力しました。事前にWiringPiをセットアップしておくことをお忘れなく・・。周波数やDuty比の制御はこのサイトを参考にさせていただきました。ありがとうございました。

 まず、GPIO18(ピン番号12)を「pwmモード」にします。
gpio -g mode 18 pwm
 PWMには「BALLANCEモード」と「MARK:SETモード」の2つがあり、BALLANCEモードは制御しにくいとのことなので、MARK:SETモードを使いました。
gpio -g pwm-ms

 また、PWMの周波数は、CLOCK値とRANGE値で決まり、以下の式で表わされるとのことなので、
 PWM周波数 = 19.2MHz / CLOCK値 / RANGE値
50Hz(周期T = 20msec)ならば、CLOCK値を192、RANGE値を2000に設定します。
 50Hz = 19.2*10^6 / 192 / 2000
gpio -g pwmc 192
gpio -g pwmr 2000
 次に、Duty比は以下の式で表されるとのことなので、50%の信号(矩形波)を入れてみました(VALUE = 1000)。
 Duty比 = VALUE / RANGE
gpio -g pwm 18 1000
signal_50Hz-50p.png10ms/divの時間軸で、20msec(50Hz)の信号が確かに入力され、オシロで表示できました。

Duty比を25%にすると、
gpio -g pwm 18 500
signal_50Hz-25p.png確かに、ON時間が50%の半分の25%になりました。

次に、Duty比は50%に戻して、25Hz(40msec)に周波数を変更します。
gpio -g pwm 18 1000
gpio -g pwmc 384
signal_25Hz-50p.pngこれも問題なしです。

最後に100Hz(10msec)に周波数を変更します。
gpio -g pwmc 96
signal_100Hz-50p.pngいい感じです。簡易オシロとは言え、クオリティが高いですね。また、安価にオシロが構築できるのも◎です。今後も何かに使いたいものです・・。
スポンサーサイト



コメント

非公開コメント

ご訪問者数

(Since 24 July, 2016)

タグクラウド


プロフィール

Dr.BobT

Author: Dr.BobT
興味のおもむくままに生涯考え続けるエンジニアでありたい。

月別アーカイブ

メールフォーム

名前:
メール:
件名:
本文: