ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

智能硬件 Arduino 实验记录

2022-04-25 02:01:03  阅读:218  来源: 互联网

标签:HIGH LED 数码管 引脚 Arduino 硬件 智能 LOW


智能硬件 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

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

标签:HIGH,LED,数码管,引脚,Arduino,硬件,智能,LOW
来源: https://www.cnblogs.com/kimkey/p/16180789.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有