Show Posts
Pages: 1 2 [3] 4
31  Forum 2005-2010 (read only) / Interfacing / 3 and more arduinos communicating ??? on: August 07, 2007, 03:45:02 pm

did anyone of you tryed to let more then two arduinos communicat, or did even one of you already developt a protocoll or library?

i was planing on using one arduino as a masterdevice for 3-11 slaves
futher more i was planing to have the communication on just one wirre for the signal and run on RS485 (using max485).

it would be nice if some of you could give some tips how to do it (asspecialy how to read bits and bytes)
so i don't have to start from scratch,

in genrall i just need very easy communication (just 0/1 request and checking for the right name of the slave etc.)

thanks a lot
32  Forum 2005-2010 (read only) / Interfacing / Re: Rigging and powering multiple LEDs on: June 16, 2007, 03:18:06 am

if you come to some nice results (creating nice library, etc.) please post it at the wiki, so it will not be lost, there is already a area reservt for LED matrix stuff:

vi ses
33  Forum 2005-2010 (read only) / Interfacing / Re: DMX, LTC485 on: January 28, 2007, 04:18:58 pm

i don't know if i was able to follow you:

you got the same problems while using arduino as a stand alone DMX-master device and also just as a USB to DMX interface for OpenDMX software?
So it seems to be a technical problem and no code problem...

what are you useing as dmx-slave (dimmer) ?
did you tried to use some other master device to attack them?

what kind of lamps are you useing (typ? watt?)?
 did you tried to work with some other dmx-slaves?

which arduino version are you running ?
the code is quite old and i don't know if it will work with arduino 006 etc.

i'm not so good in elektronics, I just know some think about theaterlight,
it would be easyer to follow your problem if you could post some pictures of your setup,

tomek (have no clue)

34  Forum 2005-2010 (read only) / Interfacing / Re: Digital Input from Piezos on: May 03, 2007, 05:47:25 pm

i don't know if i understand the question right, but why don't you use the piezo like a normal pushbutton ??

ha det bra
35  Forum 2005-2010 (read only) / Interfacing / Re: Arduino DMX-512 troubleshoot (RS-485) on: March 28, 2007, 02:14:48 pm
mmhhh again,

there is still a question left.

why is the "for loop" for the start bit shorter then the "for loop" for the data-bits (bit that carry the value).
The data-bit are having a if/else statment which takes some time the start bit is having nothing ....

I can not check this, because i don't have a oscilloscope ( and actually i don't know how to use it), but did you checkt the hole code on timeing issues ?

if not could some one do it?

david and me did it ones for the arduino 003 code but since arduino004 the microseconds delay changed a little bit, and i fixed the code with my well proved "try and error" skills. i testet the code on different slave but we know it is not perfekt jet.

36  Forum 2005-2010 (read only) / Interfacing / Re: Arduino DMX-512 troubleshoot (RS-485) on: March 28, 2007, 02:03:16 pm

did you checked this with a oscilloscope?

i was asspecting i just have to do this with the bits which contains the value information (data-bits), because they have a if/else statement which need some time.

but thanks a lot, that you fixed the code, i will change the code on the playground a.s.a.p.

I was asppecting that a slave like the lightwave LX, who seems do be made for longtime, outdoor applications, should work a little bit better with not so clean singals...

for your problems with high values:

maybe you should add a delay for the stop- and relis-bit  which will be the mark between bytes. (this break is have to be between 8 us and 1 sec). we didn't set a delay for this both bits because normaly operation we do between sending different byte takes more  then 8 us. maybe it doesn't  in your code, or maybe you do other operations which take more then 1 sek. ???

by the way: if you creat some nice funktions, objekts, installations etc.  with dmx and arduino, feel free to add a new topic in the dmx tutorial or palyground in generall, i think it would be a great help for people if you would show your work at the playground. it is such a anoying shit with this code so it can be nice to see some nice projekts to motivate other people.

ha det bra
37  Forum 2005-2010 (read only) / Interfacing / Re: Arduino DMX-512 troubleshoot (RS-485) on: March 23, 2007, 05:58:33 pm

