Ikea Dioder - Ansteuerung mit iPhone/iPad/Android

PROBLEM GELÖST.
Vielleicht kann ja jemand den Code nutzen um seine Ikea Dioder mittels OSC zu steuern.

Hallo,

Ich habe vor meine Ikea Dioder leisten mit einem Arduino und mehreren ULN2003A zu steuern.

Angeschlossen habe ich sie nach folgenden Schema auf einer Webseite: Daniel Kennett - Nerd++: Controlling Dioder RGB LED Strips with Arduino, Pt. 1 - Getting Started

Immer wenn ich versuche eine weiße Farbe einzustellen, also alle Werte für Rot, grün und blau dann leuchten sie nur ganz schwach. Hat jemand eine Idee? Liegt es am ULN2003A? Angeschlossen ist das ganze an einen Arduino Mega mit Ethernet Shield an den Pins 2-4.

/***************************************/
/*libraries*/
/***************************************/
#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h>

/***************************************/
/*defines*/
/***************************************/
#define SERVER_PORT 9000
#define DESTINATION_PORT 8000
#define PIN_R 2
#define PIN_G 3
#define PIN_B 4

/***************************************/
/*variables*/
/***************************************/
OSCServer server;
OSCClient client;

byte myMac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte myIp[]  = {192, 168, 1, 177};

int rgb_r=0;
int rgb_g=0;
int rgb_b=0;

int hsv_h=0;
int hsv_s=255;
int hsv_v=0;

/***************************************/
/*setup*/
/***************************************/
void setup(){ 

  //start serial
  Serial.begin(115200);

  //set pin modes
  pinMode(PIN_R, OUTPUT);  
  pinMode(PIN_G, OUTPUT); 
  pinMode(PIN_B, OUTPUT); 
  
  //start ethernet
  Ethernet.begin(myMac ,myIp);

  //start OSC server 
  server.begin(SERVER_PORT);

  //set callback function & oscaddress
  server.addCallback("/1/push1",&func_onoff);
  server.addCallback("/1/hue",&func_hue);
  server.addCallback("/1/saturation",&func_saturation);
  server.addCallback("/1/value",&func_value);
}

/***************************************/
/*loop for ever*/
/***************************************/
void loop(){
  if(server.aviableCheck()>0){
    //Serial.println("alive! "); 
  }
  
  HSV2RGB(hsv_h, hsv_s, hsv_v, rgb_r, rgb_g, rgb_b);
  setLedColor(rgb_r, rgb_g, rgb_b);
}

/***************************************/
/*additional functions*/
/***************************************/
void setLedColor(int red, int green, int blue) {
  analogWrite(PIN_R,red);
  analogWrite(PIN_G,green);
  analogWrite(PIN_B,blue);
}

// hue         0...360
// saturation  0...255
// value       0...255
void HSV2RGB(int h, double s, double v, int &r_int, int &g_int, int &b_int) {
  double r=0; 
  double g=0; 
  double b=0;

  if(s==0)
  {
    r_int = v;
    g_int = v;
    b_int = v;
    return;
  }
  
  s /= 255;
  v /= 255;

  double hf=h/60.0;

  int i=(int)floor(h/60.0);
  double f = h/60.0 - i;
  double pv = v * (1 - s);
  double qv = v * (1 - s*f);
  double tv = v * (1 - s*(1 - f));

  switch (i)
  {
  case 0:
    r = v;
    g = tv;
    b = pv;
    break;
  case 1:
    r = qv;
    g = v;
    b = pv;
    break;
  case 2: 
    r = pv;
    g = v;
    b = tv;
    break;
  case 3:
    r = pv;
    g = qv;
    b = v;
    break;
  case 4:
    r = tv;
    g = pv;
    b = v;
    break;
  case 5:
    r = v;
    g = pv;
    b = qv;
    break;
  }

  r_int=constrain((int)255*r,0,255);
  g_int=constrain((int)255*g,0,255);
  b_int=constrain((int)255*b,0,255);
}

EDIT:

Ich hab jetzt nochmal getestet. Immer wenn ich 3 PWM Ausgänge am Megaansteuere werden alle 3 relativ schwach wenn der gesetzte Wert überall gleich ist.
Setze ich unterschiedliche PWM Werte (50,60,70) setzt immer dejenige Pin aus der den geringen PWM Wert erhält. Kann es sein das mein Mega ein Problem hat oder ist es ein generelles Problem?

EDIT2:

Ich konnte das Problem lösen, indem ich 12V an den Vin Pin angelegt habe. Scheinbar bricht die Spannung teilweise zusammen wenn 3 Pins auf HIGH gesetzt werden.

EDIT2:
Ich konnte das Problem lösen, indem ich 12V an den Vin Pin angelegt habe. Scheinbar bricht die Spannung teilweise zusammen wenn 3 Pins auf HIGH gesetzt werden.

Wo hattest Du die 12V vorher angeschlossen?

grüße Uwe

Vorher waren die 12V nur direkt an der Beleuchtung angeschlossen und nur die Masse vom Netzteil am Mega. Der Mega wurde über USB versorgt.

Vielleicht kann ja jemand den Code nutzen um seine Ikea Dioder mittels OSC zu steuern.

Mit dem geposteten Code geht das aber nicht, der compiliert nicht mal (server.aviableCheck) und ist nicht vollständig.

gloob:
Vorher waren die 12V nur direkt an der Beleuchtung angeschlossen und nur die Masse vom Netzteil am Mega. Der Mega wurde über USB versorgt.

Müßte aber so funktionieren.
Grüße Uwe