Menu
CoddyTech

光线传感器开关引脚

本课属于 Coddy Arduino 学习旅程的“输入”单元。第 14 课,共 22 课。

光线模块有一个自己的小芯片,叫作比较器,可以帮你判断是否达到阈值。它会将光线强度与真实模块上小螺丝设定的级别进行比较,并驱动 DO 引脚:光线较亮时为 LOW,较暗时为 HIGH。在这块板上,触发级别是半亮。

DO 是数字信号,所以读取方式和按钮一样,使用 digitalRead()。模块会自行驱动引脚,因此不需要上拉:使用普通的 INPUT 就可以。

pinMode(7, INPUT);

if (digitalRead(7) == HIGH) {
  // 暗
}

如果只想在光线变化时打印消息,可以使用按钮课程中介绍的边沿检测思路:将这次的读数与上一次的读数进行比较。

challenge icon

挑战

简单

模块的 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
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输入中的所有课

自己练习: Arduino 在线编辑器