Raspberry Piで7セグメントLEDを簡単に点灯させよう (4) 配線量を少なくできるシフトレジスタを使った点灯方法 その3
■4桁の7セグメントLEDが入手できる
1桁、2桁と点灯実験をしてきました。4桁あれば、電圧などを表示するときに役立ちます。シフトレジスタ74HC595を搭載した4桁の7セグメントLEDが販売されています。8桁の製品もあります。また、シフトレジスタではなく専用のICを搭載した製品もあります。
ここでは、74HC595を搭載した4桁の7セグメントLEDを取り上げますが、この製品にも74HC595が2個、4個搭載の異なる製品があります。
1個の7セグメントLEDに対して1個の74HC595が必要なのに、半分の個数でも表示ができる製品があります。これは、1個の74HC747がセグメントのデータを保持し、もう1個は桁の情報を持つように設計されています。したがって、データを送っただけでは、1個の7セグメントLEDしか点灯しません。全桁を点灯するためには、短時間にそれぞれを切り替えます。ダイナミック点灯と書かれてい場合があります。実際に点灯させるとちらつくことがあります。
ここでは、4個の74HC595を搭載した4桁の7セグメントLEDを取り上げます。ebayで購入しました。
●7セグメントLEDボードとの接続
製品によって端子名がいろいろあります。電源が2本あります。信号線は、秋月電子通商の製品と同じく3本です。前回の接続とGNDのピンを変更しました。こちらのほうが配線しやすいです。
GPIOのピン番号と機能 | 7セグメントLEDボードのピン名称 |
---|---|
17 +3.3V | VDD |
19 MOSI | SDI |
20 GND | GND |
23 CLK | SCK |
24 CE0 | LOAD |
●プログラム
秋月電子通商の製品とはLEDの点灯するデータが異なり、負論理で指定します。数字の1は11111001=chr(249)です。「0987」を表示するプログラムです。
#!/usr/bin/env python #pin raspi 74HC595 SPI_Ch= 0 #CE0 # initialization #main print("done") |
表示の数字 | chrに入れる数値 |
---|---|
1 | 249 |
2 | 164 |
3 | 176 |
4 | 153 |
5 | 146 |
6 | 130 |
7 | 248 |
8 | 128 |
9 | 152 |
0 | 192 |
「4321」と表示した例です。