LESSON 017
シフトレジスタ(74HC595)を用いて任意のデータでLEDを制御する。
LESSON 016 では シフトレジスタ の シリアルデータ から パラレルデータ に変換する仕組みを解説し、シフトレジスタ内部でもデータの循環する機能について実験しました。
今回は単純に任意のデータを出力する方法を説明します。
const int SER = 8;
const int RCLK = 9;
const int SRCLK = 10;
void setup() {
pinMode(SRCLK, OUTPUT);
pinMode(RCLK, OUTPUT);
pinMode(SER, OUTPUT);
}
void loop() {
byte data = B00101111;
shiftOut(SER,SRCLK, MSBFIRST, B01010101);
digitalWrite(RCLK, LOW);
digitalWrite(RCLK, HIGH);
delay(1000);
shiftOut(SER,SRCLK, LSBFIRST, B01010101);
digitalWrite(RCLK, LOW);
digitalWrite(RCLK, HIGH);
delay(1000);
shiftOut(SER,SRCLK, MSBFIRST, data);
digitalWrite(RCLK, LOW);
digitalWrite(RCLK, HIGH);
delay(1000);
shiftOut(SER,SRCLK, LSBFIRST, data);
digitalWrite(RCLK, LOW);
digitalWrite(RCLK, HIGH);
delay(1000);
}
リンク
○ Arduinoでシフトレジスタ(74HC595)でLEDを制御する場合は、GPIO 3ピンで8つの信号(LED)を制御出来ます。今回はLEDを点灯させる実験しましたが、LEDからモーターへ替えると3つの信号でモータ 8個を駆動出来ます。
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。