マイコンArduinoを使って電光掲示板を作る。

マイコンArduinoを使って電光掲示板を作る。

 

続き

 

今回はLEDモジュールを点灯させて行きます。

 

先ずは全点灯

200円のジャンクパーツでも十分綺麗です。

 

プログラムはこんな感じ

void setup() {
  // put your setup code here, to run once:
  pinMode(3,OUTPUT); // デジタルピンのD3を出力に設定する
  pinMode(4,OUTPUT); // デジタルピンのD4を出力に設定する
  pinMode(5,OUTPUT); // デジタルピンのD5を出力に設定する
  pinMode(6,OUTPUT); // デジタルピンのD6を出力に設定する
  pinMode(7,OUTPUT); // デジタルピンのD7を出力に設定する
  pinMode(8,OUTPUT); // デジタルピンのD8を出力に設定する
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(3,HIGH); // コモン
  digitalWrite(4,HIGH); // カラムA
  digitalWrite(5,HIGH); // カラムB
  clock();
  digitalWrite(7,HIGH); // ラッチ
  digitalWrite(8,LOW); // イネーブル
}

void clock() {
  digitalWrite(6,HIGH);  // クロック
  digitalWrite(6,LOW); // クロック
}

setup()で初期設定

loop()の中はコモン、カラムA、カラムBをHにセットしてクロックで送っています。

クロックはclock()と言う関数を作りました。

ラッチで反映、イネーブルで表示ONで点灯

loop()の中で繰り返し実行されるので画像の通り全点灯

 

次は個別に点灯させます

プログラム

void setup() {
  // put your setup code here, to run once:
  pinMode(3,OUTPUT); // デジタルピンのD3を出力に設定する
  pinMode(4,OUTPUT); // デジタルピンのD4を出力に設定する
  pinMode(5,OUTPUT); // デジタルピンのD5を出力に設定する
  pinMode(6,OUTPUT); // デジタルピンのD6を出力に設定する
  pinMode(7,OUTPUT); // デジタルピンのD7を出力に設定する
  pinMode(8,OUTPUT); // デジタルピンのD8を出力に設定する
  

  // クリア
  digitalWrite(3,LOW); // コモン
  digitalWrite(4,LOW); // カラムA
  digitalWrite(5,LOW); // カラムB
  clock();clock();clock();clock();clock();clock();clock();clock();
  clock();clock();clock();clock();clock();clock();clock();clock();
  digitalWrite(7,HIGH); // ラッチ
  digitalWrite(7,LOW); // ラッチ

 

  // 右上の1点だけ点灯

  digitalWrite(3,HIGH); // コモン
  digitalWrite(4,HIGH); // カラムA
  digitalWrite(5,HIGH); // カラムB
  clock();
  
  digitalWrite(7,HIGH); // ラッチ
  digitalWrite(8,LOW); // イネーブル
}

void loop() {
  // put your main code here, to run repeatedly:
}

void clock() {
  digitalWrite(6,HIGH);  // クロック
  digitalWrite(6,LOW); // クロック
}

今回は動きが分かり易いように1回だけ実行するようにsetup()の中に書いています。

初期設定をしてクリアしています。

クリアは信号をLにしてクロックを16回送ってデータを消しています。

その後信号をHにしてクロックを1回送っています。

ラッチで反映、イネーブルで表示ONで点灯

 

次は個別に点灯させます(位置の移動)

プログラム

void setup() {
  // put your setup code here, to run once:
  pinMode(3,OUTPUT); // デジタルピンのD3を出力に設定する
  pinMode(4,OUTPUT); // デジタルピンのD4を出力に設定する
  pinMode(5,OUTPUT); // デジタルピンのD5を出力に設定する
  pinMode(6,OUTPUT); // デジタルピンのD6を出力に設定する
  pinMode(7,OUTPUT); // デジタルピンのD7を出力に設定する
  pinMode(8,OUTPUT); // デジタルピンのD8を出力に設定する
  

  // クリア
  digitalWrite(3,LOW); // コモン
  digitalWrite(4,LOW); // カラムA
  digitalWrite(5,LOW); // カラムB
  clock();clock();clock();clock();clock();clock();clock();clock();
  clock();clock();clock();clock();clock();clock();clock();clock();
  digitalWrite(7,HIGH); // ラッチ
  digitalWrite(7,LOW); // ラッチ

 

  // 右上の1点だけ点灯

  digitalWrite(3,HIGH); // コモン
  digitalWrite(4,HIGH); // カラムA
  digitalWrite(5,HIGH); // カラムB
  clock();

 

  // 左下へ移動
  digitalWrite(3,LOW); // コモン
  digitalWrite(4,LOW); // カラムA
  digitalWrite(5,LOW); // カラムB
  clock();clock();clock();clock();clock();clock();clock();
  
  digitalWrite(7,HIGH); // ラッチ
  digitalWrite(8,LOW); // イネーブル
}

void loop() {
  // put your main code here, to run repeatedly:
}

void clock() {
  digitalWrite(6,HIGH);  // クロック
  digitalWrite(6,LOW); // クロック
}

右上点灯とほぼ同じですが左下へ移動の所でLにしてクロックを7回送ってます。

なんか感じが掴めたのでは無いでしょうか?

データのセット、クロックの入れ方でどのように表示されるか色々試して下さい。

 

次回はloop()の中で実行して行きたいと思います。

 

では、また。

 

mckeechan.hatenadiary.com