认识Arduino

发布时间 2023-04-15 21:01:01作者: jiecode

认识Arduino UNO

Arduino 是开源的,板子的数据,PCB原理图都可以上官网查看。

Arduino UNO R3

数字信号与模拟信号

数字信号

数字信号是以0、1表示的电平不连续变化的信号,也就是以二进制的形式表示的信号。 在Arduino中数字信号通过高低电平来表示,高电平则为数字信号1,低电平则为数字信号0 。

Arduino上每一个带有数字编号的引脚,都是数字引脚,包括写有“A”编号的模拟输入引脚。使用这些引脚,可以完成输入输出数字信号的功能。

在使用输入或输出功能前,你需要先通过pinMode() 函数配置引脚的模式为输入模式或输出模式。

pinMode(pin, mode);

参数pin为指定配置的引脚编号;参数mode为指定的配置模式。
可使用的三种模式:
INPUT 输入模式
OUTPUT 输出模式
INPUT_PULLUP 输入上拉模式

数字引脚 既可以输入数字信号 也可以输出数字信号

//数字信号输出
digitalWrite(pin, value);
//参数pin为指定输出的引脚编号;参数value为你要指定输出的电平,使用HIGH指定输出高电平,或是使用LOW指定输出低电平。

//数字信号输入
int value = digitalRead(pin);
//参数pin为指定读取状态的引脚编号;返回值value为获取到的信号状态,1为高电平,0为低电平。

//Arduino UNO会将大于3V的输入电压视为高电平识别,小于1.5V的电压视为低电平识别。所以,即使输入电压不太准确,Arduino UNO也可以正常识别。需要注意的是,超过5V的输入电压可能会损坏Arduino UNO。(不同型号的Arduino有所不同)

在Arduino核心库中,OUTPUT被定义等于1,INPUT被定义等于0,HIGH被定义等于1,LOW被定义等于0。

所以OUTPUT,INPUT,HIGH,LOW都是可以用1或0代替的。

模拟信号

模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。

生活中,接触到的大多数信号都是模拟信号,如声音、温度的变化等。模拟信号是用连续变化的物理量表示的信息,信号随时间作连续变化。在Arduino UNO上,可以接受0~5V的模拟信号。

模拟信号输出

Arduino 中使用analogWrite() 函数实现模拟信号输出功能。但该函数并不是输出真正意义上的模拟值,而是以一种特殊的方式来达到输出近似模拟值的效果,这种方式叫做脉冲宽度调制(PWM,Pulse Width Modulation)。
在Arduino UNO中,提供PWM功能的引脚为3、5、6、9、10、11。

脉宽调制(PWM)是一种使用数字手段获得模拟结果的技术。数字控制用于产生方波,即在开和关之间切换的信号。这种开关模式可以通过改变信号花费的时间与信号关闭的时间,来模拟电路板全Vcc(5V)和关断(0V)之间的电压。"导通时间"的持续时间称为脉冲宽度。要获得不同的模拟值,请更改或调制该脉冲宽度。例如,如果使用 LED 以足够快的速度重复此开关模式,则结果就好像信号是介于 0 和 Vcc 之间的稳定电压,用于控制 LED 的亮度。

//模拟信号输出
analogWrite(pin,value);
//参数pin是指定要输出PWM波的引脚,参数value指定是PWM的脉冲宽度,范围为0~255。   0表示0V   255表示5V
//在analogWrite() 和analogRead() 函数内部,已经完成了引脚的初始化,因此不用在Setup() 函数中进行初始化操作。    

模拟信号输入

模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚。它可以将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。

Arduino 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1023的整数形式表示。

//模拟信号输入
int value = analogRead(pin);
//参数pin是指定要读取模拟值的引脚,被指定的引脚必须是模拟输入引脚。如analogRead(A0)即是读取A0引脚上的模拟值。