Arduino的基本函数
Arduino UNO控制器(摘引网络图片)
我们知道,在Arduino平台标准参考开发板中,具有14路数字端口(D0—D13,其中6路可作为PWM输出),6路模拟端口(A0—A5),传感器、执行部件通过与相应的端口连接,数字端口输入输出数字信号,模拟端口输入模拟信号,控制器通过读取端口信号,发出数据信号控制执行部件执行任务。
数字I/O端口
数字信号是使用0、1表示的不连续信号,即通过二进制的形式表示的信号。在Arduino中,数字信号用高低电平来表示,高电平表示数字信号1,低电平表示数字信号0。
Arduino中14路数字端口和6路模拟端口都是数字引脚,使用它们都可以完成输入输出数字信号的功能,而在使用数字引脚输入输出信号时,就需要使用相关函数:pinMode(pin,mode)、digitalWrite(pin,value)、digitalRead(pin)
pinMode(pin,mode)
配置引脚为输出或输出模式,函数有两个参数pin、mode,pin参数表示所要配置的引脚,mode参数表示设置的模式—INPUT(输入)或OUTPUT(输出)。
digitalWrite(pin,value)
设置引脚的输出电压为高电平或低电平,函数有两个参数pin和value,pin参数表示所要设置的引脚,value参数表示输出的电压—HIGH(高电平)或LOW(低电平)。
digitalRead(pin)
当引脚为输入模式时,函数获取引脚的电压情况—HIGH(高电平)或LOW(低电平),参数pin表示所要获取电压值的引脚,具有返回值为int型。当Arduino以工作电压5V供电时,引脚的输入电压会不太稳定准确,因此会将-0.5V—1.5V的输入电压识别为低电平,3V—5.5V的输入电压识别为高电平,确保Arduino正常识别。
delay(参数):延时函数
表示延时的长短,单位为ms。
程序示例:按键LED灯
#define button 2 //宏定义按键引脚
#define led 8 //宏定义LED灯引脚
void setup() {
int button_state = 0 //定义按键状态的变量
pinMode(button,INPUT); //初始化按键引脚为输入状态
pinMode(led,OUTPUT); //初始化LED灯引脚为输出状态
}
void loop() {
button_state = digitalRead(button); //读取按键引脚状态并赋值给变量
if(button_state == HIGH){ //判断按键状态:是否按下
digitalWrite(led,HIGH); //是,点亮LED灯
}else{
digitalWrite(led,LOW); //否,熄灭LED灯
}
}
模拟I/O端口
模拟信号是用连续变化的物理量来表示信息的,信号随时间连续不断变化。在Arduino中,一般使用0—5V电压来表示,带有“A”字母的引脚是模拟输入(只有输入)引脚,控制器可以读取这些引脚输入的模拟信号值。
Arduino中模拟输入引脚是具有模/数转换器的功能,能将外部输入的模拟信号转换为控制器芯片可运算的数字信号,从而实现读取模拟值的功能;在模拟输出时,通过PWM(脉冲宽度调制)来实现(此时想到数字引脚中有6路是PWM输出),相关函数有:analogRead(pin)、analogWrite(pin,value)
analogRead(pin)
在引脚必须为模拟输入引脚的情况下,可以获取引脚的模拟值,参数pin表示所要获取模拟值的引脚。
analogWrite(pin,value)
使用该函数时,指定的引脚会通过高低电平输出一个固定周期的方波,通过改变高低电平在每个周期中所占的比例,近似得到输出不同电压的效果,得到的仅是近似模拟值。
程序示例:呼吸灯
float num=0; //定义存储电位器模拟值的变量;
int a=0; //定义存储延时的变量;
void setup()
{
pinMode(A1, INPUT); //设置模拟输入引脚模式为输入;
pinMode(8, OUTPUT); //设置LED灯引脚为输出模式;
}
void loop()
{
num=analogRead(A1); //将电位器模拟值赋给变量num;
a=20*(num/1024); //将电位器模拟值处理为0—20之间;
digitalWrite(8,HIGH);
delay(a); //将a用于延时;
digitalWrite(8,LOW);
delay(20-a);
}
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com