DMX Light

DMX Receiver Light using Lumiled 3W LED Tilt/PAN using Servo, RGB

Sweet! What LED driver are you using?

i am using a TIP41C with a 0.81 ohm resistor and a 2n3904 to make a current source.

That Give me 1 Amp constant current in the Led

Cool, thanks for the schematic. Is the output pretty stable with changes in the input voltage or voltage drop of the LEDs?

The Current is pretty stable but: 1A in the TIP 41, the more voltage you have to loose in the transistor, the more it will heat, so your better to keep the supply voltage as low as possible. BTW i did not draw the control ON/OFF transistor, it is another 2n3904 actually in parallel of Q2, but the base is control by a PWM output (with a 10K resistor) of the arduino.

Hi. It looks nice! Have you made the reciever with an Arduino? Would you be so kind to show the code?

Thomas

Sure, i did not want to make a repost of the code, you can find it in this post. and it it work with 0012 and probally 0015 but not 0013 and 0014
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236787817/all

That post doesn't have your working code. You haven't posted you working code :)

Yep the code was there, i will repost it here:

#include <Servo.h>

#define myubbr (16000000L/16/250000-1)
Servo servo1; Servo servo2;

char oldDMX;
volatile unsigned char DMX[64];
volatile int DMXChannel=0;


ISR(USART_RX_vect)
{
  char temp,temp1;
  temp1 = UCSR0A;
  temp = UDR0&0xFF;
  if ((temp1 & (1<<FE0))||temp1 & (1<<DOR0)) //Break
  {
    DMXChannel = 0;
    return;
  }
  else if (DMXChannel<(char)25)
  {
    DMX[DMXChannel++]=temp&0xFF;
  }
}

void setup()
{
  pinMode(5,OUTPUT);
  pinMode(0,INPUT);
  pinMode(8,INPUT);
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  digitalWrite(5,HIGH);
  digitalWrite(8,HIGH);

  servo1.attach(9); //analog pin 0
  servo2.attach(10); //analog pin 1
  delay(100);
  UBRR0H = (unsigned char)(myubbr>>8);
  UBRR0L = (unsigned char)myubbr;
  UCSR0B |= ((1<<RXEN0)|(1<<RXCIE0));//Enable Receiver and Interrupt RX
  UCSR0C |= (3<<UCSZ00);//N81

}
void loop()
{
    servo1.write(map(DMX[1],0,255,25,125));
    servo2.write(map(DMX[2],0,255,30,120));
    analogWrite(11,255-DMX[3]);
    analogWrite(5,255-DMX[4]);
    analogWrite(6,255-DMX[5]);
}

Where are the DMX signals going in, which pin? And thru a MAX485? Also, the bottom servo you have, is that a 360 degree servo?