一、简介
Arduino上的引脚可以配置为输入或输出。
Arduino引脚默认为输入,因此当您使用它们作为输入时,不需要将它们显式声明为pinMode()的输入。
二、模式介绍
pinMode(pin, mode)
INPUT——输入模式
INPUT_PULLUP——输入上拉模式:其中 HIGH 表示传感器关闭,LOW 表示传感器打开。 与GND构成回路
INPUT_PULLDOWN--输入下拉模式:其中 HIGH 表示传感器打开,LOW 表示传感器关闭。 与3V3构成回路
OUTPUT——输出模式
上拉电阻:上拉电阻是当某输入端口未连接设备或处于高阻抗的情况下,一种用于保证输入信号为预期逻辑电平的电阻元件。
三、实际测试
输入
void setup()
{
pinMode(1, INPUT);//IO1 INPUT输入模式
pinMode(2, INPUT_PULLUP);//IO2 INPUT输入上拉,没信号时为1,有信号是为0 与GND构成回路
pinMode(3, INPUT_PULLDOWN);//IO3 INPUT输入下拉,没信号时为0,有信号是为1 与3V3构成回路
Serial.begin(115200);//打开串口
}
void loop()
{
Serial.print("1:");
Serial.print(digitalRead(1)); //输出IO1 状态
Serial.print(" 2:");
Serial.print(digitalRead(2));//输出IO2 状态
Serial.print(" 3:");
Serial.println(digitalRead(3));//输出IO2 状态
delay(1000);
}
输出
void setup()
{
pinMode(3, OUTPUT); // 设置为输出模式 三色灯 红色
}
void loop()
{
digitalWrite(3, HIGH); //开灯
delay(1000);
digitalWrite(3, LOW); //关灯
delay(1000);
}
四、模拟量
ESP32-C3 系列芯片集成了两个 12 位(2 的12次方 为 4096) SAR ADC,共支持 6 个模拟通道输入。
虽然大多数Arduino用户模拟引脚的主要功能是读取模拟传感器,但模拟引脚还具有通用输入/输出(GPIO)引脚的所有功能(与数字引脚0 - 13相同)
测试代码 ,A5 无法读取数据,目前未找到原因。
void setup()
{
Serial.begin(115200); //打开串口
}
void loop()
{
int IntA = A0;
Serial.print(" ");
Serial.print(IntA);
Serial.print(":");
Serial.println(analogRead(IntA));
IntA = A1;
Serial.print(" ");
Serial.print(IntA);
Serial.print(":");
Serial.println(analogRead(IntA));
IntA = A2;
Serial.print(" ");
Serial.print(IntA);
Serial.print(":");
Serial.println(analogRead(IntA));
IntA = A3;
Serial.print(" ");
Serial.print(IntA);
Serial.print(":");
Serial.println(analogRead(IntA));
IntA = A4;
Serial.print(" ");
Serial.print(IntA);
Serial.print(":");
Serial.println(analogRead(IntA));
// IntA = A5; //模拟量 A5一直读取失败不知道原因
// Serial.print(" ");
// Serial.print(IntA);
// Serial.print(":");
// Serial.println(analogRead(IntA));
delay(1000);
}
调试数据