Arduino基本實習操作:七段顯示器計1數到60
這次做的是七段顯示器計1數到60,這次的題目對於大家有點難,會用到陣列,
材料
1.Arduino UNO
2.單心線
3.七段顯示器兩個個
4.電阻器220歐姆14個
6.麵包版
如果沒有板子,可以到:https://circuits.io/使用模擬器做練習
如果沒有板子,可以到:https://circuits.io/使用模擬器做練習
接線方法
程式碼
int index1 = 0;
int index2 = 0;
int LEDs[10] = {//這是陣列的公式,int x[5] = {1,2,3,4,5};
B1111110,
B0110000,
B1101101,
B1111001,
B0110011,
B1011011,
B1011111,
B1110000,
B1111111,
B1111011,
};
int LEDs2[6] = {//這網址有詳細的解說http://programming.im.ncnu.edu.tw/Chapter10.htm
B0111110,
B0110000,
B0101101,
B0111001,
B0110011,
B0011011,
};
void setup() {//這個網址可以講解DDRD跟DDRB的作用,https://www.arduino.cc/en/Reference/PortManipulation
DDRD = B1111111;//DDRD是決定pinD0~pinD7是否輸出
DDRB = B1111111;//DDRB是決定pinD8~pinD13是否為輸出
pinMode (A5,OUTPUT);
}
void loop() {
digitalWrite(A5,HIGH);
PORTD = LEDs[index1];//PORTD讀取pinD0~pinD7的值決定是高電壓還是低電壓
PORTB = LEDs2[index2];//PORTB讀取pinD0~pinD7的值決定是高電壓還是低電壓
index1 ++;
if (index2 == 0||index2 == 2||index2 == 3||index2 == 5){//"||"=OR的邏輯式
digitalWrite(A0,HIGH);
if (index1 == 10){
index1 = 0;
index2 ++;
}
} else{
digitalWrite(A5,LOW);
if (index1 == 10){
index1 = 0;
index2 ++;
}
}
if (index2 == 6){
index1 = 0;
index2 = 0;
}
delay(500);
}
影片
總結
這次的題目裡面有陣列,會比較難一點,相信大家可以從中理解他在做什麼,如果不理解也沒關係,多多的使用arduino去做不同的東西,就會慢慢理解。
留言
張貼留言