Instructables

RGB's with Arduino and Processing

Featured
Picture of RGB's with Arduino and Processing
DSCF5331.JPG
Here is an easy(enough) project to introduce you to the Arduino microcontroller, as well as Processing. This is my first Arduino and Processing project and I didn't have too much bother getting it working.

This is my entry to the Sparkfun Microcontroller contest so if you think it's good, please vote!!(voting starts the 14th feb). Thanks!!

 Once everything is set-up, you will be able to control the color of the RBG's from your computer, using the Processing program, and also see the output color in the program( it ain't perfect but it's handy if you want this for remote lighting)

Below is a screenshot of the Processing executing. By clicking (and/or holding) on the up and down arrows, you can change the color levels of each of the colors in the RGB.

 
Remove these adsRemove these ads by Signing Up

Step 1: Equipment

A computer with Arduino and Processing. Try to get the most up-to-date release
http://arduino.cc/en/Main/Softwar e and http://processing.org/download/

An Arduino(make sure it has PWM outputs, which is all/most)

RGB Led's

Resistors(100x2 ,180x1)

Jumper wires

Breadboard

USB cable(for the Arduino)

If you are using more than one RGB, you may need to calculate the different values for the resistors. Follow this tutorial http://www.sparkfun.com/tutorials/219 or use this site http://led.linear1.org/led.wiz to calculate the required resistances.

marios85437 months ago
Hey. Thanks for replying. It opens a little window but it's blank. In the proccesing window it says that that font of yours could not be loaded. Thanks and HELP
marios85437 months ago
Hey again dude. I tried the suggestions but got other probs now. Do you have any idea how to run the proccesing
nazdreg2007 (author)  marios85437 months ago
what type of errors are you getting?
marios85438 months ago
I can't open the colour mixer in proccesing. Also where are the instructions on how to connect the lcd??? PLEASE HELP. Can you upload an app with proccesing? Iv tried it and succesfully exported the app but I open it and shows a grey window. 
Capture.PNGCapture.PNGCapture.PNGCapture.PNGCapture.PNGCapture.PNGCapture.PNGCapture.PNGCapture.PNGCapture.PNG
nazdreg2007 (author)  marios85438 months ago
To connect the LCD, i just followed the instruction on this page http://arduino.cc/en/Tutorial/LiquidCrystal and inserted the correct pins into the program. As for teh file not opening, this project was completed three years ago so perhaps the newer processing IDE isn't quite as backward compatible as we'd like. To upload an app, i'd need to know what serial port you are using because you'd be unable to edit it in the app
Hi nazdreg2007
Thanks for replying and offering to upload an app. I'm using COM4
nazdreg2007 (author)  marios85438 months ago
I tried to export the application but it failed to run after export. My advice is to check if setting the com port to 0 works...that's what worked for me...If you have 3 com ports open up when you type Serial.list(), and the arduino's com is the second one, then you'd type 1 in for your serial port, and if it was third on the list, you'd type 2....i think that'll work
nazdreg2007 (author)  nazdreg20078 months ago
to get rid of your array error, port = new Serial(this,Serial.list()[0],9600); set the port to 0...i just tried it there and it worked.
marios85438 months ago
Oh and i forgot to say that I sometimes get an ArrayIndexOutOfBoundsException:1
FireCGun1 year ago
can some one plz tell me how i can download the code?
my computer keeps saving it as .tmp and i cant change it.
nazdreg2007 (author)  FireCGun1 year ago
See if you can open the .tmp in notepad. if that doesn't work, when you download, "save as" and in the dropdown select .txt.....that should hopefully work
Darkkeep1 year ago
Love the concept...get's your hands dirty with two great IDE platforms. I'm currently working on a project that will call for certain light spectrums for growth phases. Excellent DIY. I may post some of the code when I get a working prototype. What I'm developing is more than a weekend project ;-) Despite on how you're sending the info...still impressive.
adellelin1 year ago
Hi, really excited by this project, however it's not running for me on processing. I'm using 1.5.1 does the code need to change for that? This is the error code I'm getting, just wondering if you can help. Thanks!!

