利用ESP8266 01S模块和WS2812灯珠写的拾音灯程序
时间: 2023-12-03 12:47:44 浏览: 50
以下是基于ESP8266 01S模块和WS2812灯珠的拾音灯程序示例:
```
#include <FastLED.h>
#include <SoftwareSerial.h>
#define LED_PIN 4
#define NUM_LEDS 12
#define BRIGHTNESS 255
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
if (mySerial.available()) {
int val = mySerial.read();
if (val >= 0 && val <= 255) {
int brightness = map(val, 0, 255, 0, BRIGHTNESS);
FastLED.setBrightness(brightness);
}
else {
int level = map(val, -128, 127, 0, NUM_LEDS - 1);
for (int i = 0; i < NUM_LEDS; i++) {
if (i <= level) {
leds[i] = CRGB::Green;
}
else {
leds[i] = CRGB::Black;
}
}
FastLED.show();
}
}
}
```
该程序使用了FastLED库来控制WS2812灯珠,使用SoftwareSerial库与ESP8266 01S模块通信。
程序通过串口接收音量大小并控制LED亮度,同时也通过串口接收音频峰值并控制LED闪烁。可以将ESP8266 01S模块连接到麦克风模块或音频输入设备上,从而实现拾音灯的效果。