https://nobita-rx7.hatenablog.com/entry/2020/09/13/011558
TC4511BPでBCD入力でカソードコモン7セグの操作 配線が詳しい
#define TC4511_LE 6
#define TC4511_BI 5
#define TC4511_LT 4
#define TC4511_D 7
#define TC4511_C 3
#define TC4511_B 2
#define TC4511_A 8
void setup() {
Serial.begin(9600);
pinMode(TC4511_LE, OUTPUT);
pinMode(TC4511_BI, OUTPUT);
pinMode(TC4511_LT, OUTPUT);
pinMode(TC4511_D, OUTPUT);
pinMode(TC4511_C, OUTPUT);
pinMode(TC4511_B, OUTPUT);
pinMode(TC4511_A, OUTPUT);
}
#define Array 19
bool Val[Array][7] ={
/*LE,BI,LT, D, C, B, A*/
{ 0, 0, 0, 0, 0, 0, 0}, //0:8 ※優先順位1位(条件: LT=0)
{ 0, 0, 1, 0, 0, 0, 0}, //1:Blank ※優先順位2位(条件: BI=0 and LT=1)
{ 1, 1, 1, 0, 0, 0, 0}, //2:前回値保持 ※優先順位3位(条件:LE=1 and BI=1 and LT=1)
{ 0, 1, 1, 0, 0, 0, 0}, //3:0 ※以下優先順位4位(条件:LE=0 and BI=1 and LT=1)
{ 0, 1, 1, 0, 0, 0, 1}, //4:1
{ 0, 1, 1, 0, 0, 1, 0}, //5:2
{ 0, 1, 1, 0, 0, 1, 1}, //6:3
{ 0, 1, 1, 0, 1, 0, 0}, //7:4
{ 0, 1, 1, 0, 1, 0, 1}, //8:5
{ 0, 1, 1, 0, 1, 1, 0}, //9:6
{ 0, 1, 1, 0, 1, 1, 1}, //10:7
{ 0, 1, 1, 1, 0, 0, 0}, //11:8
{ 0, 1, 1, 1, 0, 0, 1}, //12:9
{ 0, 1, 1, 1, 0, 1, 0}, //Blank
{ 0, 1, 1, 1, 0, 1, 1}, //Blank
{ 0, 1, 1, 1, 1, 0, 0}, //Blank
{ 0, 1, 1, 1, 1, 0, 1}, //Blank
{ 0, 1, 1, 1, 1, 1, 0}, //Blank
{ 0, 1, 1, 1, 1, 1, 1}, //Blank
} ;
void loop() {
for (int i = 3; i < 13; i++) { // 3=>0,13=>ARRAY ORIGINAL
Serial.println(i);
digitalWrite(TC4511_LE, Val[i][0]);
digitalWrite(TC4511_BI, Val[i][1]);
digitalWrite(TC4511_LT, Val[i][2]);
digitalWrite(TC4511_D, Val[i][3]);
digitalWrite(TC4511_C, Val[i][4]);
digitalWrite(TC4511_B, Val[i][5]);
digitalWrite(TC4511_A, Val[i][6]);
delay(1000);
}
}
// https://nobita-rx7.hatenablog.com/entry/2020/09/13/011558
おはようございます。遅くまでやっていますね。
> AVマイコンプログラミング入門 258pで2sc1815を使う場合 スイッチする端子から
> 10kΩ経由で(15kΩの抵抗を分岐してGNDにつなぎつつ)
> この理由がわかりません 電流がながれんときに確実にGNDにおちるように?
> (
Webより抜粋です。
『抵抗R3,4について
以下の理由で抵抗R3,4を入れた方が良いらしいです、
・コレクタしゃ断電流(ICBO=0.6uA)
・ベースの入力に、
・また、抵抗R1,2が断線した時や、R1,
それと2SC1815のベース・
よろしくお願いします。
-------ANODE COMMON---------------static点灯----------------------------
まずはUnoで試運転 led 抵抗は1kΩとした
// https://burariweb.info/electronic-work/arduino-learning/arduino-7segment-led.html
// Arduino入門編㉔ 7セグメントLEDを制御する①
// https://burariweb.info
// 7セグメントLED配列
// A(D2)
// -------
// F(D7)| |B(D3)
// | G(D8) |
// -----
// | |
// E(D6)| |C(D4)
// ------- .DP
// D(D5)
const int ASeg = 2;
const int BSeg = 3;
const int CSeg = 4;
const int DSeg = 5;
const int ESeg = 6;
const int FSeg = 7;
const int GSeg = 8;
void setup() {
pinMode(ASeg, OUTPUT);
pinMode(BSeg, OUTPUT);
pinMode(CSeg, OUTPUT);
pinMode(DSeg, OUTPUT);
pinMode(ESeg, OUTPUT);
pinMode(FSeg, OUTPUT);
pinMode(GSeg, OUTPUT);
}
void loop() {
zero();
delay(500);
one();
delay(500);
two();
delay(500);
three();
delay(500);
four();
delay(500);
five();
delay(500);
six();
delay(500);
seven();
delay(500);
eight();
delay(500);
nine();
delay(500);
}
// LED表示関数の定義
// 0を表示
void zero() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, HIGH);
}
// 1を表示
void one() {
digitalWrite(ASeg, HIGH);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, HIGH);
}
// 2を表示
void two() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, HIGH);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, LOW);
}
// 3を表示
void three() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, LOW);
}
// 4を表示
void four() {
digitalWrite(ASeg, HIGH);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
}
// 5を表示
void five() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, HIGH);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
}
// 6を表示
void six() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, HIGH);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
}
// 7を表示
void seven() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, HIGH);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, HIGH);
digitalWrite(GSeg, HIGH);
}
// 8を表示
void eight() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, LOW);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
}
// 9を表示
void nine() {
digitalWrite(ASeg, LOW);
digitalWrite(BSeg, LOW);
digitalWrite(CSeg, LOW);
digitalWrite(DSeg, LOW);
digitalWrite(ESeg, HIGH);
digitalWrite(FSeg, LOW);
digitalWrite(GSeg, LOW);
}
0 件のコメント:
コメントを投稿