Display 0 does not exist, using the default display instead.
Mar 28 18:02:48 yingxis-MacBook-Pro.local java[16626] : CGContextGetCTM: invalid context 0x0
Mar 28 18:02:48 yingxis-MacBook-Pro.local java[16626] : CGContextSetBaseCTM: invalid context 0x0
Mar 28 18:02:48 yingxis-MacBook-Pro.local java[16626] : CGContextGetCTM: invalid context 0x0
Mar 28 18:02:48 yingxis-MacBook-Pro.local java[16626] : CGContextSetBaseCTM: invalid context 0x0
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
[0] "/dev/tty.usbserial-A6005kTq"
[1] "/dev/cu.usbserial-A6005kTq"
[2] "/dev/tty.Bluetooth-PDA-Sync"
[3] "/dev/cu.Bluetooth-PDA-Sync"
[4] "/dev/tty.Bluetooth-Modem"
[5] "/dev/cu.Bluetooth-Modem"
java.lang.NullPointerException
at java.io.DataInputStream.readInt(DataInputStream.java:370)
at processing.core.PFont.(PFont.java:319)
at processing.core.PApplet.loadFont(PApplet.java:4199)
at sketch_130328b.draw(sketch_130328b.java:66)
at processing.core.PApplet.handleDraw(PApplet.java:1631)
at processing.core.PApplet.run(PApplet.java:1530)
at java.lang.Thread.run(Thread.java:680)
Invalid memory access of location 0xb20c4b70 eip=0x547f290c
nazdreg2007 (author)  adellelin1 year ago
Hey, sorry for the delay. It looks like to me that there may be a problem with your install of processing. maybe try a clean reinstall and see if that helps.
I used an older version of processing but i don't think the code would need much or any editing to run on 1.5.1......As i said, it looks like an install problem. Lemme know if that works
This is a great Instructable! How hard would this be to connect the Arduino to an Android device via bluetooth or wifi to control the LED color from my phone?
nazdreg2007 (author)  He11uvaCook1 year ago
I don't think it would be too hard....the bluetooth would probably be the easiest way because as far as i know, no extra code is needed on the arduino side....for wifi there would be but nothing drastic. The Processing code itself can be used to create an android app so with the necessary mods for the bluetooth, you should have the system running quickly.
Nman1203 years ago
in your processing code download there is an error that I found:

in the text for over the arrow buttons:
text(s, 30, 100, 40, 20);

the end 20 needs to be 30 or else only the blue shows up. great program though
nazdreg2007 (author)  Nman1203 years ago
Hiya,
I not noticed any probs with it......but i'll have a look over the next few days and get back to you :-)
32teeth3 years ago
as for your pin mapping to the PWM pins.
i would recommend using 9,10,11 since they are next to each other.
just a thought

good stuff
nazdreg2007 (author)  32teeth3 years ago
Thanks.
Your right.....I never thought of that. I started at 3 and went for the next PWM pins.
RPKH3 years ago
Is there a specific reason why you have chosen to send the values for r,g,b over the serial instead of using the arduino library in processing?
nazdreg2007 (author)  RPKH3 years ago
Yeah, the processing library could have made things much easier....I'll update with some new code to use it..
nazdreg2007 (author)  RPKH3 years ago
There is no specific reason for sending the data this way. It never occurred with me to use that library. Might look into it.
I am getting an error in processing
saying it cannot load this font AngsanaNew-25.vlw

then this line is highlighted
font = loadFont("AngsanaNew-25.vlw"); // import the font(tools->create)

nazdreg2007 (author)  beverageexpert3 years ago
ok, first of all, click on tools then create font. this will open up another window. in this window, select the font and size.tke note of the filename(ctrl +c) and click ok. now paste the file name into theloadFont("
the answer is in your comment, go to tools, then create font, then choose AngsanaNew and make it size 25 then click "ok" and try to run the code again
tigerbomb83 years ago
i would vote but i can not see this in the contest page
nazdreg2007 (author)  tigerbomb83 years ago
Thanks!! It's still waiting for approval for entry so maybe if you try later on today or tomorrow, it should be there. Thanks again!!
cool and why did you put thins in the micro controllers section there is an arduino section
nazdreg2007 (author)  tigerbomb83 years ago
To be honest, i forgot cause i entered this in the micro controller contest, so thats what i was thinking, not Adruino.
you can move it