Arduino マルチファンクションシールドを使ったシフトレジスタとダイナミック点灯のプログラミングの続き。
「ラボワーク」(ホチキス先生の「プログラマーと呼ばれたい」)に参加して学んだことをブログにてまとめています。
7セグメントLEDを点灯させるプログラムをメソッド化します。次のプログラムはLEDチューブを点灯させるメソッド「ledseg」を定義し、バイド型の引数を2つ渡してLEDチューブを点灯させます。引数1で数字の型を決め、引数2で点灯させるチューブを決めます。
byte myByte1 = 0xC0;//C0,F9,A4,B0,99,92,82,F8,80,90,7F
byte myByte2 = 0xF1;//F1,F2,F4,F8 左から1,2,3,4番目のチューブ
void setup() {
// put your setup code here, to run once:
pinMode(4,OUTPUT);// multifunction board pin 4(LATCH)Digispark pin 0
pinMode(7,OUTPUT);// multifunction board pin 7(CLOK)Digispark pin 1
pinMode(8,OUTPUT);// multifunction board pin 8(DATA)Digispark pin 2
}
void loop() {
// put your main code here, to run repeatedly:
ledseg(myByte1,myByte2);
}
void ledseg(byte myByteData1,byte myByteData2){
digitalWrite(4,LOW); //LATCHをLOWにして外す
shiftOut(8,7,MSBFIRST,myByteData1);
shiftOut(8,7,MSBFIRST,myByteData2);
digitalWrite(4,HIGH); //LATCHをHIGHにしてラッチする
}
ここまでのプログラムで任意のLEDチューブに表示することができましたが、表示できる数字はただの1種類です。それぞれのチューブに異なる数字を表示させることはできません。あくまでも1つの数字を表示させるだけです。1234と表示させたい場合には「ダイナミック点灯」という手法を使います。
▫️参考ページ
ホチキス先生の「プログラマーと呼ばれたい」
Arduino マルチファンクションシールドを使ったシフトレジスタとダイナミック点灯プログラミング
Arduino マルチファンクションシールド shifuOut を使った点灯のスケッチ 2/4
Arduino マルチファンクションシールド メソッド化 点灯のスケッチ 3/4
Arduino マルチファンクションシールド ダイナミック 点灯のスケッチ 4/4
Netduino で Arduino 用の multifunction シールドを使う(1) – Arduino UNO R3 学習向け多機能拡張
Netduino で Arduino 用の multifunction シールドを使う(2) – Microsoft Visual Studio Express 2013
Netduino で Arduino 用の multifunction シールドを使う(3) –
Netduino ファームウエアのアップデート
Netduino で Arduino 用の multifunction シールドを使う(4) – オンボードの 4つの LED を点灯させる
コメントをお書きください