文章目录
- 1. Arduino概述
- 1.1 是什么?
- 1.2 分类
- 1.3 组成
- 1.4 电源
- 2. Arduino软件开发流程
- 2.1 明确接口函数
- 2.2 连接板子
- 2.3 打开项目【或者自己编程序】
- 2.4 选择板子类型
- 2.5 选择通讯端口
- 2.6 下载程序
- 2.7. 编写程序代码——程序架构
- 3. 较常用的封装函数
- 3.1 `pinMode(pin, mode)` 函数
- 3.2 `digitalWrite(pin, value)` 函数
- 3.3 `digitalRead(pin)` 函数
- 3.4 `analogWrite(pin, value)`函数
- 3.5 `analogRead(pin)`函数
- 3.6 `delay(ms)` 函数
- 3.7 `delayMicroseconds(us)` 函数
- 4. 嵌入式技术基础实验平台
- 5. 注意事项
- 6. 点亮三色灯arduino代码示例
1. Arduino概述
1.1 是什么?
- Arduino是一个简单易用的
开源电子平台
。 - Arduion作用:
- 【输入方面】可读取开关或传感器的数据(比如说读取盲盒的感应数据)
- 【输出方面】控制电机转动、LED灯的开关(经典的就是小车比赛中小车的驱动)
- 实现:借助
软件编程
来控制Arduino满足所需要的功能 - 开发环境:基于Arduino IDE
- 优势:
- 所有的Arduino板是完全开源的,准许用户独立使用来满足他们不同需求
- 简化了微控制器的工作过程,将微控制器编程的细节进行封装,封装成易使用的包
- 在不需要全部了解微处理器底层工作原理和过程的基础上,完成设计
1.2 分类
开发板分为入门级、高级类、物联网类、教育类、可穿戴类等五大类
- 入门级:
UNO(较常用)
、MICRO、NANO、MINI等 - 高级类:
MEGA(较常用)
、ZERO、DUE等 - 物联网类:YUN、ETHERNET、TIAN等
- 教育类:CTC 101、ENGINEERING KIT等
- 可穿戴类:GEMMA、LILYPAD ARDUIUNO USB、LILYPAD ARDUINO MAIN BOARD等
Arduino开发板种类很多,我们主要学习
Arduino UNO
和Arduino Mega 2560
1.3 组成
- 硬件(包括微控制器、电路板等)
- 软件(编程接口和语言)
- 小板 UNO组成:
- 大板 2560组成:
1.4 电源
- 三种供电方式
- USB供电 5VDC
- 电源插座 7-12VDC
- Vin引脚 7-12VDC
- 输入输出、开发板引脚序号
2. Arduino软件开发流程
准备开发套件:
- 开源电路板Arduino
- USB下载开发Cable A to B
- 一台计算机
- 软件开发工具Arduino IDE
2.1 明确接口函数
- Arduino IDE对数据类型和main()函数进行封装,在该函数中形成了两个接口函数
setup()
和loop()
。- 首先执行setup(),多用于设置引脚和初始化
- setup()执行后,loop()不断地循环执行该函数体内的语句
2.2 连接板子
- 用USB数据线
【USB数据线兼有供电和数据通讯的功能】
将Mega2560板与电脑的USB口相连接,连线后电源指示灯点亮(绿色)
2.3 打开项目【或者自己编程序】
- Arduino IDE中封装大量示例代码,在软件库中选择所需要的代码,在下拉菜单中点击
文件(File)
—示例(Examples)
—0.1Basics
—Blink
,打开LED闪烁样例。也可以点击文件(File)
—打开(Open)
,选择好编辑好的后缀为.ino的源文件
2.4 选择板子类型
- 点击
工具(Tools)
—开发板(Board)
,在开发板列表中单击选中Mega2560
2.5 选择通讯端口
- 点击
工具(Tools)
—端口(Serial Port)
菜单,选择开发板的通讯端口
(COM1 和 COM2 通常是硬件串口的保留端口)。 - 断开连接后消失的那个串口即是Arduino板的映射串口。
2.6 下载程序
- 点击程序中
右箭头
(下图所示)的按钮,等待几秒,看到板子RX
和TX
指示灯在闪烁。 - 若下载成功,状态栏会出现
Done uploading
的提示 - 若编译错误,则需要修改程序
2.7. 编写程序代码——程序架构
- 根前面所讲,setup()首先执行,且仅执行一次,来设置引脚和初始化等准备工作,接着loop()
不断执行
该函数体的语句,执行完后又回到第2.2继续循环
3. 较常用的封装函数
在C/C++的基础上,封装库提供了丰富的函数,可以直接对数字或者模拟引脚进行操作
3.1 pinMode(pin, mode)
函数
pinMode
为引脚模式,设置数字引脚方向为输入或输出- 参数1
pin
为引脚号0 ~ 13(大板的话为0 ~ 53) 【用为对哪个引脚进行定义】 - 参数2
mode
为INPUT、INPUT PULLUP 或 OUTPUT 三者之一eg:
- pinMode(13, OUTPUT); //数字13口定义为输出
- pinMode(8, INPUT); //数字8口定义为输入
- pinMode(9, INPUT_PULLUP); //数字9口定义成输入,内部上拉电阻
3.2 digitalWrite(pin, value)
函数
digitalWrite
为开关输出操作,设置数字引脚的输出值,将某引脚中赋成高电平或低电平- 参数1
pin
依旧为引脚号0 ~ 13(大板的话为0 ~ 53) 【用为对哪个引脚进行定义】 - 参数2
value
为HIGH或LOW【若输出连接为灯的话,value决定于灯的亮灭】
eg:
digitalWrite(13, HIGH); //数字13口输出为高电平
3.3 digitalRead(pin)
函数
digitalRead
为开关量输入操作,读取数字引脚的输入值- 参数
pin
为引脚号 value
为HIGH或LOW
eg:
digitalRead(8); //从数字8读取信号,返回值为HIGH或LOW
3.4 analogWrite(pin, value)
函数
analogWrite
为模拟量输出操作,当某些特定的数字引脚作为PWM(模拟量输出)时,设置PWM的输出值UNO pin
为3,5,6,9,10,11【6路】2560 pin
为2 ~ 13【15路】value
为0 ~ 255,输出的模拟电压与value成正比【8位DA,0 ~ 5V表示为0 ~ 255】
eg: analogWrite(3, 127); // 从模拟口3引脚输出127
3.5 analogRead(pin)
函数
analogRead
为读取操作,读取模拟引脚的输入值pin
为A0 ~ A5(A15),返回值为0 ~ 1023(10位AD,0 ~ 5V表示为0 ~ 1023)
eg: analogRead(A0); //从模拟口A0读取数据
3.6 delay(ms)
函数
delay(ms)
为延时函数【单位ms】
eg: delay(1000); // 延时1000毫秒【即为1s】
3.7 delayMicroseconds(us)
函数
deayMicroseconds(us)
为更加精确的延时函数【单位us】
eg: delayMicroseconds(500); // 延迟500微秒【即为0.5ms】
4. 嵌入式技术基础实验平台
最上排的引脚,右侧写G
【GND
的简写】,指0V
,中间一排的引脚,最右侧写着V
【VCC
的简写】,指5V
;最下排是数字引脚,最右侧为S
【signal
简写】,靠编号进行区分。
5. 注意事项
6. 点亮三色灯arduino代码示例
核心:通过高低电平控制灯的亮灭
int ledPin = 13; //定义一个名为ledPin的引脚,方便可读
void setup(){
pinMode(ledPin, OUTPUT); //定义引脚ledPIn为输出
}
void loop(){
digitalWrite(ledPin, HIGH); //将ledPin变为高电平--->灯发亮
delay(1000); //延迟1s,保持发亮状态
digitalWrite(ledPin, LOW); //将ledPin变为低电平--->灯熄灭
delay(1000); //延迟1s,保持熄灭状态
//以此循环,灯处在亮暗交替的 状态
}