自分にやさしく

特小/電子工作/プログラミング/アニメ/雑記等

#03-1 [電子工作]Raspberry Pi

前回

yuhanaoka.hatenablog.com


今回は8章 「PWMを使って、色々動かす」に取り組む。

8章は書籍の中でも一番ボリュームがあって


・半固定抵抗を使ってLEDの高度を調整

・半固定抵抗を使ってRGB_LEDを発光

・DCモータを動かす

サーボモータを動かす

が含まれている。

今回ものんびり進めつつ

・半固定抵抗を使ってLEDの高度を調整

・半固定抵抗を使ってRGB_LEDを発光

に取り組んだ。

まず
用語の確認

PWM (Pulse Width Modulation) : パルス幅変調

パルス信号という 電気信号の「波」の幅を制御する信号方式のこと。
パルスとパルスの間隔を変更できるらしい。
ちなみにパルス一つの幅と周期Tの比を「デューティ比」と呼ぶ。
デューティ比が大きいほど、パルス同士の感覚は狭くなる。

他にもパルス振幅変調(PAM)という信号方式もあり、こちらはパルスの振幅(電圧)を制御できる信号方式みたい。


今回用いたパーツはこれ。

f:id:yuhanaoka:20170403013910j:plain

LEDは赤色。
RGB_REDは赤・青・緑のLEDが搭載されているもの。半透明のカバーをつけることで混色を表現できる。



PWMによるLEDの明るさ制御

回路はこんな感じになった。

f:id:yuhanaoka:20170403014008j:plain

ADコンバータが組み込まれると一気に複雑になったように見える。

プログラムの中でも気になったのはここ。
f:id:yuhanaoka:20170403014421p:plain

GPIO.OWM(25,50)でGPIO25 のPWM信号を50Hzで出力するようにしている。
つまり、実はLEDはずっと点灯している訳でなく、1秒間に50回(50Hz)点滅している。
PWMで制御する場合は、実は人間の目では判断つかない速度でLEDが点滅しているんだ!

ChangeDutyCycle関数でPWMのデューティ比を、半固定抵抗器から得た値に変更している。

そして、実行。

人間の目には50Hzの点滅は追えないけれど、カメラで撮影すると点滅しているのが分かる。

ちなみに、
GPIO.OWM(25,60)にした結果がこちら。

50Hzよりなめらかな点滅になった!



長くなりそうなので、次回にまわす。