Raspberry Pi Zero W でPWMでLチカ(GPOIをWiringPiでコントロール)
- 2017/11/30
- 00:06
Raspberry Pi Zero W でPWMでLチカ(GPOIをWiringPiでコントロール)
こんにちはRoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。
前々回はWirinPiでGPIOコントロールしてLチカをしました。
前々回の記事はこちらを参照してください。
前回はボタンを押すとLEDを点灯させてみました。
前回の記事はこちらを参照してください。
今回はPWMを使って徐々にLEDを光らせて、徐々にLEDを消すようにしてみます。
PWMについて
PWMとはPulse Width Modulationの略です。コンピュータはON-OFFだけ扱えるのですか、そのON-OFFの長さをコントロールすることでONとOFFの中間値を出力することができます。
まあ難しいことは抜きにするとPWMとはアナログ値を出力することができるポートと言えます。
Raspberry PiのGPIOのPWMは0〜1023の1024段階で出力することができます。

今回はこのPWMを使ってじわじわLEDを光らせて、じわじわLEDを消すようにしてみます。
配線図

C言語のコード
以下のコードをテキストエディタを使ってled_pwm.cという名前で作成します。
#include
#define LED_PORT 18 /* GPIO18 */
int main (void) {
int pw, i;
if(wiringPiSetupGpio() == -1) return 1; //Initirize
pinMode(LED_PORT, PWM_OUTPUT); //ピンモードをPWMのOUTPUTに設定
for (i=0; i<10; i++) {
for (pw=0; pw<1024; pw++) {
pwmWrite(LED_PORT, pw); //PWMで出力
delayMicroseconds(300);
}
for (pw=1023; pw>=0; pw--) {
pwmWrite(LED_PORT, pw); //PWMで出力
delayMicroseconds(300);
}
}
return 0;
}
画像版

コンパイル
次にコンパイルします。
備考)ここではhomeディレクトリのraspberrupi/というディレクトリを作ってさらにその中にTESTというディレクトリを作って上記のファイルを置きました。
cc –o led_pwm led_pwm.c –lwiringPi

コンパイルできたら実行です。
sudo ./led_pwm

じわじわLEDを光らせて、じわじわLEDを消すことができました。
それでは今回はこの辺で失礼します!ありがとうございました。
スポンサードリンク
MacからRaspberry Pi をリモートデスクトップ(Microsft Remote Desktop)経由で接続した場合のキーボード設定 ホーム
Raspberry Pi Zero W でボタン押してLチカ(GPOIをWiringPiでコントロール)