← 返回首页

第四课:数字输入与逻辑控制

第四课:数字输入与逻辑控制

按键开关(Push Button)

小口诀之"相连不同侧,同侧不相连",然后这个电路中开关闭合的时候是把GND和引脚2连起来短路了所以采集到低电平信号。 微动开关与上拉电阻.jpg 其中\(R1\) 为 Pull-up Resistor 上拉电阻 此处\(R = 10k\Omega\)

引脚输入与悬空

pinMode(PIN, INPUT);

当引脚设置为输入(INPUT)模式时,引脚为高阻抗状态,内置一个\(100M\Omega\)的电阻。此时该引脚可用于读取传感器信号或开关信号,但不要接入超过5V的电压或负向电压以免损坏端口。如果引脚在设置为INPUT以后没有外接任何电路,这时引脚状态为“悬空”floating,端口会随机给出高/低电平的信号输入。

串口与波特率

功能函数1:Serial.begin(long-长整型数据)

void setup() {
Serial.begin(9600); 
//打开串口通讯,设置传输速率为9600字节每秒
}

通过调用Serial库中的begin库函数实现单片机的通信速率初始化设置,常见的还有19200,57600,115200等。

串口读取与显示

功能函数2:digitalRead(PIN)

int buttonState = digitalRead(PIN);

用于读取数字引脚的高低电平,“非0即True/HIGH(1)”
功能函数3:Serial.println(val); Serial.println(val, format)

Serial.println(buttonState);

其中:val-要发送的数据(任何数据类型); format: 指定数字的数据形式(BIN,binary二进制; OCT,octal八进制; DEC,decimal十进制; HEX,hexadecimal十六进制)或小数的位数(用于浮点数)和普通print的唯一区别或许是串口监视器里自动换行。

pinMode(PIN, INPUT_PULLUP);

Arduino好心为用户设置了内部自带上拉电阻,只需将其与开关连接后再接入GND即可形成上拉电路,同样不可接入超过5V或者负向电压。但此时需要注意接入开关的逻辑是反过来的,即开关断开时为高电平HIGH,开关闭合时为低电平LOW。
思考题:这个DigitalInputPullup示例小程序里的LED点亮方法,和从普通上拉电路里在5V-上拉电阻-LED-开关-GND这一回路里塞入一个LED小灯泡造成按下开关导致LED灯变亮的实现方法有什么不同。

逻辑判断与执行

关系运算符:
1. x == y :单个=的含义是赋值运算符,两个==连用是关系判断符。
2. x != y (x 不等于 y)
3. x < y (x 小于 y)
4. x > y (x 大于 y)
5. x <= y (x 小于等于 y)
6. x >= y (x 大于等于 y)
控制结构1:if_else
如果if后圆括号里的判断条件返回结果为成立/正确,则则执行第一个{}里的内容,否则Arduino将执行第二个{}里的内容。

if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } else {
    digitalWrite(13, HIGH);
  }
}

布尔boolean定义与运算符

bool PushButton;
boolean PushButton;

对于一个定义为布尔类型的变量,False = 0; True = 非0其他值;
布尔运算符3种

1.!: !A = B, B是A的逆
2.逻辑与&&

A&&B A = 0 A = 1
B = 0 0 0
B = 1 0 1

3.逻辑或||

A||B A = 0 A = 1
B = 0 0 1
B = 1 1 1
👁️ 15 阅读 📝 最后修改于 2026-09-30

💬 评论 (0)