Hello,
i have problems with my arduino mega with ethernet shield and resolume sending artnet.
Every time an artpoll is receiving the leds shows shortly an random color.
This is my sketch:
#include <Artnet.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
#include <Adafruit_NeoPixel.h>
#include <EEPROM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
Adafruit_NeoPixel leds = Adafruit_NeoPixel(60, 23, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, 25, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel leds2 = Adafruit_NeoPixel(60, 27, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(60, 31, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel leds3 = Adafruit_NeoPixel(60, 33, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel(60, 35, NEO_GRB + NEO_KHZ800);
//Adafruit_NeoPixel leds4 = Adafruit_NeoPixel(60, 37, NEO_GRB + NEO_KHZ800);
//Adafruit_NeoPixel strip4 = Adafruit_NeoPixel(60, 39, NEO_GRB + NEO_KHZ800);
//Adafruit_NeoPixel leds5 = Adafruit_NeoPixel(60, 41, NEO_GRB + NEO_KHZ800);
//Adafruit_NeoPixel strip5 = Adafruit_NeoPixel(60, 43, NEO_GRB + NEO_KHZ800);
Artnet artnet;
uint8_t* data;
byte ip[] = {10, 0, 1, 199};
byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};
byte broadcast[] = {10,255,255,255};
byte subnet [] = {255,0,0,0};
void setup() {
//Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.print("BOOTING....");
ip[0] = EEPROM.read(1);
ip[1] = EEPROM.read(2);
ip[2] = EEPROM.read(3);
ip[3] = EEPROM.read(4);
subnet[0] = EEPROM.read(5);
subnet[1] = EEPROM.read(6);
subnet[2] = EEPROM.read(7);
subnet[3] = EEPROM.read(8);
leds.begin();
strip.begin();
leds2.begin();
strip2.begin();
leds3.begin();
strip3.begin();
//leds4.begin();
//strip4.begin();
//leds5.begin();
//strip5.begin();
initTest();
artnet.begin(mac,ip);
Ethernet.setSubnetMask(subnet);
artnet.setBroadcast(broadcast);
artnet.setArtDmxCallback(onDmxFrame);
}
void loop() {
data = artnet.getDmxFrame();
for(int i=0;i < 60;i++){
leds.setPixelColor(i,data[i3],data[i3+1],data[i3+2]);
strip.setPixelColor(i,data[i3 + 180],data[i3+1 + 180],data[i3+2+ 180]);}
leds.show();
strip.show();
leds2.show();
strip2.show();
leds3.show();
strip3.show();
artnet.read();
}
void onDmxFrame(uint16_t universe, uint16_t length, uint8_t sequence,uint8_t* data, IPAddress remoteIP)
{
}
void initTest()
{
for (int i = 0 ; i < 170 ; i++){
leds.setPixelColor(i, 127, 0, 0);
leds.show();
strip.setPixelColor(i, 127, 0, 0);
strip.show();
leds2.setPixelColor(i, 127, 0, 0);
leds2.show();
strip2.setPixelColor(i, 127, 0, 0);
strip2.show();
leds3.setPixelColor(i, 127, 0, 0);
leds3.show();
strip3.setPixelColor(i, 127, 0, 0);
strip3.show();}
delay(500);
for (int i = 0 ; i < 170 ; i++){
leds.setPixelColor(i, 0, 127, 0);
leds.show();
strip.setPixelColor(i, 0, 127, 0);
strip.show();
leds2.setPixelColor(i, 0, 127, 0);
leds2.show();
strip2.setPixelColor(i, 0, 127, 0);
strip2.show();
leds3.setPixelColor(i, 0, 127, 0);
leds3.show();
strip3.setPixelColor(i, 0, 127, 0);
strip3.show();}
delay(500);
for (int i = 0 ; i < 170 ; i++){
leds.setPixelColor(i, 0, 0, 127);
leds.show();
strip.setPixelColor(i, 0, 0, 127);
strip.show();
leds2.setPixelColor(i, 0, 0, 127);
leds2.show();
strip2.setPixelColor(i, 0, 0, 127);
strip2.show();
leds3.setPixelColor(i, 0, 0, 127);
leds3.show();
strip3.setPixelColor(i, 0, 0, 127);
strip3.show();}
delay(500);
for (int i = 0 ; i < 170 ; i++){
leds.setPixelColor(i, 0, 0, 0);
leds.show();
strip.setPixelColor(i, 0, 0, 0);
strip.show();
leds2.setPixelColor(i, 0, 0, 0);
leds2.show();
strip2.setPixelColor(i, 0, 0, 0);
strip2.show();
leds3.setPixelColor(i, 0, 0, 0);
leds3.show();
strip3.setPixelColor(i, 0, 0, 0);
strip3.show();}
}