Arduino开发声光控照明灯photocellPin +soundPin 程序,光线越亮,灯越暗
时间: 2024-02-11 09:04:20 浏览: 153
用Arduino控制灯光-项目开发
好的,下面是一个修改后的Arduino声光控照明灯程序,使用一个光敏电阻和一个声音传感器来控制灯的亮度和颜色。与之前的程序不同的是,光线越亮,灯越暗:
```
const int photocellPin = A0; // 光敏电阻引脚
const int soundPin = A1; // 声音传感器引脚
const int redPin = 9; // 红色LED引脚
const int greenPin = 10; // 绿色LED引脚
const int bluePin = 11; // 蓝色LED引脚
void setup() {
pinMode(photocellPin, INPUT);
pinMode(soundPin, INPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// 读取光敏电阻值
int photocellValue = analogRead(photocellPin);
// 读取声音传感器值
int soundValue = analogRead(soundPin);
// 根据光敏电阻值控制灯的亮度
int brightness = map(photocellValue, 0, 1023, 255, 0);
analogWrite(redPin, brightness);
analogWrite(greenPin, brightness);
analogWrite(bluePin, brightness);
// 根据声音传感器值控制灯的颜色
if (soundValue > 500) {
// 如果声音传感器值大于500,显示红色
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
} else if (soundValue > 100) {
// 如果声音传感器值在100-500之间,显示黄色
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, LOW);
} else {
// 如果声音传感器值小于100,显示蓝色
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, HIGH);
}
delay(10); // 延迟10毫秒
}
```
注意:这里将`map()`函数的参数由`0, 1023, 0, 255`修改为`0, 1023, 255, 0`,以实现光线越亮,灯越暗的效果。
阅读全文