目录
(一)数字I/O
1)pinMode(pin,mode)
描述:将指定的引脚配置成输出或输入。
语法:pinMode(pin,mode)。
参数:pin,要设置模式的引脚;mode,INPUT或OUTPUT。
程序示例:
LEDPin = 13
void setup()
{
pinMode(LEDPin,OUTPUT);
}
void loop()
{
digitalWrite(LEDPin,HIGH);
delay(1000);
digitalWrite(LEDPin,LOW);
delay(1000);
}
其实还可以设置为上拉电阻模式。
注意:模拟输入引脚也能当作数字引脚使用。
2)digitalWrite(pin,value)
描述:给一个数字引脚写入HIGH或者LOW。如果一个引脚已经使用pinMode()函数配置为OUTPUT模式,其电压将被设置为相应的值,HIGH为5V(3.3V控制板上为3.3V),LOW为0V。
如果引脚配置为INPUT模式,使用digitalWrite()写入HIGH值,将使内部20k欧姆上拉电阻接入。写入LOW将会禁用上拉。上拉电阻可以点亮一个LED,让其微微亮。如果出现LED工作,但是亮度很低,这种情况可能即使由上拉电阻引起的。补救的办法是使用pinMode()函数设置为输出引脚。
数字13号引脚难以作为数字输入使用,因为大部分的控制板上使用了一颗LED和一个电阻与其链接。如果启动内部的20k欧姆的上拉电阻,其电压将在1.7V左右,而不是正常的5V,因为板载LED串联的电阻使其电压降了下来,因此其返回值总是LOW。如果必须使用数字13号引脚的输入模式,则需要使用外部上拉和下拉电阻。
3)digitalRead(pin)
描述:读取指定引脚的值,HIGH或LOW。
语法:digitalRead(PIN)。
参数:pin,想读取数值的引脚号(int)。
返回:HIGH或者LOW。
程序示例:
//将引脚13设置为输入引脚7的值
LEDPin = 13 //LED连接到引脚13
int inPin = 7; //按钮连接道数字引脚7
int val = 0; //定义变量以存储读取值
void setup()
{
pinMode(LEDPin,OUTPUT);
pinMode(inPin,INPUT);
}
void loop()
{
val = digitalRead(inPin); //读取输入引脚的值
digitalWrite(LEDPin,val);
}
(二)模拟I/O
1)analogReference(type)
描述:设定用于模拟输入的基准电压(输入范围的最大值)。
type的可选值为:
-
DEFAULT - 5伏(5V Arduino板)或3.3伏(3.3V Arduino板)的默认模拟参考值
-
INTERNAL - 内置参考,在ATmega168或ATmega328上等于1.1伏特,在ATmega8上等于2.56伏特(不适用于Arduino Mega)
-
INTERNAL1V1 - 内置1.1V参考(仅限Arduino Mega)
-
INTERNAL2V56 - 内置2.56V参考(仅限Arduino Mega)
-
EXTERNAL - 施加到AREF引脚的电压(仅限0到5V)用作参考
注意:改变基准电压后,之前从analogRead()读取的数据可能不准确。
注意:对AREF引脚的外部参考电压,请勿使用小于0V或大于5V的任何值。如果在AREF引脚上使用外部参考,则必须在调用 analogRead()函数之前将模拟参考设置为EXTERNAL。否则,将短路有效参考电压(内部产生的)和AREF引脚,可能会损坏Arduino板上的微控制器。