skip navigational linksPJRC
Shopping Cart Checkout Shipping Cost Download Website
Home MP3 Player 8051 Tools All Projects PJRC Store Site Map
You are here: Teensy Teensyduino Libraries DmxSimple

PJRC Store
Teensy 3.1, $19.80
Teensy 2.0, $16.00
Teensy++ 2.0, $24.00
USB Cable, $4.00
Teensy
Main Page
Teensy 3.1
Getting Started
How-To Tips
Code Library
Projects
Teensyduino
Reference

DmxSimple Library

DmxSimple, by Peter Knight, allows you to control up to 512 DMX lighting dimmers.

Download: DmxSimple.new.zip (Teensy 2.0, Teensy++ 2.0, Teensy 3.0)

Download: DmxSimple.old.zip (Teensy++ 2.0 only)

DmxSimple only transmits. Ward's code can receive DMX on Teensy 3.0.

Hardware Requirements

TODO: document connections, show photos - Andy confirms it works (Teensy++ only)... need to find someone local with a DMX dimmer pack so I can test and take a good photo.

Basic Usage

DmxSimple.write(channel, brightness);

Set the DMX channel (1 to 512) to brightness (0 to 255)

Example Program

/* Welcome to DmxSimple. This library allows you to control DMX stage and
** architectural lighting and visual effects easily from Arduino. DmxSimple
** is compatible with the Tinker.it! DMX shield and all known DIY Arduino
** DMX control circuits.
**
** DmxSimple is available from: http://code.google.com/p/tinkerit/
** Help and support: http://groups.google.com/group/dmxsimple       */

/* To use DmxSimple, you will need the following line. Arduino will
** auto-insert it if you select Sketch > Import Library > DmxSimple. */

#include <DmxSimple.h>

void setup() {
  /* The most common pin for DMX output is pin 3, which DmxSimple
  ** uses by default. If you need to change that, do it here. */
  DmxSimple.usePin(3);

  /* DMX devices typically need to receive a complete set of channels
  ** even if you only need to adjust the first channel. You can
  ** easily change the number of channels sent here. If you don't
  ** do this, DmxSimple will set the maximum channel number to the
  ** highest channel you DmxSimple.write() to. */
  DmxSimple.maxChannel(4);
}

void loop() {
  int brightness;
  /* Simple loop to ramp up brightness */
  for (brightness = 0; brightness <= 255; brightness++) {
    
    /* Update DMX channel 1 to new brightness */
    DmxSimple.write(1, brightness);
    
    /* Small delay to slow down the ramping */
    delay(10);
  }
}

Details

Please visit the official DmxSimple web page for detailed information.