since your dmx tester works pretty well, i would askpact that there is some thing wrong with the wirreing or the slave.

 last week i was testing the code with arduino 006 and 007 on a luzifer dimmer pack, i just had the time to do a fast test but i seems to work pretty well,  
At least i tested all code examples from the arduino page with with arduino 005 and a couple of different slaves.

did you testet the lightwave LX with some other dmx master device?
did you also have some other dmx slaves to test the code?
since you have so a nice equpment i guess you know and checkt the wirring a couple of times.

ha det bra

p.s. maybe you can discrib your problem and your slave device (i didn't found in the internet) a little bit more
38  Forum 2005-2010 (read only) / Interfacing / Re: Dimmer control circuit on: January 28, 2007, 03:43:56 pm

here you can find some solutions for DIY dimmer, analog or DMX controlled
39  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: serial monitor to text file on: November 16, 2007, 07:37:37 pm

a little bit more fancy way would be to write a small little program in processing which receive all the data from the serial port and print it to a text file,
if you want i can pass the code to you, but on the other hand it is really easy, you know the processing GUI  is the same as for Ardunio,

ha det bra
40  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: LED matrix on: September 15, 2006, 11:53:52 am

i guess the 4x8 biocolour version could work, the problem is just that the code for the max7219 (posted by  massimo) is just working for one max7219, if you want to use more then one max7219 you have to change the code,  
for example: you have to change the  max7219_init(); because this version is just talking to the first guy, you should have a look in the data sheet, i*m not so good in explaining this stuff, but right now i*m trying a vesion with two max7219, if will post it if it is working, tomorrow,...

ha de bra
41  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Arduino connected to LED matrix (MAX 7219) on: February 06, 2008, 10:52:59 am


i would just suggest to not use pin 0 and 1 ( because there are the serial communication Pin of the arduino), maybe they interfere with the FTDI chip (USB port), which is connectect at your picture.

maybe post your code (or just this lines you changed)

good luck

42  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Daisy chaining multiple max7219 chips on: February 15, 2007, 02:42:40 pm
hej daniel,

thx, now i got it to work,
today i was able to controll 5 max7219 with the help of your capacitors and the powertranssitors;
the only problem i have now, is that this 5 guys sucks 3 amper....
43  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Daisy chaining multiple max7219 chips on: January 30, 2007, 07:21:58 am

hej Daniel,

could you please do a quick drawing or scematic how and where to conect them, i didn't got it,...

44  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Daisy chaining multiple max7219 chips on: January 27, 2007, 03:46:33 pm
the real weird thing is: it works perfect if i just want to light up one led at each of the 4 max7219, but if i want to light up more then 4 LED in a row the 2-4 max7219 gets fu**ed up and just the first one keeps one working.

today i tryed it with a pretty good powersupply (a voltkraft, where you can select the voltage, and a power up to 3 Amper), but it didn't worked...

i also tryed to ampliefy the clock and load singal with powertransistors (irf520), but this also doesn't worked out,

for this try out i had to invert the code for the clock and load, but of course NOthing happens


45  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Daisy chaining multiple max7219 chips on: January 22, 2007, 05:44:35 pm
some how i fixed  a code to daisychain multiple max7219, have a look, it is working some how but there still some buggs, some times some max7219 just die, and i never just more then 4 max7219, at the end with 2 max7219 it works with out any problems so maybe i got some elektronic based problems,  
please wirte a post or a mail if you noticed some mistakes in the code
/* code for max 7219 from maxim,
reduced and optimised for useing more then one 7219 in a row,
 Code History:
The orginal Code where written for the wiring board by:
 * Nicholas Zambetti and Dave Mellis
 * Interaction Design Institute Ivrea
 * Dec 2004
The first modification did:
 * Marcus Hannerstig
 * 2006
 * K3, malmö högskola
 * |

This Version is modified by:
 * tomek ness
 * Jan 2007
 * FH-Potsdam

-befor sending data make shure that the load is HIGH,
-fill all the max7219 with data. (begin with the last one)
-set the load to LOW and to HIGH again, so you will upload the data

* take care with the initiation you have to send every part to every max7219 and then upload it.
so for example if you have 5 max7219, you have to send the scanLimit 5 times befor you load it,
other wise not every max7219 will get the shit. maxInUse is keeping track of this,
just tell him how many max7219 you are uesing

int dataIn = 2;
int load = 3;
int clock = 4;

int i = 0;    // just a varialble
int e = 0;    // just a varialble
int f = 0;

int c = 0;
int c2= 0;

int maxInUse = 4;    //here you have to change this varialbe to how many max 7219 you want to use

  // define max7219 registers
byte max7219_reg_noop        = 0x00;
byte max7219_reg_digit0      = 0x01;
byte max7219_reg_digit1      = 0x02;
byte max7219_reg_digit2      = 0x03;
byte max7219_reg_digit3      = 0x04;
byte max7219_reg_digit4      = 0x05;
byte max7219_reg_digit5      = 0x06;
byte max7219_reg_digit6      = 0x08;
byte max7219_reg_digit7      = 0x01;
byte max7219_reg_decodeMode  = 0x09;
byte max7219_reg_intensity   = 0x0a;
byte max7219_reg_scanLimit   = 0x0b;
byte max7219_reg_shutdown    = 0x0c;
byte max7219_reg_displayTest = 0x0f;

void putByte(byte data) {
  byte i = 8;
  byte mask;
  while(i > 0) {
    mask = 0x01 << (i - 1);  // get bitmask
    digitalWrite( clock, LOW);   // tick
    if (data & mask){        // choose bit
      digitalWrite(dataIn, HIGH); // send 1
      digitalWrite(dataIn, LOW);  // send 0
    digitalWrite(clock, HIGH);  // tock
    --i;                     // move to lesser bit

void maxPut (byte reg, byte col) {    // use this

//data = ((data & 0x01) * 256) + data1 >> 1;
//data = (data << 1) + ((data >> 7) & 0x01);
putByte(reg);  // specify register
putByte(col);//((data & 0x01) * 256) + data >> 1); // put data

void maxIni (byte reg, byte col) {    // put the initialisation to all the max 7219 in the system
  int c = 0;
  digitalWrite(load, HIGH);
  for ( c =1; c<= maxInUse; c++) {
    maxPut(reg, col);   // use all 8 columns
  digitalWrite(load, LOW);

void setup () {

  pinMode(dataIn, OUTPUT);
  pinMode(clock,  OUTPUT);
  pinMode(load,   OUTPUT);
  digitalWrite(13, HIGH);  
  //////////////////////////////////////////////initiation of the max 7219
  maxIni(max7219_reg_scanLimit, 0x07);      
  maxIni(max7219_reg_decodeMode, 0x00);  // using an led matrix (not digits)
  maxIni(max7219_reg_shutdown, 0x01);    // not in shutdown mode
  maxIni(max7219_reg_displayTest, 0x00); // no display test
   for (i=1; i<=8; i++) {    // empty registers, turn all LEDs off
  maxIni(max7219_reg_intensity, 0x0f & 0x0f);    // the first 0x0f is the value you can set
  void loop () {

 //------------------------------------all doing the same: 3 led on and more

  for (i=1; i<=8; i++) {    // all max7219 doing the same shit (fill up led by led at every max7219 at the same time)
        //c = 1;
        //for (e=1; e<=8; e++) {
        maxPut(i, 193);            //56, 192 is working
        maxPut(i, 193);            //60, 57 not
        maxPut(i, 193);
        maxPut(i, 193);
        digitalWrite(load, LOW);

  for (i=1; i<=8; i++) {    // a longer way to clean the dispaly
        maxPut(i, 0);
        maxPut(i, 0);
        maxPut(i, 0);
        maxPut(i, 0);
        digitalWrite(load, LOW);

Pages: 1 2 [3] 4