Java教程

智能硬件 Arduino 实验记录

本文主要是介绍智能硬件 Arduino 实验记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

智能硬件 Arduino 实验记录

实验一 在Proteus中进行Arduino仿真

Arduino 环境搭建

  1. 按照自己的平台,在 Arduino 官网下载对应版本的 Arduino IDE。

  2. 安装过程中可以勾选驱动安装选项,便于后面连接电脑和开发板的连接。

  3. 启动 Arduino 后,可以考虑调整代码字号,文件 - 首选项 - 编辑器字体(参考字号20)

  4. 修改 Arduino 默认的项目所在路径,方便以后统一管理项目。在 文件 - 首选项 - 项目文件夹位置 这里填入目标项目所在路径即可。

  5. 修改 Arduino 默认的编译后文件存放路径, 从 文件 - 首选项 的设置页面下方的 preferences.txt 这里的可点击文字进入设置文件, 添加 build.path=[your-path] ([]及其内容以你需要设置的目标路径替代)。

    image-20220422222907572

Proteus 环境搭建

  1. 由于Proteus收费,可以考虑下载破解版用于学习。可以关注公众号【软件安装管家目录】输入 proteus 即可获取下载链接(非广告)。此处提供 proteus 8 的百度云下载【链接:https://pan.baidu.com/s/1YZ5-xsalW2afOpdH58i6zQ?pwd=9u5w
    提取码:9u5w】。
  2. 添加 Arduino 库文件,以在 Proteus 中进行模拟。【链接:https://pan.baidu.com/s/1yKpKJmJv1c5IV9RZcfSJvQ?pwd=4ymd
    提取码:4ymd】

编译 hex 文件

进入 Arduino IDE ,选择 文件 - 实例 - Basics - Blink ,保存源码,再选择 项目 - 验证/编译 编译成 hex 文件。

在 Proteus 中进行仿真

  1. 进入 Proteus 8 ,新建工程(创建 default 模板原理图 - 不创建 PCB 布板设计 - 没有布件项目 - 完成)。
  2. 在左侧 device 方格处右键(从库中挑选),按关键字 arduino 选择 开发板ARDUINO UNO V2.0 ,按 LED 关键字 选择 LED-RED, 按 resis 220 关键字选择电阻 3WATT220R
  3. 在左边界面的按钮中选择终端,在方格中选择 GROUND
  4. 将以上元器件放置在模拟图上,并用线连接起来。
  5. 双击 arduino 模拟开发版,在 Update HEX File 处选择编译得到的 hex 文件。
  6. 点击左下角的 运行仿真按钮 ,可观察到 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 ,实验结果如下。

image-20220425012622548

image-20220425013117807

image-20220425012835873

image-20220425012857945

image-20220425012917578

image-20220425012938323

image-20220425012958857

image-20220425013013214

image-20220425013026086

image-20220425013040457

【以上内容已同步更新至个人博客】

这篇关于智能硬件 Arduino 实验记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!