« Arduinoで作ろう(53) バーサライタを作ってみた | トップページ | Arduinoで作ろう(55) 74HC595のカスケード接続 »

2021年12月20日 (月)

Arduinoで作ろう(54) 74HC595 を使ってLチカ

74hc595_8led_ シフトレジスタ 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[]の要素数を計算しています。こういうやり方があるんですね。初めて知りました。
20211220 以前 aitendoで買った「74HC595シールドキット」(廃版になったみたい)というのを使ってみました。

// 74HC595を使って8個のLEDを制御

#define SDI   8
#define LAT   9
#define CLK 10

byte 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);
  }
}

 

  

| |

« Arduinoで作ろう(53) バーサライタを作ってみた | トップページ | Arduinoで作ろう(55) 74HC595のカスケード接続 »

Arduino」カテゴリの記事