記事一覧

Raspberry Pi Zero W でPWMでLチカ(GPOIをWiringPiでコントロール)

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段階で出力することができます。

WiringPi21.png


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

配線図

WiringPi22.png

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;
}


画像版

WiringPi08.png

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

WiringPi09.png

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

WiringPi10.png

じわじわLEDを光らせて、じわじわLEDを消すことができました。



それでは今回はこの辺で失礼します!ありがとうございました。

スポンサードリンク

コメント

コメントの投稿

非公開コメント

プロフィール

RoboTakao

Author:RoboTakao
みなさんご訪問ありがとうございます。ロボット作りたいけどお小遣いそんなにないし、簡単でローコストでロボットを作るための私のプロジェクトを紹介します。

ウェブサイトもありますのでそちらもよろしくお願いします。
http://robotakao.jp/

スポンサーリンク