RGB Colour Mixer with DS touch screen

How did you go about connecting the DS touchscreen to wires you could use in the breadboard? i have one (well two actually as i assume i will mess up the connection on at least one!) and would love any tips for how you went about it. My current plan is a to cut between the wires using a modelling knife.

Does anyone know of a way to get rid of the plastic overlay thats on the wires then it would be easy to connect wires at the base of the wires.

I just did it carefully with a sharp pair of scissors and then laid 4 wires on the connectons and soldered them up with some heatshrink round it to stop the joint flexing so much... I didn't remove any plastic or anything...

Anternatively, if you like surface mount soldering you can buy the touch screen connector from sparkfun... I presume that it works with both the DS and DS lite touch screens (it looks like it should)

Hope this helps,

Mowcius

Still no video of this in action? :frowning: I've added one to my Wish list (2.99 free shipping on eBay, can't beat that!), but I'd love to see how yours looks while functioning :).

Oh, sorry. I dismantled it to use some of the parts as I still only have one arduino! If I remember then I will still try to a get a video done eventually. The LEDs on the picture were not evenly matched so it didn't mix very well and I have not got round to playing with the i2c commands for my blinkm maxm yet...

Mowcius

Alright, well thanks for the update anyways :P!

I know it says in the code where to connect the pins from the screen, but could you please write it out? For some reason I'm having trouble understanding it. A picture would be useful if you have one :P.

NEVERMIND. I believe I get it now.. :smiley:

Ok, cool. Just say if you need any help with anything else.

Mowcius

Just a quick comment to anyone still looking at this. In my first posted code there are some weird numbers to get the values right for PWMing the LEDs, if you are going to do something similar then you want to 'map' the values from the touch screen to get them within the right range for the PWM.

Mowcius

if you are going to do something similar then you want to 'map' the values from the touch screen to get them within the right range for the PWM.

No idea what that means (I'm still a noob :P) but alrighty! haha :smiley:

No idea what that means (I'm still a noob) but alrighty! haha

Well I did some rubbish like this:

analogWrite(LEDB, touchX/4 -18)

to get the values correct for the PWM (altering the brightness of the LEDs)

I should have used the map function:
http://arduino.cc/en/Reference/Map
to change the values from the touch screen into values from 0-255 for the PWM.

It is just a much better and more accurate way to do it...

Mowcius

Oh so instead of using the 0-1024 produced by analogRead(), you use Map to change them to 0-255 used for PWM?

Yeah.
Well you don't get quite the full range from analog reading on the touch screen, you normally get close to it but not quite... So the map function sets it right :smiley:

You don't get 0-1024 on analog read, you get 0-1023...

So basically if you wanted 1-1024 then you would need to map it still (or add 1!)

Mowcius

Cool. Thanks for the advice :). Seems like that'd be simpler and faster than what you did, so why didn't you just do it that way in the first place? :P!

I was a noob! We all were originally... If I could go back and change that post then I would. I have learnt a lot in half a year!

Mowcius

Yeah no worries I'm still a big ol' noob. I would've done it like that too if I tried. I didn't know what Map was until you just told me ;).

Now I'm planning to do something similar with multiple RGB LEDS (about 5-6) the big question is how does one connect multiple RGB LEDs - common anode types to the arduino? all ideas welcome...

To connect common anode RGB LEDs you connect the anode to + (5v or 3.3v with resistor if necessary), then you use PWM on the cathodes. The ATmega chip will sink the current but it will be reversed.
255 is normally the highest brighntess but with this config. it will be the lowest as the pin is low for the shortest amount of time.

For multiple LEDs you will still want to use transistors on the cathodes as the ATmega chip cannot sink much current.

Mowcius

That's ace.

When I read the subject line I thought you meant using a DS touch screen while it was still attached to a DS. Arduino control via a DS would be cool.

I've just made an application that will make using the NDS touch screen with arduino a lot easier. It has a rectangle the exact same size as an NDS touch screen. Basicly, you draw a rectangle using the mouse onto this area, and it creates some arduino code that will execute when you press the touchscreen in this area. You can also save the design of the touchscreen, so you can print it off glue/stick it behind the screen when your using it. The only thing is, I'm not sure if it works because I'm still waiting for a breakout board, but in theory it works, I've used some of the code written here and just made the software work out the coordinates relative to the screen.

You can download it at: Google Code Archive - Long-term storage for Google Code Project Hosting.