Arduino 入门到精通 例程16四位数码管.docx
- 文档编号:29060414
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:13
- 大小:602.01KB
Arduino 入门到精通 例程16四位数码管.docx
《Arduino 入门到精通 例程16四位数码管.docx》由会员分享,可在线阅读,更多相关《Arduino 入门到精通 例程16四位数码管.docx(13页珍藏版)》请在冰豆网上搜索。
Arduino入门到精通例程16四位数码管
Arduino入门到精通例程16
这次我们进行的实验是使用arduino驱动一块共阳四位数码管。
驱动数码管限流电阻肯定是必不可少的,限流电阻有两种接法,一种是在d1-d4阳极接,总共接4颗。
这种接法好处是需求电阻比较少,但是会产生每一位上显示不同数字亮度会不一样,1最亮,8最暗。
另外一种接法就是在其他8个引脚上接,这种接法亮度显示均匀,但是用电阻较多。
本次实验使用8颗220Ω电阻(因为没有100Ω电阻,所以使用220Ω的代替,100欧姆亮度会比较高)。
4位数码管总共有12个引脚,小数点朝下正放在面前时,左下角为1,其他管脚顺序为逆时针旋转。
左上角为最大的12号管脚。
下图为数码管的说明手册
下面是硬件连接图
ARDUINOCODECOPY
1.//设置阴极接口
2.inta=1;
3.intb=2;
4.intc=3;
5.intd=4;
6.inte=5;
7.intf=6;
8.intg=7;
9.intp=8;
10.//设置阳极接口
11.intd4=9;
12.intd3=10;
13.intd2=11;
14.intd1=12;
15.//设置变量
16.longn=0;
17.intx=100;
18.intdel=55; //此处数值对时钟进行微调
19.
20.voidsetup()
21.{
22. pinMode(d1,OUTPUT);
23. pinMode(d2,OUTPUT);
24. pinMode(d3,OUTPUT);
25. pinMode(d4,OUTPUT);
26. pinMode(a,OUTPUT);
27. pinMode(b,OUTPUT);
28. pinMode(c,OUTPUT);
29. pinMode(d,OUTPUT);
30. pinMode(e,OUTPUT);
31. pinMode(f,OUTPUT);
32. pinMode(g,OUTPUT);
33. pinMode(p,OUTPUT);
34.}
35.
36.voidloop()
37.{
38. clearLEDs();
39. pickDigit
(1);
40. pickNumber((n/x/1000)%10);
41. delayMicroseconds(del);
42.
43. clearLEDs();
44. pickDigit
(2);
45. pickNumber((n/x/100)%10);
46. delayMicroseconds(del);
47.
48. clearLEDs();
49. pickDigit(3);
50. dispDec(3);
51. pickNumber((n/x/10)%10);
52. delayMicroseconds(del);
53.
54. clearLEDs();
55. pickDigit(4);
56. pickNumber(n/x%10);
57. delayMicroseconds(del);
58.
59. n++;
60.
61. if(digitalRead(13)==HIGH)
62. {
63. n=0;
64. }
65.}
66.
67.voidpickDigit(intx) //定义pickDigit(x),其作用是开启dx端口
68.{
69. digitalWrite(d1,LOW);
70. digitalWrite(d2,LOW);
71. digitalWrite(d3,LOW);
72. digitalWrite(d4,LOW);
73.
74. switch(x)
75. {
76. case1:
77. digitalWrite(d1,HIGH);
78. break;
79. case2:
80. digitalWrite(d2,HIGH);
81. break;
82. case3:
83. digitalWrite(d3,HIGH);
84. break;
85. default:
86. digitalWrite(d4,HIGH);
87. break;
88. }
89.}
90.
91.voidpickNumber(intx) //定义pickNumber(x),其作用是显示数字x
92.{
93. switch(x)
94. {
95. default:
96. zero();
97. break;
98. case1:
99. one();
100. break;
101. case2:
102. two();
103. break;
104. case3:
105. three();
106. break;
107. case4:
108. four();
109. break;
110. case5:
111. five();
112. break;
113. case6:
114. six();
115. break;
116. case7:
117. seven();
118. break;
119. case8:
120. eight();
121. break;
122. case9:
123. nine();
124. break;
125. }
126.}
127.
128.voiddispDec(intx) //设定开启小数点
129.{
130. digitalWrite(p,LOW);
131.}
132.
133.voidclearLEDs() //清屏
134.{
135. digitalWrite(a,HIGH);
136. digitalWrite(b,HIGH);
137. digitalWrite(c,HIGH);
138. digitalWrite(d,HIGH);
139. digitalWrite(e,HIGH);
140. digitalWrite(f,HIGH);
141. digitalWrite(g,HIGH);
142. digitalWrite(p,HIGH);
143.}
144.
145.voidzero() //定义数字0时阴极那些管脚开关
146.{
147. digitalWrite(a,LOW);
148. digitalWrite(b,LOW);
149. digitalWrite(c,LOW);
150. digitalWrite(d,LOW);
151. digitalWrite(e,LOW);
152. digitalWrite(f,LOW);
153. digitalWrite(g,HIGH);
154.}
155.
156.voidone() //定义数字1时阴极那些管脚开关
157.{
158. digitalWrite(a,HIGH);
159. digitalWrite(b,LOW);
160. digitalWrite(c,LOW);
161. digitalWrite(d,HIGH);
162. digitalWrite(e,HIGH);
163. digitalWrite(f,HIGH);
164. digitalWrite(g,HIGH);
165.}
166.
167.voidtwo() //定义数字2时阴极那些管脚开关
168.{
169. digitalWrite(a,LOW);
170. digitalWrite(b,LOW);
171. digitalWrite(c,HIGH);
172. digitalWrite(d,LOW);
173. digitalWrite(e,LOW);
174. digitalWrite(f,HIGH);
175. digitalWrite(g,LOW);
176.}
177.
178.voidthree() //定义数字3时阴极那些管脚开关
179.{
180. digitalWrite(a,LOW);
181. digitalWrite(b,LOW);
182. digitalWrite(c,LOW);
183. digitalWrite(d,LOW);
184. digitalWrite(e,HIGH);
185. digitalWrite(f,HIGH);
186. digitalWrite(g,LOW);
187.}
188.
189.voidfour() //定义数字4时阴极那些管脚开关
190.{
191. digitalWrite(a,HIGH);
192. digitalWrite(b,LOW);
193. digitalWrite(c,LOW);
194. digitalWrite(d,HIGH);
195. digitalWrite(e,HIGH);
196. digitalWrite(f,LOW);
197. digitalWrite(g,LOW);
198.}
199.
200.voidfive() //定义数字5时阴极那些管脚开关
201.{
202. digitalWrite(a,LOW);
203. digitalWrite(b,HIGH);
204. digitalWrite(c,LOW);
205. digitalWrite(d,LOW);
206. digitalWrite(e,HIGH);
207. digitalWrite(f,LOW);
208. digitalWrite(g,LOW);
209.}
210.
211.voidsix() //定义数字6时阴极那些管脚开关
212.{
213. digitalWrite(a,LOW);
214. digitalWrite(b,HIGH);
215. digitalWrite(c,LOW);
216. digitalWrite(d,LOW);
217. digitalWrite(e,LOW);
218. digitalWrite(f,LOW);
219. digitalWrite(g,LOW);
220.}
221.
222.voidseven() //定义数字7时阴极那些管脚开关
223.{
224. digitalWrite(a,LOW);
225. digitalWrite(b,LOW);
226. digitalWrite(c,LOW);
227. digitalWrite(d,HIGH);
228. digitalWrite(e,HIGH);
229. digitalWrite(f,HIGH);
230. digitalWrite(g,HIGH);
231.}
232.
233.voideight() //定义数字8时阴极那些管脚开关
234.{
235. digitalWrite(a,LOW);
236. digitalWrite(b,LOW);
237. digitalWrite(c,LOW);
238. digitalWrite(d,LOW);
239. digitalWrite(e,LOW);
240. digitalWrite(f,LOW);
241. digitalWrite(g,LOW);
242.}
243.
244.voidnine() //定义数字9时阴极那些管脚开关
245.{
246. digitalWrite(a,LOW);
247. digitalWrite(b,LOW);
248. digitalWrite(c,LOW);
249. digitalWrite(d,LOW);
250. digitalWrite(e,HIGH);
251. digitalWrite(f,LOW);
252. digitalWrite(g,LOW);
253.}
把下面代码复制下载到控制板中,看看效果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Arduino 入门到精通 例程16四位数码管 入门 精通 例程 16 数码管