Digital I/O
更新时间:2017-08-08 阅读:13189
目录
操作环境
- 操作系统 : Windows 7 Ultimate 64-bit
- IDE : Arduino1.6.6
pinMode()
说明
配置GPIO引脚的模式(复用功能、输入输出方向、是否使能推拉功能)。
语法
pinMode(pin,mode);
参数
pin : 需要设置模式的数字引脚编号。(从0~29)(以数字开头的pin是数字引脚,A开头的pin是模拟引脚,模拟引脚不可以使用此函数进行设置) Mode: OUTPUT ------输出模式 INPUT ------输入模式 INPUT_PULLUP ------上拉输入模式 INPUT_PULLDOWN ------下拉输入模式
返回值
无
示例程序
int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second }
注意事项
1.Fireduino的I/O口并不支持任意配置上/下拉输入,每一个I/O的上拉或者下拉是固定的,每一个I/O的上/下拉情况如下表所示。 2.Fireduino的Digital I/O都支持PWM。 3.FireDuino的Analog I/O不支持作为Digital I/O使用。
PIN | 推拉方向 | PIN | 推拉方向 | PIN | 推拉方向 | PIN | 推拉方向 |
---|---|---|---|---|---|---|---|
0 | 上拉 | 8 | 下拉 | 14 | 上拉 | 23 | 上拉 |
1 | 上拉 | 9 | 上拉 | 15 | 上拉 | 24 | 上拉 |
2 | 下拉 | 10 | 上拉 | 16 | 上拉 | 25 | 上拉 |
3 | 上拉 | 11 | 上拉 | 17 | 上拉 | 26 | 上拉 |
4 | 下拉 | 12 | 上拉 | 18 | 上拉 | 27 | 下拉 |
5 | 下拉 | 13 | 上拉 | 19 | 上拉 | ||
6 | 下拉 | 28 | 上拉 | 20 | 上拉 | ||
7 | 下拉 | 29 | 上拉 | 21 | 上拉 | ||
22 | 上拉 |
digitalWrite()
说明
向一个数字引脚写入高/低电平。(需要先设置该引脚为输出模式:pinMode(pin,OUTPUT);,模拟IO口不可以使用此函数)
语法
digitalWrite(pin,value);
参数
pin:需要配置的引脚编号。 value: HIGH 设置输出为高电平,在Fireduino里面,由于是3.3V供电的,所以高电平为3.3V。 LOW 设置输出为低电平,级0V。
返回值
无
示例程序
程序在初始化的时候设定pin13为输出口,在主循环程序中先设定pin13输出高电平,延时1s,接下来设定pin13位低电平,延时1s。 当pin13接上LED时,LED就会每隔1s就亮/灭一次。
int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second }
digitalRead()
说明
读取一个数字引脚的电平状态。
语法
value = digitalRead(pin);
参数
pin:需要读取的引脚编号。
返回值
HIGH: 高电平 LOW: 低电平
示例程序
程序先设定pin13为ledPin,设置为输出模式,pin7为inPin,设置为输入模式,然后不断循环读取inPin的电平,将该电平输出到ledPin。 将inPin与轻触按键相连,则按键按下时LED亮起,放开时LED熄灭。
int ledPin = 13; // LED connected to digital pin 13 int inPin = 7; // pushbutton connected to digital pin 7 int val = 0; // variable to store the read value void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output pinMode(inPin, INPUT); // sets the digital pin 7 as input } void loop() { val = digitalRead(inPin); // read the input pin digitalWrite(ledPin, val); // sets the LED to the button's value }