midi и neopixel
- Войдите на сайт для отправки комментариев
Сб, 04/04/2020 - 05:14
Доброго времени суток. Прошу не кидать тапками - только начинаю изучать ардуино. К Arduino Mega подключен Midi in (железный) и 4 RGB ленты (2812B).Цель - нажата нота c синтезатора, который подключен к midi in - загорается одна из лент (для начала просто белым цветом). Нота отжата - лента потухла.
при включении, на ленте горит 6-ой диод постоянно -все остальные диоды работают как задумал. Подскажите, в чем может быть проблема 6 диода.
#include <Adafruit_NeoPixel.h> #include <MIDI.h> #define PIN_A 4 // пин ардуино #define count_led 6 // количество светодиодов int brightness = 10; //Функция задает общую яркость светодиодной ленты MIDI_CREATE_DEFAULT_INSTANCE(); Adafruit_NeoPixel strip = Adafruit_NeoPixel(count_led, PIN_A, NEO_GRB + NEO_KHZ800); void setup() { MIDI.begin(MIDI_CHANNEL_OMNI); MIDI.setHandleNoteOn(NoteOnFunction); MIDI.setHandleNoteOff(NoteOffFunction); // MIDI.setHandleControlChange(CCFunction); strip.begin(); } void loop() { MIDI.read(); } void NoteOnFunction(byte channel, byte note, byte velocity) { if (note>0) strip.setPixelColor(5, 255, 255, 255); strip.setPixelColor(4, 255, 255, 255); strip.setPixelColor(3, 255, 255, 255); strip.setPixelColor(2, 255, 255, 255); strip.setPixelColor(1, 255, 255, 255); strip.setPixelColor(0, 255, 255, 255); strip.setBrightness(brightness); strip.show(); }; void NoteOffFunction(byte channel, byte note, byte velocity){ if (note<0) strip.setPixelColor(5, 0, 0, 0); strip.setPixelColor(4, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(0, 0, 0, 0); strip.setBrightness(brightness); strip.show(); };
Эти ленты постоянно выходят из строя с такими симптомами. Пробуй на другом отрезке.