課程目標
相關知識
數碼管: 是由7個LED封裝在一起組成的“8”字型的器件,再加上一位小數點,器件中就一共包含有8個LED燈。其他任何多位數碼管也都是1位數碼管集合而成。
四位數碼管原理: 四位數碼管一共8*4個發光二極管,包括四個數管,每個數管為a,b,c,d,e,f,g,h八段。共12個引腳,其中4個引腳控制標號1234的四個數管是否發光,8個引腳控制abcdefgh八段LED燈是否發光。
**控制方法:**多位數碼管和前面所學習的單個數碼管一樣,都分為共陽和共陰兩種。共陽即共陽極,共陰即共陰極。對于共陽數碼管,因為陽極共用,因此各引腳實際上與陰極相連,因此需給予低電平方能觸發,共陰極引腳則相反。
電路搭建
所需材料
ArduinoUNO * 1
共陽極四位數碼管 *1
杜邦線若干
電路連接
數碼管的abcdefg和dp接UNO的29號腳,數碼管的1234接UNO的1013腳。
程序編寫
練習一:點亮所有數碼管
編寫程序,讓四個數碼管全部顯示數字8。
圖形化方式:
代碼方式:
/* 項目名稱:點亮四位數碼管
* 項目時間:2022.03.01
* 項目作者:MRX
*/
void setup() {
for(int i = 2;i <= 13;i++){
pinMode(i,OUTPUT);
}
}
void loop() {
for(int i = 2;i <= 9;i++){
digitalWrite(i,LOW);
}
for(int i = 10;i <= 13;i++){
digitalWrite(i,HIGH);
}
}
練習二:四個數碼管顯示不同內容
通過程序編寫,讓數碼管顯示數字“1234”。
圖形化方式:
按照數碼管的工作原理,四個數管顯示的內容始終相同啊。如果我想讓數碼管顯示“5678”,應該怎么辦呢?實驗表明,如果我讓數管1快速顯示“1”然后關閉,數管2快速顯示“2”然后關閉……所以只要速度夠快,人眼看到的就是“1234”!
代碼方式:
/* 項目名稱:顯示數字1234
* 項目時間:2022.03.01
* 項目作者:MRX
*/
void setup() {
for(int i = 2;i <= 13;i++){
pinMode(i,OUTPUT);
}
}
void num1(){
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
void num2() {
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
void num3() {
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
}
void num4() {
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
}
void loop() {
num1();
delay(5);
num2();
delay(5);
num3();
delay(5);
num4();
delay(5);
}
-
發光二極管
+關注
關注
13文章
1203瀏覽量
66447 -
測距儀
+關注
關注
0文章
118瀏覽量
18477 -
數碼管
+關注
關注
32文章
1883瀏覽量
91340 -
LED封裝
+關注
關注
18文章
359瀏覽量
42184 -
超聲波傳感器
+關注
關注
18文章
586瀏覽量
35980
發布評論請先 登錄
相關推薦
評論