Arduino程序合集
数字、模拟端口
Arduino 控制器内带
Bootloader
程序,是系统上电后运行的第一段代码,就好比 PC 机 BIOS 中的程序,启动就进
行自检,配置端口等等,当然单片机就是靠烧写熔丝位来设定上电从 boot 区启动的,使用这个程序就可以直接把从串
口发来的程序存放到flash
区中。我们在使用Arduino
编译环境下载程序时,就先让单片机复位,启动Bootloader
程序
引导串口发过来的程序顺利写入flash
区中,flash
可以重复烧写,因此想更新软件就是这么的方便。
Digital Output 数字输出实验
功能 使
PIN13
脚上的 LED 闪烁
1 |
|
功能 PWM 使
PIN11
脚上的 LED 逐渐变亮逐渐变暗
1 |
|
Digital Input 数字输入实验
功能 闭合开关 SW,
PIN13
脚上的 LED 亮,断开则灭
线路:
引脚号 | 引脚名 | 后续 |
---|---|---|
3 | D13 | ->LED -> GND |
9 | D7 | ->10K->5V |
->SW->GND |
1 | int ledPin = 13; |
功能 调节电位器 RPot, 使输入模拟量大变化类改变 LED 闪烁的频率
引脚号 | 引脚名 | 后续 |
---|---|---|
2 | GND | ->LED->D13 |
3 | D13 | <- |
25 | GND | ->RPot A -> RPot C-> |
26 | 5V | <- |
17 | A5 | -> RPot B |
1 |
|
串口通讯
Arduino 不但有 14 个数字接口和 6 个模拟接口外,还有 1 个更为常用的串口接口。在实际应用中串口以只需要少
量的几根线就能和其他串口设备通讯的优势被广应用。
串行接口按标准被分为 RS-232、RS-422、RS-485。RS-232 是在 1962 年发布的,也是目前 PC 机与通信工业中应用
最广泛的一种串行接口,RS-232 采取不平衡传输方式,即所谓单端通讯。典型的 RS-232 信号在正负电平之间摆动,
在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V 电平。我们的单片机使用的是 TTL 电平的串
行协议,因此单片机与 pc 通讯时需要进行 RS-232 电平和 TTL 电平的转换,最常用的电平转换芯片是 MAX232,单片机
与单片机通讯时则可以直接连接。
USB 版本的 Arduino 则是通过 USB 转成 TTL 串口下载程序的,数字口 PIN 0 和 PIN 1 就是 TTL 串口 RX 和 TX。
串口通讯中最重要的一点就的通讯协议,一般串口通讯协议都会有波特率、数据位、停止位、校验位等参数。大
家不会设置也不用怕,Arduino 语言中 Serial.begin()函数就能使大家轻松完成设置,我们只需要改变该函数的参数
即可,例如Serial.begin(9600)
,则表示波特率为 9600bit/s(每秒比特数 bps),其余参数默认即可。
Arduino 语言中还提供了Serial.available()
判断串口缓冲器状态、Serial.read()
读串口、Serial.print()
串
口发送及Serial.println()
带换行符串口发送四个函数。
1602字符液晶显示
1602 字符液晶是最常用的一种,很具有代表性,1602 液晶分 4 总线和 8 总线 2 种驱动方式(关于该液晶的详细资
料,大家可以自己搜索,这里就不做详细说明了)。我们用单片机驱动 1602 液晶,使用并口操作很容易就驱动起来了,
但使用 Arduino 板驱动 1602 液晶,还真有点费劲,因为他只能位操作。根据官方网站提供的例程,很容易看出他们
使用的是最常用的 8 总线驱动方式,然而他巧妙的使用 for 循环语句完成了位操作的赋值。
arduino引脚名 | LCD1602引脚号 | LCD1602引脚名 |
---|---|---|
D-GND | 3 | VEE |
D12 | 4 | D1 |
D11 | 5 | RW |
D10 | 14 | D7 |
D9 | 13 | D6 |
D8 | 12 | D5 |
D7 | 11 | D4 |
D6 | 10 | D3 |
D5 | 9 | D2 |
D4 | 8 | D1 |
D3 | 7 | D0 |
D2 | 6 | E |
5V | 2 | VCC |
GND | 1 | GND |
1 | int DI = 12; |
LED控制
四位数码管
利用Arduino的数字端口控制四位数码管内容(一一对应)
四位数码管解析:
使用的是共阴极数码管,位数选择为高电平显示,数字显示为低电平显示
引脚号 | 对应内容 | |
---|---|---|
上引脚 | 1 | 第一个数字 |
2 | a | |
3 | f | |
4 | 第二个数字 | |
5 | 第三个数字 | |
6 | b | |
下引脚 | 7 | e |
8 | d | |
9 | h | |
10 | c | |
11 | g | |
12 | 第四个数字 |
代码对应接线
四位数码管 | Arduino |
---|---|
1 | 2 |
2 | 3 |
3 | 4 |
4 | 5 |
5 | 6 |
6 | 8 |
7 | 12 |
8 | 9 |
9 | 10 |
10 | 7 |
11 | 13 |
12 | 11 |
1 |
|
LED RGB 共阳极
V 接口只能接VCC , 其他的低电平有效
代码如下:
1 | int led1 = 9; |
HC-SR04 超声波传感器 测距
其模块,用Trig触发测距
会发出8 个 40khz的方波,自动检测是否有信号返回
有信号返回,通过echo输出高电平,高电平持续的时间就是距离的2倍
测量距离 = (高电平时间*声速)/ 2
主要技术参数 | |
---|---|
使用电压 | DC—5V |
静态电流 | 小于2mA |
电平输出 | 高5V |
电平输出 | 底0V |
感应角度 | 不大于15度 |
探测距离 | 2cm-450cm |
高精度 | 可达0.2cm |
引脚说明 | |
---|---|
VCC | – 供5V电源 |
TRIG | – 触发控制信号输入 |
ECHO | – 回响信号输出等四个接口端 |
GND | – 为地线 |
1 |
|
ck008触发型触摸传感器
1 | int sensorTouch = 8; |