下面是一张Ardunio Uno R3的引脚图,包含14个数字引脚、6个模拟输入、电源插孔、USB连接和ICSP插头等。
14个数字引脚:
6个模拟输入:A0到A5,可以从模拟传感器(例如温度和湿度)读取信号,并转换为数字值。
电源插孔:图中最左上角的插孔。
USB连接:Arduino不可以同通过连接计算机上的USB线供电,获取计算机的脚本。
ICSP引脚:ICSP是一个AVR(自动电压调节器),通常称为SPI(串行外设接口),作为输出的“扩展”,把要输出设备从属到SPI总线的主机,通常由6个引脚。ICSP引脚旁边的“ON”电源LED显示灯表示是否由接通电源。
电源连接器:模拟端口左边的一组“POWER”的端口组。
头文件:初始的时候,没有显示任何头文件,是因为已经IDE帮忙把需要头文件引入并隐藏了,如果需要自己引入额外的头文件再自己添加。
setup函数:启动后只会被运行一次,用来初始化串口、引脚、变量。
loop函数:setup后一直运行,不停循环,相当于主函数。
既然涉及到信号,就要补充一些信号的知识。对于我来说,最早接触信号是在计算机网络物理层的编码和调制的时候,编码能把数据变成模拟信号;调制能把数据变成数字信号。数字信号和模拟信号,数字信号是一些离散的信号,例如0和1;模拟信号是一些连续的信号。
Arduino Uno的14个数字输入输出引脚,可使用 pinMode()、digitalWrite() 和 digitalRead() 控制。
pinMode(pin,value)
函数作用:设置引脚用于输入和输出模式。
value:OUTPUT表示输出,INPUT表示输入。
digitalWrite(pin,value)
函数作用:控制该引脚输出高电平或者低电平。
value:HIGH高电平,LOW低电平。
digitalRead(pin,value)
函数作用:判断该引脚输入的电平和value是否一致。
value:HIGH高电平,LOW低电平。
digitalRead(pin)
函数作用:获取该引脚的电平。
程序入门案例
/*
引脚2连接一个按钮,作为信号输入
引脚13号连接的是板子上的led灯,作为信号输出
*/
const int ledPin = 13;
const int inputPin = 2;
void setup()
{
//将引脚13设置为输出模式
pinMode(ledPin, OUTPUT);
//将引脚2设置为输入模式
//引脚2与外部按钮连接
pinMode(inputPin, INPUT);
}
void loop()
{
// 闭合按钮,引脚2为高电平
int val = digitalRead(inputPin);
if (val == HIGH)
{
digitalWrite(ledPin, HIGH);// 点亮led
} else
{
digitalWrite(ledPin, LOW);// 熄灭led
}
}
Arduino Uno的6个模拟输入输出引脚,可使用 analogReference()、analogRead()和analogWrite()控制。
analogReference(type)
函数作用:配置模拟输入引脚的基准电压,也就是电压最大范围。
type:
analogRead(pin)
函数作用:获取指定的模拟引脚读取模拟量,读取周期为100微秒,即最大速度为每秒读取10000次,函数返回值为int型(0~1023)。
analogWrite (pin, value)
函数作用:通过PWM的模式将模拟值输入到pin,调用analogWrite()后,相应的pin会产生一个指定占空比的稳定方波。
value:PWM占空比,PWM输出位数为8,其范围在0到255对应占空比为0到100%,带PWM功能的引脚标会有波浪线。