Arduinoから74HC595への出力がうまくいきました。
Arduinoの出力は3端子のみで8つのLEDを操作しています。
写真のArduinoはスイッチサイエンス製Cielduino、れっきとしたArduino互換機です。
このプログラムは0から255までの数字を2進数で1つずつカウントアップするという簡単なプログラムです。
比較的簡単に出来上がったのですが、なぜか桁の大きい方から数字がスタートしてしまいました。
悩んだ挙句判ったことは、シフトレジスタの入力は桁の大きい方から入力しなければいけないということでした。
次は本当に7セグメントを繋げてみるぞぉ。
文字のマトリックスを作らねば。
#define pin_SI 2 //pin 14 on 74HC595
#define pin_SCK 3 //pin 11 on 74HC595
#define pin_RCK 4 //pin 12 on 74HC595
byte j = 0;
void setup() {
pinMode(pin_SI, OUTPUT);
pinMode(pin_SCK, OUTPUT);
pinMode(pin_RCK, OUTPUT);
}
void loop() {
digitalWrite(pin_RCK, LOW);
for (int i= 7 ; i>=0; --i){ //桁の大きい方からシフトレジスタに入れてあげる
digitalWrite(pin_SCK, LOW);
if ((j >> i) & 1 == 1) {
digitalWrite(pin_SI, HIGH);
} else {
digitalWrite(pin_SI, LOW);
}
digitalWrite(pin_SCK, HIGH);
}
digitalWrite(pin_RCK, HIGH);
delay(1000); // wait for a second
++j;
}