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

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

Arduino UnoでフルカラーLEDの制御

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

P1010170

前回簡単に解説したArduino UnoでフルカラーLEDを使ってIOポートの制御方法を説明したいと思います。

準備するもの

適当なフルカラーLED(今回はアノードコモンを使用)
適当な抵抗(用意したフルカラーLEDの仕様と欲しい輝度にあったもの)

配線

P1010182

まぁいい感じで。
※今回はArduino側にピン番号と機能が書かれているのでIO表はありません。

コーディング

まず、ArduinoのIDEを立ち上げるとこういう感じのコードが出てくると思います。

setup()の方はArduino起動時に1回だけ実行されるプログラムを書き込みます。
例えば使用ハードウェアの初期化などですね。

loop()はメインのループ処理を行う関数です。ココに基本的な処理を書きます。

ということでsetup()の方にピンの初期化命令を、loopの方にIOピンを制御する命令を書きます。

なお、今回はデジタルIOで使用しますが、今後のためにPWM対応の9~11ピンを使用しました。

それではsetupの方に初期化命令を書きます。

pinMode(ピン番号,OUTPUT);で出力に切り替えて終わりです。

Arduino言語は非常に簡素にプログラムが出来るように作られているのでこれでおしまいです。
実はIOポートの使い方はWiringPiと同じです。(Arduino言語のベースであるWiring言語と同じ要領でIO制御を行える事を目指したのがWiringPiなので。)

次に制御プログラムを書きます。

Arduinoに搭載されているマイコンはメモリが少ないので符号なしショート型で変数を初期化します。
今回はこの変数(i)の値を基にして光るLEDを決めることにします。

次にwhile(1)で無限ループを作りその中に出力変更命令を入れます。
digitalWrite(ピン番号,値);で出力を制御します。値は変数iの数値を8で割って、そのbitをマスクとビットシフトで抜き出しています。今回はアノードコモンなので先頭に~を付けて出力を反転しています。

そして1秒待って最初に戻ります。

動作

作成したプログラムを前回の手順でマイコンに書き込むと動作が始まります。

P1010182P1010183P1010184P1010185
P1010186P1010187P1010188P1010189

この写真では綺麗に色が出ていますが、このLEDは実際のところあまり良く混ざりません。
ですので何らかの方法で光を混ぜる必要があります。

プログラム

全体のプログラムを乗せます。

ちなみにこれは11→R 10→G 9→B としていますが、
これを11→B 10→R 9→GとすることでN-88BASICの色番号と同じになります。

コメントを残す

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