光线传感器开关引脚
本课属于 Coddy Arduino 学习旅程的“输入”单元。第 14 课,共 22 课。
光线模块有一个自己的小芯片,叫作比较器,可以帮你判断是否达到阈值。它会将光线强度与真实模块上小螺丝设定的级别进行比较,并驱动 DO 引脚:光线较亮时为 LOW,较暗时为 HIGH。在这块板上,触发级别是半亮。
DO 是数字信号,所以读取方式和按钮一样,使用 digitalRead()。模块会自行驱动引脚,因此不需要上拉:使用普通的 INPUT 就可以。
pinMode(7, INPUT);
if (digitalRead(7) == HIGH) {
// 暗
}如果只想在光线变化时打印消息,可以使用按钮课程中介绍的边沿检测思路:将这次的读数与上一次的读数进行比较。
挑战
简单模块的 DO 接在引脚 7 上,LED 接在引脚 13 上:
- 将引脚 7 设为
INPUT - 当
DO为HIGH(暗)时点亮 LED,否则将其熄灭 - 读数发生变化时,输出
Dark或Bright
点击运行,将光线滑块向两个方向分别移过中间位置,然后点击检查。
亲手试试
const int sensorPin = 7;
const int ledPin = 13;
int lastDark = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
// 将传感器引脚设置为 INPUT
}
void loop() {
// 读取 DO,光线暗时点亮 LED
// 读数变化时,输出 Dark 或 Bright
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输入中的所有课
自己练习: Arduino 在线编辑器