midi и neopixel

plastshot
Offline
Зарегистрирован: 03.04.2020

Доброго времени суток. Прошу не кидать тапками - только начинаю изучать ардуино. К 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();

};

 

rkit
Offline
Зарегистрирован: 23.11.2016

Эти ленты постоянно выходят из строя с такими симптомами. Пробуй на другом отрезке.