为什么arduino上拉模式逻辑没反
发布网友
发布时间:2023-04-12 15:55
我来回答
共1个回答
热心网友
时间:2023-10-05 07:15
Arino 微控制器自带内部上拉电阻。如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。
注意:当Arino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arino控制器。
在本示例中,我们将通过pinMode()语句将Arino引脚2配置为输入模式。在此示例中,当开关闭合后,引脚2将获得低电平开关信号,引脚13旁的LED(如下照片红圈所示)将被点亮。反之,该LED为熄灭状态。
Arino Input Pullup连接方式
2.示例程序
void setup() {
//开始串口通讯
Serial.begin(9600);
//将引脚2设置为输入上拉模式
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
//将按钮值读入一个变量中
int sensorVal = digitalRead(2);
//输出开关状态数值
Serial.println(sensorVal);
//请留意在上拉模式下,按钮的逻辑是反转的
//即:打开时为高电平,按下时为低电平
//按钮被按下时,引脚13连接的LED将被点亮。按钮没被按下时,LED熄灭
if (sensorVal == HIGH)
{
digitalWrite(13, LOW); //熄灭LED
}
else
{
digitalWrite(13, HIGH); //点亮LED
}
}
if...else 语法 格式:
1
2
3
4
5
6
if( 表达式1 ) {
语句块1
} else {
语句块2
}
关系运算符号
x == y (x 等于 y)
x != y (x 不等于 y)
x < y (x 小于 y)
x > y (x 大于 y)
x <= y (x 小于等于 y)
x >= y (x 大于等于 y)
bool pushButton;
void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
pushButton = digitalRead(2);
//摁下按钮,引脚2为低电平
if(pushButton)
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
}
3.布尔运算
&& (逻辑与)
只有在两个操作数都为真时才返回真。
|| (逻辑或)
任意一个为真时返回真
! (逻辑非)
当操作数为假时返回真
热心网友
时间:2023-10-05 07:15
Arino 微控制器自带内部上拉电阻。如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。
注意:当Arino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arino控制器。
在本示例中,我们将通过pinMode()语句将Arino引脚2配置为输入模式。在此示例中,当开关闭合后,引脚2将获得低电平开关信号,引脚13旁的LED(如下照片红圈所示)将被点亮。反之,该LED为熄灭状态。
Arino Input Pullup连接方式
2.示例程序
void setup() {
//开始串口通讯
Serial.begin(9600);
//将引脚2设置为输入上拉模式
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
//将按钮值读入一个变量中
int sensorVal = digitalRead(2);
//输出开关状态数值
Serial.println(sensorVal);
//请留意在上拉模式下,按钮的逻辑是反转的
//即:打开时为高电平,按下时为低电平
//按钮被按下时,引脚13连接的LED将被点亮。按钮没被按下时,LED熄灭
if (sensorVal == HIGH)
{
digitalWrite(13, LOW); //熄灭LED
}
else
{
digitalWrite(13, HIGH); //点亮LED
}
}
if...else 语法 格式:
1
2
3
4
5
6
if( 表达式1 ) {
语句块1
} else {
语句块2
}
关系运算符号
x == y (x 等于 y)
x != y (x 不等于 y)
x < y (x 小于 y)
x > y (x 大于 y)
x <= y (x 小于等于 y)
x >= y (x 大于等于 y)
bool pushButton;
void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
pushButton = digitalRead(2);
//摁下按钮,引脚2为低电平
if(pushButton)
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
}
3.布尔运算
&& (逻辑与)
只有在两个操作数都为真时才返回真。
|| (逻辑或)
任意一个为真时返回真
! (逻辑非)
当操作数为假时返回真