次回は主にArduinoをつかって、マトリクスLED制御の演習を行う予定です。
前回のWebカメラ演習とも関連した内容となります。ひきつづき複数の画素制御について演習していきます。
尚、マトリクスLEDについては以下のものを用意してきてください。
必要なもの:
・ノートパソコン
・Arduinoボード+USBケーブル
・ブレッドボード(できれば小型なもの2個)
・ジャンパワイヤー(オスーオスタイプ:できれば20本以上)
・マトリクスLED(アノードコモンタイプ)
*マトリクスLEDには、アノードコモンタイプとカソードコモンタイプがあります。複数のLEDの陽極(+)を共有接合してあるものか、陰極(ー)を共有接合してあるものかになりますが、今回はアノードコモンタイプを使う予定です(入手困難であればカソードコモンタイプでも構いません)。
また、マトリクスLEDがブレッドボードに対してサイズが大きいので、できれば小型なブレッドボードを2枚用意して、その2枚にまたがるように配置するとつかいやすくなります。
上記8x8のマトリクスLEDには、合計64個のLEDが内蔵されており、端子数も16個あるので、最低でも20本はジャンパワイヤーが必要となりますので、足りない場合は追加しておいてください。
授業内のサンプル: (左上から順番にひとつずつLEDを点灯させる)
マトリクスLEDにはアノードコモンタイプとカソードコモンタイプがあり極性が逆になります。
以下プログラム内のdigitalWrite()のHIGH/LOWが逆になります。
*アノードコモンタイプの場合:
void setup(){
//16本のピン(2~17)をデジタル出力に設定
for(int i=2;i<=17;i++){
pinMode(i,OUTPUT);
}
}
void loop(){
//行(横)の繰り返し処理
for(int i=2;i<=9;i++){ //行(2~9番ピン)
digitalWrite(i,LOW); //LOWで点灯
//列(縦)の繰り返し処理
for(int j=10;j<=17;j++){ //列(10~17番ピン)
digitalWrite(j,HIGH); //HIGHで点灯
delay(100); //点灯時間
digitalWrite(j,LOW); //列をオフにする
}
digitalWrite(i,HIGH); //行をオフにする
}
}
*カソードコモンタイプの場合:
void setup(){
//16本のピン(2~17)をデジタル出力に設定
for(int i=2;i<=17;i++){
pinMode(i,OUTPUT);
}
}
void loop(){
//行(横)の繰り返し処理
for(int i=2;i<=9;i++){ //行(2~9番ピン)
digitalWrite(i,HIGH); //HIGHで点灯
//列(縦)の繰り返し処理
for(int j=10;j<=17;j++){ //列(10~17番ピン)
digitalWrite(j,LOW); //LOWで点灯
delay(100); //点灯時間
digitalWrite(j,HIGH); //列をオフにする
}
digitalWrite(i,LOW); //行をオフにする
}
}