7セグメントLED:7セグメントドライバ TC4511BP の使い方
7セグメントLEDは7個のセグメトで数字を表示するLEDの集合です。各セグメントにはa~gとDP(decimal point:小数点)の名称がふられています。
各LEDがカソーカソード側で接続されているカソードコモンと、アノード側で接続されているアノードコモンのモノがあります。
各セグメントは普通にLEDなので、扱い方も普通のLEDと同じです。
流量制限に抵抗を付けないと過電流で壊れます。
7セグメント制御用IC
7セグメントLEDに数字を表示する専用のIC(TC4511BP)を使用する事で数字を簡単に表示できます。※複数の7セグメントLEDを使用する場合は数字以外のA~F,H,L等を表示したい場合にはシフトレジスタを使用します。
A,B,C,D :入力 a,cb,c,d,e,f,g,:出力
|
入力と出力の対応:D,B,C,Aは2進数表現の0~9の数値(AがLSB)
接続図
7セグメントドライバの出力ピンa~gと7セグメントLEDのa~gを接続します。DPは7セグメントドライバでは操作できません。
7SEG-Driver.zip
※ <>を全角<>に置き換えています。コピペの際は注意してください。
#define SEGA 4
#define SEGB 5
#define SEGC 6
#define SEGD 7
void disp7Seg(int num) {
digitalWrite(SEGA,(((num & 0x01) != 0) ? HIGH : LOW)) ;
digitalWrite(SEGB,(((num & 0x02) != 0) ? HIGH : LOW)) ;
digitalWrite(SEGC,(((num & 0x04) != 0) ? HIGH : LOW)) ;
digitalWrite(SEGD,(((num & 0x08) != 0) ? HIGH : LOW)) ;
}
void setup() {
pinMode(SEGA,OUTPUT) ;
pinMode(SEGB,OUTPUT) ;
pinMode(SEGC,OUTPUT) ;
pinMode(SEGD,OUTPUT) ;
digitalWrite(SEGA,LOW) ;
digitalWrite(SEGB,LOW) ;
digitalWrite(SEGC,LOW) ;
digitalWrite(SEGD,LOW) ;
}
void loop() {
for (int i=0;i<=9;i++) {
disp7Seg(i) ;
delay(1000) ;
}
}