Phalox log

Everyday projects

You are not logged in.

Announcement

Welcome to this project log. This website is still under development, please report any bugs to webmaster_at_phalox*dot*be.

#1 11-07-2012 14:57:05
Poster: phalox

DMX transmitter

Project: DMX transmitter

The last couple of days I have been working on a stand-alone DMX transmitter. Follow the progress here

First a picture
http://phalox.be/flux/img2/uploadedfiles/thumb/t29-DSC01997-1000.jpg
On the right, you see a PIC24FJ64GA002 (16 bit series of Microchip). If you want to get started with such a PIC, I refer you to this great website. On top of the datasheets provided per PIC, there is also a general set of notes about the 24F series, containing examples in C code.

To the left, you see a MAX3485, soldered Dead-Bug style on a piece of PCB. I only had the SMD versions and I didn't want to wait for an order, so this does the job very well. And, in fact that's about it for a DMX transmitter! On the top, you see three LED strips with a DMX receiver backpack that I made.

http://phalox.be/flux/img2/uploadedfiles/thumb/t29-DSC01998-1000.jpg

http://phalox.be/flux/img2/uploadedfiles/thumb/t29-DSC01999-1000.jpg

http://phalox.be/flux/img2/uploadedfiles/thumb/t29-DSC02000-1000.jpg

Here is a video of what it can do at the moment:


The 'frames' that you see in this video, are currently hard-coded in a 3 dimensional array:

Code:

uint8_t dmx_rotation[][3][3] = {
    {
        {255, 0, 0},
        {0, 255, 0},
        {0, 0, 255}
    },
    {
        {125, 0, 125},
        {0, 0, 0},
        {125, 0, 125}
    },
    {
        {0, 0, 255},
        {0, 255, 0},
        {255, 0, 0}
    }
};

Every frame contains a 3*3 array, one row is assigned to one LED strip, and 1 column is connected to an R, G or B pin. By adding more frames, the lights will display other patterns.

Code:

    /* Configure timer 2 */
    //PR2 = 0x056A;

    IPC1bits.T2IP = 2;     //set interrupt priority
    IFS0bits.T2IF = 0;     //reset interrupt flag
    IEC0bits.T2IE = 1;     //turn on the timer1 interrupt
    T2CONbits.TCKPS = 0b11; // Set prescaler to 1:256
    T2CONbits.TON = 1;   //turn ON the timer

The speed can be adjusted by changing parameters for Timer2. The clock prescaler can be changed from 1:1 to 1:256, and a 16 bit preload value can be used to increase the speed.

If you're curious about the entire code at this moment, have a look here:
http://pastebin.com/xuydBVu6 (It seems something in my code is breaking the parsing of the entire post)

Last edited by phalox (11-07-2012 15:06:31)

 

#2  03-04-2013 03:56:54

halterpromdresses
Guest

Re: DMX transmitter

http://www.good4dresses.com/prom-dresse … 17451.html    floor length one shoulder dress empire waist lf 17451
http://www.good4dresses.com/prom-dresse … c2054.html    floor length one shoulder dress one shoulder at ac2054
http://www.good4dresses.com/prom-dresse … -7478.html    floor length one shoulder dress one shoulder dj 7478
http://www.good4dresses.com/prom-dresse … -7564.html    floor length one shoulder dress one shoulder dj 7564
http://www.good4dresses.com/prom-dresse … p1621.html    floor length one shoulder dress one shoulder fl p1621
http://www.good4dresses.com/prom-dresse … 17451.html    floor length one shoulder dress one shoulder lf 17451

 

#3  24-04-2013 02:37:08

dressyms
Guest

Re: DMX transmitter

 

Board footer

Powered by FluxBB