Мой светодиодный дисплей выходит из строя из за того что выход MSGEQ7 застрял
arduino-pro-mini
led-strip
У меня есть установка Arduino с pro-mini, MSGEQ7 и микрофоном с автоматическим усилением. Даже если я удалю аудиовход на MSGEQ7, он останется прежним в 890-х годах (из 1024). Это то же самое на каждом из двух новых MSGEQ7. Я проверил схемы, https://www.instructables.com/Music-Sync-Flashing-LEDs-Arduino-MSGEQ7/, несколько раз, и все, кажется, в порядке, включая компоненты.
Я использую #include <MD_MSGEQ7.h><MD_MSGEQ7.h>
, но я пробовал без него.
Есть идеи?
#include <Adafruit_NeoPixel.h>
#include <MD_MSGEQ7.h>
int LEDPIN = 12;
int MODEPIN = 10;
int mode = 0;
int lastState = LOW;
int NUMPIXELS = 50;
int DATA_PIN = 1; // считывание с мультиплексора с помощью аналогового вывода 1, вывода MSGEQ7 3
int STROBE_PIN = 2; // MSGEQ7 pin 4
int RESET_PIN = 3; // MSGEQ7 pin 7
int spectrumValue[7];
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, LEDPIN, NEO_GRB + NEO_KHZ800);
MD_MSGEQ7 MSGEQ7(RESET_PIN, STROBE_PIN, DATA_PIN);
void setup() {
Serial.begin(9600);
pinMode(MODEPIN, INPUT);
pixels.begin();
MSGEQ7.begin();
}
void loop() {
int currentState = digitalRead(MODEPIN);
if (currentState == LOW && lastState == HIGH) {
mode++;
if (mode > 2) {
mode = 0;
}
}
lastState = currentState;
MSGEQ7.read();
for (int i = 0; i < 7; i++) {
Serial.println(MSGEQ7.get(i));
}
if (mode == 0) {
for (int i = 0; i < NUMPIXELS - 1; i++) {
pixels.setPixelColor(i, pixels.Color(30, 60, 60)); // RGB
}
} else if (mode == 1) {/////////////////////////////////////////////////////////
int height = (NUMPIXELS - 1) * MSGEQ7.get(1) / 1024;
for (int i = 0; i < NUMPIXELS - 1; i++) {
if (i < height) {
pixels.setPixelColor(i, pixels.Color(60, 60, 0)); // RGB
} else {
pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // RGB
}
}
} else if (mode == 2) { /////////////////////////////////////////////////////////
pixels.setPixelColor(0, pixels.Color(120 * MSGEQ7.get(5) / 1024, 0, 0)); // RGB
}
pixels.show();
}
@mystack, 👍2
Обсуждение0
Смотрите также:
- Освещение, активируемое движением
- Как заставить Arduino взаимодействовать с тремя другими Ардуино?
- avrdude: stk500_getsync(): not in sync: resp=0x00
- Ошибка "avrdude:stk500_recv(): programmer is not responding" при загрузке скетча в Arduino Pro Mini
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Сторожевой таймер застрял в цикле перезапуска? (мигает зеленый светодиод)
- Arduino Pro Mini (версия 3.3 V) диапазон входного напряжения / допуск
Здесь не так уж много можно сделать. Где твой код? Вы хотите сказать, что точно следовали схеме в этой статье, включая компоненты? Что делает "...Я убираю микрофон с выхода..." в смысле?, @lurker
Отредактированный. Спасибо., @mystack