桜のはなびらどっとねっとロゴ

桜のはなびらどっとねっと

Raspberry Pi 2 でフルカラーLED制御(2)

この記事は1年以上前に投稿された記事です。 この警告表示について

IMG_4508_20150524

前回の記事が長くなりそうだったので分割しました。

フルカラー制御してみる

次はLEDで様々な色を出してみたいと思います。
今まではシェルでコマンドを叩いて実行していましたが、今回からはC言語を使用して制御してみたいと思います。なぜC言語なのかというのは、単純にPythonを触ったことがないからだったりするのですが。

C言語とはなんぞや?と言う人はどこかのサイトで適当に勉強してください。

 

基本事項

まず前提としてCコンパイラとWiringPiがインストールされていることが必要です。
前回の記事を実施したならWiringPiは入っているはずですが、GCCはもしかしたら入っていないかもしれないので、念のため apt-get -y install gcc-4.8 を実行しておいてください。(これで入っていても最新版の4.8系が入ります)

ちなみにコンパイルと実効に管理者権限が必要ですので、最初に sudo su -でrootになってください。

コーディング

ソースコード行頭に以下の行を追加してください。

これでWiringPiが使用できるようになるはずです。

※ポート番号等は各自環境に合わせて置き換えてください。

#define にて各LEDのポート番号を定義しておきます。
こうすることで後から色々と編集するときに楽です。(今回はテストなので直書きしても良いんですけど。今後のためにね。)

LED_RED = 赤 LED_GRE=緑 LED_BLU=青
と言う事にしました。

次にメイン処理系に以下の1行を追加してWiringPiを初期化します。

(本当はこの命令の戻り値を見て初期化できているかを確認しないといけないのだけど今回は省略。実際にソフトとして完成させるときはしっかりとエラー処理をしよう!)

使用するポートを出力ポートに設定します。

ポートをソフトウェアPWMモードに変更します。

()の中身は ポート番号,最小値,レンジ ソフトウェアPWMのレンジは最大100。
LEDの制御なら0と100でOK。0%~100%なら明るさの把握もしやすいしね!

各LEDの明るさを入れる変数を作ります。

r=赤 g=緑 b=青
とりあえず今回はこの値を使います。

指定した明るさでLEDを点灯させる

これでコーディング終わり。
一応動くコードを貼るとこんな感じ

コンパイル

コンパイルするときには「 -lwiringPi 」オプションを付けてコンパイルします。

これで ./ledtest を実行してLEDの発光色が前回の7色ではない、指定した色になっていれば成功です。

実行結果

上のソースを実行したらこんなかんじの色になります。(パターンA)

IMG_4512_20150524

なお、上のソースコードでコメントアウトしている2つの値ではこうなります。

パターンB

IMG_4513_20150524

パターンC

IMG_4514_20150524

以上でフルカラーLEDの制御は終了です。
昔のマイコンみたいな3bitRGBカラーなら制御は割と簡単です。それ以外の中間色を出そうと思うと少々めんどくさいですね。だけどこれは応用すれば色々と使えると思います。何に使うかはアイデア次第ですね。

コメントを残す

メールアドレスが公開されることはありません。