📅  最后修改于: 2023-12-03 15:37:34.283000             🧑  作者: Mango
光敏电阻(LDR)是一种能够测量周围光照强度的电子元件。在Arduino中,我们可以利用LDR来控制LED的亮度,从而实现根据光照强度自动调节LED亮度的效果。
将LDR连接到Arduino的模拟输入引脚A0,LED连接到数字输出引脚9。
const int LDR = A0; // LDR连接的模拟输入引脚A0
const int LED = 9; // LED连接的数字输出引脚9
void setup() {
pinMode(LED, OUTPUT); // LED设置为输出模式
Serial.begin(9600); // 打开串口调试
}
void loop() {
int ldrValue = analogRead(LDR); // 读取LDR的模拟值
int bright = map(ldrValue, 0, 1023, 0, 255); // 将LDR的模拟值映射到0~255的亮度值
analogWrite(LED, bright); // 输出LED的亮度值
Serial.println(bright); // 将LED的亮度值通过串口输出,方便调试
delay(50); // 延迟50ms,防止过快刷新引起的抖动
}
analogRead
函数读取LDR模拟值map
函数实现analogWrite
函数输出LED亮度值Serial.println
函数将LED亮度值通过串口输出,方便调试如果想要更加灵敏地控制LED亮度,可以使用PWM引脚,利用PWM技术来控制LED的亮度。这样可以实现更流畅的过渡效果,也可以更灵活地控制LED的亮度。
const int LDR = A0; // LDR连接的模拟输入引脚A0
const int LED = 9; // LED连接的数字输出引脚9
void setup() {
pinMode(LED, OUTPUT); // LED设置为输出模式
analogWrite(LED, 0); // 初始化LED亮度为0
Serial.begin(9600); // 打开串口调试
}
void loop() {
int ldrValue = analogRead(LDR); // 读取LDR的模拟值
int bright = map(ldrValue, 0, 1023, 0, 255); // 将LDR的模拟值映射到0~255的亮度值
analogWrite(LED, bright); // 输出LED的亮度值
Serial.println(bright); // 将LED的亮度值通过串口输出,方便调试
delay(50); // 延迟50ms,防止过快刷新引起的抖动
}
通过本文的介绍,我们了解了如何在Arduino中使用LDR实现LED亮度的自动调节,同时也掌握了如何使用串口调试、map函数等扩展技能。希望本文能对大家的学习和工作有所帮助。