利用ESP8266 01S模块和WS2812灯珠写的拾音灯程序,A0脚连接WS2812,D4脚连接麦克风
时间: 2023-12-06 21:39:50 浏览: 43
下面是一个基于ESP8266 01S模块和WS2812灯珠的拾音灯程序,其中A0脚连接WS2812,D4脚连接麦克风。该程序会通过麦克风采集声音信号,并根据音量大小控制WS2812灯珠的亮度和颜色。
```c++
#include <Adafruit_NeoPixel.h>
#define PIN A0
#define NUM_LEDS 1
#define MIC_PIN D4
Adafruit_NeoPixel strip(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show();
pinMode(MIC_PIN, INPUT);
}
void loop() {
int micValue = analogRead(MIC_PIN);
int brightness = map(micValue, 0, 1023, 0, 255);
strip.setBrightness(brightness);
if (micValue > 200) { // 检测到声音
strip.setPixelColor(0, strip.Color(255, 0, 0)); // 红色
} else {
strip.setPixelColor(0, strip.Color(0, 0, 255)); // 蓝色
}
strip.show();
delay(10);
}
```
在这个程序中,我们首先定义了WS2812灯珠的控制引脚为A0,使用了Adafruit_NeoPixel库来控制灯珠。然后,我们将麦克风的控制引脚设置为D4,并在setup()函数中初始化。
在loop()函数中,我们首先读取麦克风的模拟值,并使用map()函数将其转换为0到255之间的亮度值。然后,根据麦克风的音量大小来控制灯珠的颜色和亮度,如果检测到声音则显示红色,否则显示蓝色。
最后,我们使用strip.show()函数来更新灯珠的状态,并在每次循环结束时延时10毫秒。