2015年9月12日土曜日

LEDと照度センサーでPID制御の確認


2015/09/06 : 初公開
2015/09/11 : LCD動画追加


フィードバック制御の一つであるPID(Proportional-Integral-Derivative Controller)の
動作を見てみようと思います。

PIDを説明するとき車の速度を制御する例がよく利用されます。目標速度を指定しアクセルと
速度センサで目標の速度になるようにする例です。

しかし、ここでは目標の明るさを指定しLEDの明るさと照度センサを使用してPID制御を行う例をやってみようと思います。


目標の明るさの指定はボリュームダイアル(0~255)で行う。
LEDの明るさは PWM出力(0~255)で調整する。
今の明るさは照度センサのアナログ値(0~255)で取得する


ビジュアル化として次の値をLCDに表示する。

 目標の明るさ値 :入力値 0~255 : LCDのSETTING値  : 家に転がっていたもの
 LEDの明るさ値  :出力地  0~255 : LCDのLED(PWM)値  : 家に転がっていたもの
 今の明るさ値    :入力値  0~255 : LCDのSENSER値     : 秋月電子で購入(NJL7502L)抵抗は10KΩ

目標の明るさを変化させたさせた時のPID制御の時系列的変化をグラフで表示する。
時系列変化のグラフはLED(PWM)の値を表示しています。

なお、LCDの下部のサインカーブはLCDの動作検証(デモ)用として表示しています。





使用したCPU基板は GR-KURUMI、LCDは秋月電子で購入のシャープ製(LS027B4DH01)です。
開発環境はルネサス「がじぇっとるねさす」のコミュニティーサイトで提供さてている ArduinoIDEに似た
gr-kurumiIDEを使用しました。
左上の青いarduino基板はLCDを見やすく傾けるために使用しているだけです。