按照自己的平台,在 Arduino 官网下载对应版本的 Arduino IDE。
安装过程中可以勾选驱动安装选项,便于后面连接电脑和开发板的连接。
启动 Arduino 后,可以考虑调整代码字号,文件 - 首选项 - 编辑器字体(参考字号20)
。
修改 Arduino 默认的项目所在路径,方便以后统一管理项目。在 文件 - 首选项 - 项目文件夹位置
这里填入目标项目所在路径即可。
修改 Arduino 默认的编译后文件存放路径, 从 文件 - 首选项
的设置页面下方的 preferences.txt
这里的可点击文字进入设置文件, 添加 build.path=[your-path]
([]及其内容以你需要设置的目标路径替代)。
proteus
即可获取下载链接(非广告)。此处提供 proteus 8
的百度云下载【链接:https://pan.baidu.com/s/1YZ5-xsalW2afOpdH58i6zQ?pwd=9u5wArduino
库文件,以在 Proteus
中进行模拟。【链接:https://pan.baidu.com/s/1yKpKJmJv1c5IV9RZcfSJvQ?pwd=4ymd进入 Arduino IDE
,选择 文件 - 实例 - Basics - Blink
,保存源码,再选择 项目 - 验证/编译
编译成 hex 文件。
Proteus 8
,新建工程(创建 default 模板原理图 - 不创建 PCB 布板设计 - 没有布件项目 - 完成)。device
方格处右键(从库中挑选),按关键字 arduino
选择 开发板ARDUINO UNO V2.0
,按 LED
关键字 选择 LED-RED
, 按 resis 220
关键字选择电阻 3WATT220R
。GROUND
。arduino
模拟开发版,在 Update HEX File
处选择编译得到的 hex 文件。运行仿真按钮
,可观察到 LED 灯元器件亮灭交替,亮灭状态各持续 1 秒。要求:利用 Arduino 实现七段数码管从数字 0
到 数字 9
的循环闪烁。
首先,要区分共阴数码管和共阳数码管。共阴数码管就是把七段数码管上的 7 个LED灯的一段统一接地,某一引脚被设置为高电平,则对应的 LED 灯就亮起。共阳数码管同理,只是统一接入高电平,被设置为低电平的引脚所对应的 LED 亮起。
本次实验选择共阴数码管,按照共阴数码管的引脚编号,让 Arduino 上的引脚 1~7 分别自上到下对应 L1~L7 。那么我们可以枚举出每个数字对应要求的引脚状态。
int seg_7_cathold[10][7] = { HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, /*0*/ LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, /*1*/ HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, /*2*/ HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, /*3*/ LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, /*4*/ HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, /*5*/ HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, /*6*/ HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, /*7*/ HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, /*8*/ HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH /*9*/ };
接着,用 C 程序编写一个一位的十进制计数器,即限制其允许计数值为 [0, 9] 之间的整数。
int cnt = 0; // 十进制计数器 void setup() { // 将引脚 1~7 均设置为输出模式 int i; for (i = 1; i <= 7; ++i) { pinMode(i, OUTPUT); } } // 按照传入参数,让七段数码管显示对应的数字 void light(int cnt) { int num = cnt % 10; int i; for (i = 0; i < 7; ++i) { digitalWrite(i + 1, seg_7_cathold[num][i]); } } void loop() { light(cnt); cnt = (cnt + 1) % 10; delay(1000); }
可观察到七段数码管循环闪烁数字 0 到数字 9 ,实验结果如下。
【以上内容已同步更新至个人博客】