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

2018年9月25日

フィードバック制御の一つである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を見やすく傾けるために使用しているだけです。