Arduinoで作ろう(54) 74HC595 を使ってLチカ
シフトレジスタ 74HC595 を使ってLチカをやってみました。
Arduino と 74HC595 を3本の線でつなぐだけで8個のLEDを制御できるってのがイイですね。
shiftOut関数を使ってArduinoから1バイト (8ビット) のデータをシリアルでダダダッと送ると,それを74HC595 が受け取って15,1,2,3,4,5,6,7の8つのピンに出力してくれるわけです。説明が雑すぎですが,ネット上にちゃんとした説明がたくさんありますから調べてみましょう (丸投げ)。
下のスケッチにある,
sizeof(bitmap)/sizeof(byte)
というところで,データ配列bitmap[]の要素数を計算しています。こういうやり方があるんですね。初めて知りました。 以前 aitendoで買った「74HC595シールドキット」(廃版になったみたい)というのを使ってみました。
// 74HC595を使って8個のLEDを制御
#define SDI 8
#define LAT 9
#define CLK 10byte bitmap[] = {
0b00000000,
0b10000000,
0b11000000,
0b11100000,
0b11110000,
0b11111000,
0b01111100,
0b00111110,
0b00011111,
0b00001111,
0b00000111,
0b00000011,
0b00000001,
0b00000000
};void setup() {
pinMode( SDI, OUTPUT );
pinMode( LAT, OUTPUT );
pinMode( CLK, OUTPUT );
}void loop() {
for ( int i=0; i<sizeof(bitmap)/sizeof(byte); i++ ) {
digitalWrite( LAT, LOW );
shiftOut( SDI, CLK, LSBFIRST, bitmap[i] );
digitalWrite( LAT, HIGH );
delay(200);
}
}
| 固定リンク | 0
「Arduino」カテゴリの記事
- 大型7セグLEDを4個使った表示装置(2022.01.23)
- Arduinoで作ろう(61) Digisparkで7セグLED温度計(2022.01.16)
- Arduinoで作ろう(60) Digisparkでデジタル時計(2022.01.10)
- Arduinoで作ろう(59) DigisparkのP5を使えるようにした(2022.01.08)
- Arduinoで作ろう(58) DigisparkとLM35で温度計(2022.01.02)