如何在 Arduino 上使用光线传感器模块

市面上常见的传感器模块,其输出大体可分为模拟、数字、特定协议输出(例如 RS485、RS232、SPI、CAN、单总线等)。其中,前两种的读取最为简单通用,而使用特定协议的传感器读取方法要参考传感器相应的文档。

本教程以四针脚的光线传感器为例,介绍模拟和数字输出的传感器的读取方法。只有这款四针脚的光线传感器,才可以同时兼具模拟输出(AO 引脚)和数字输出(DO 引脚)。而其他三针脚的传感器,有的仅支持模拟输出,有的仅支持数字输出。

在本教程中,我们将学习如何使用Arduino和光线传感器来检测光线的强度,并根据光线的强度控制LED的亮灭。以下是详细的步骤:

材料准备

Arduino开发板
光线传感器
杜邦线


连接电路

将光线传感器的 VCC 引脚连接到 Arduino 的 5V 引脚。
将光线传感器的 GND 引脚连接到 Arduino 的 GND 引脚。
将光线传感器模块的 DO 引脚连接到 Arduino 的数字引脚(例如 D2)。
将光线传感器的 AO 引脚连接到 Arduino 的模拟输入引脚(例如 A0)。

如果光线传感器需要使用电阻,请根据传感器的规格将电阻连接到传感器的OUT引脚和GND引脚之间。

编写代码

1.打开Arduino IDE,并创建一个新的空白项目。
在项目中添加以下代码:

const int sensorPin = A0; // 光线传感器连接到的模拟输入引脚
const int ledPin = 13; // LED连接到的数字输出引脚
const int sensor = 2;// 光线传感器模块的DO引脚连接到Arduino的数字引脚D2

void setup() {
  pinMode(ledPin, OUTPUT); // 将LED引脚设置为输出模式
  pinMode(sensor,INPUT);// 将传感器引脚设置为输入模式
  Serial.begin(9600); // 打开串口通信,用于调试
}

void loop() {
  int sensorValue = analogRead(sensorPin); // 读取光线传感器的数值
  int sensorin = digitalRead(sensor);// 读取传感器引脚的状态(高电平或低电平)
  Serial.println(sensorValue); // 将数值打印到串口监视器
  Serial.println(sensorin);

  if (sensorValue > 500) { // 根据光线传感器的数值判断光线强度
    digitalWrite(ledPin, HIGH); // 如果光线强度大于500,点亮LED
  } else {
    digitalWrite(ledPin, LOW); // 如果光线强度小于等于500,熄灭LED
  }

  delay(1000); // 延迟1秒钟,以便观察LED的亮灭
}

2.上传代码:
将 Arduino 开发板通过 USB 连接到计算机。在 Arduino IDE 中选择正确的开发板和端口。点击上传按钮将代码上传到 Arduino 开发板。

3.测试:
打开串口监视器,设置波特率为 9600Hz。
运行之后,串口监视器中每隔 1 秒会打印出一行从传感器读取到并转换之后的数据。数值随着环境光线的变化随之变化。

观察串口监视器中打印的光线传感器数值。根据光线传感器的数值,LED应该会相应地亮起或熄灭。

你还可以:
查看系列教程中的其他文章
购买本教程所用到的 Pico 套件



坐沙发

发表评论