(其實我很早就為自己規畫這一系列相關練習,前後呼應!)
操作目的
就是用Ardunio叫它依序對七段顯示器的那幾隻腳位進行輸出,然後就是要顯示出來倒數的樣子。
Video
接線圖
ㄜ... 這次我還是懶得畫了,因為接線也是很單純地將七段顯示器的A~G的腳位接到Ardunio板子上2~8的腳位。然後記得七段顯示器若為共陰,就把共陰極接Ardunio的地。
Code
對我來說,這真的比較難,我花了一個下午讀懂它…
來源:http://coopermaa2nd.blogspot.tw/2010/12/arduino-lab7.html 其中的版本二。
-----------------------------------------------------------------------------------------------------
byte sevenseg[10][7] = { //把以下資料用byte型式儲起來
//其中[10]是指有10組,[7]指組裡面有7個位元
{ 1,1,1,1,1,1,0 }, // = 0
{ 0,1,1,0,0,0,0 }, // = 1
{ 1,1,0,1,1,0,1 }, // = 2
{ 1,1,1,1,0,0,1 }, // = 3
{ 0,1,1,0,0,1,1 }, // = 4
{ 1,0,1,1,0,1,1 }, // = 5
{ 1,0,1,1,1,1,1 }, // = 6
{ 1,1,1,0,0,0,0 }, // = 7
{ 1,1,1,1,1,1,1 }, // = 8
{ 1,1,1,0,0,1,1 } // = 9
}; // = 以上是儲存數字0~9,要對應輸出pin腳的號碼。
void setup () {
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
} //定義那些pin腳是出輸
void sevensegWrite(byte digit) {
//在跑loop之前要先定義怎麼跑,用btye留下digit當變數
byte pin = 2;
for (byte seg = 0; seg < 7; ++seg) {
digitalWrite(pin, sevenseg [digit][seg]);
++pin;
//這一整串是說明從 Pin 2開始,做digitalWrite的輸出
//首先輸出的Pin 2搭配的[seg]為0,對應byte sevenseg裡的是1 (輸出)
//pin++之後,下一個Pin 3搭配for語法下的[seg]為1…
}
}
void loop() {
for (byte digit = 10; digit > 0; digit--) {
sevensegWrite(digit-1);
delay(1000);
//這裡就單純處理digit的變數,要求從 9 跑到 0 。
}
}
我如何讓七段部會因為感測物的引響所導致顯示 感測數值閃爍。
回覆刪除這問題有點大,
刪除(1) 閃爍的部分就0.5秒亮一下,0.5秒顯示一下,就會閃爍了。
(2) 感測器,你要用那一種的?是ON/OFF的,還是光敏電阻(類比式的)?就把「輸入」寫進程式裡。
請問 大大 我想要把 電子 數位游標卡尺的 數據 轉移到 四位數字七段顯示器 是要怎麼用??
回覆刪除請點解 謝謝