Fireduino 开源创意平台 立即购买

拥有双核Cortex-M3处理器,集成高质量音频Codec和WiFi模组,拥有良好的IOT扩展性能,完美兼容Arduino IDE和Arduino标准接口,并支持FireBlock图形化编程软件,是一款首选的编程启蒙教学平台,更是一款开源的创意原型平台。

Digital I/O

更新时间:2017-08-08 阅读:2132

操作环境

  1. 操作系统 : Windows 7 Ultimate 64-bit
  2. 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
}