can arduino control other systems buttons?

Hi, I’m making a rc robot, using 2 arduino mega 2560 and wireless modules and i want this robot to be able to make some noise even play some music. That is why i bought this board.

and there are some pictures of it in the attachments.

As you can see this board has 5 buttons and they work as a metal plate short circuits 2 terminal when it pressed.

what i m trying to do is to integrate this board and necessary parts (power source for the board, a powered speaker, etc.) to my robot and create an other 5 buttons in my remote controller and being able to use this board in full function. Is there a possible way to do this? thank you for your help. and sorry for my bad english.

If I am understanding this correctly :

The US$2.99 DX board is a manually controlled MP3 player.
You want to integrate that into a robot and have it controlled by an Arduino.

It MIGHT be possible. I think you might need to buy 2 or 3 of the board’s for destructive testing.
I would think the first step would be to desolder one of the buttons and see if you can get to the traces on the board.
If you can, then soldering in some wires and having an Arduino write HIGH to simulate a button press might do it.

Require some messing around and tinkering.

Cheap solution if it worked, though. Intriguing.

I would think the first step would be to desolder one of the buttons and see if you can get to the traces on the board.

it is not very clear but if you can look at my 3rd attachment(IMG_20140404_175151), there you can see those plates that use to activate buttons are not even soldered so if i remove the sticker they would be removed.

so are you suggesting to finding the positive pin of the button and setting it as high in the arduino could work?

If i understand correctly let me try and come back here with the results.

I'm suggesting that my guess is that all the button does is close the circuit when pressed- to the module it is just a HIGH.

I'm guessing the traces coming into the button are essentially just Vcc and Gnd. If you can figure out which of the traces is which and solder some wires on, I thinking maybe Arduino can write HIGH to mimic a button and fool the module. Or maybe you take the wires into a signal level transistor and have Arduino control that- it's an electronic switch.

Just ran across this post in a search for the schematic for this board. I thought that perhaps it was closing each button to ground, but it's more complex than that. I used a multimeter to try to figure out what's going on. Here's what I found so far. There are 4 distinct circuits that connect the 5 button centers and 5 rings. If you label the buttons: NX = next file PV = previous file VU = volume up VD = volume down PP = play/pause IR = inner ring of a button (really a dot) OR = outer ring

Then they seem to be connected as follows: Circuit A connects PV-IR, PP-IR, and VD-IR Circuit B connects PV-OR and NX-OR Circuit C connects VD-OR and VU-IR Circuit D connects VU-OR, NX-IR, and PP-OR

Circuit C seems to be a pull-up to Vcc Circuits A, B, and D have pulses or pulse trains with a frequency of about 100Hz

If you look at them as a matrix, then pressing each button would connect the following circuits: PP: A->D VU: C->D VD: A->C NX: B->D PV: A->B

I'm interested in controlling this with a Nano or other micro too.

Minor update: I put channels B and D on a scope and found pulses with about a 100Hz interval between pulse trains. So it appears that the controller on the board is doing some kind of scanning.

I have reverse-engineered the schematic on one of those. The buttons is multiplexed with other stuff, so controlling them from Arduino directly is a no-go.

You need to wire an opto-coupler across each contact, and control this from the Arduino.

// Per.

I'm able to do everything except play/pause by controlling the 4 circuits I described.

Sending 100mS pulses through a 1K resistor into circuit D turns the volume up. Sending the same pulses into circuit A turns the volume down. Pulling circuit A low for 100mS goes to the previous track. Pulling circuit D low for 100mS goes to the next track.

So far I have not wrecked the chip, but if you play with this be careful about driving the lines with the Arduino, hence the 1K resistor when pulsing lines high.

If it’s of any help, i’ve made a schematic of the one i have :slight_smile:

// Per.

The primitive way to do it, is to simply mount small 5V reed relays instead of the contact plates. Then use the output from the Arduino to activate the relays.

(Reed relays are inductive loads, remember the diode)

Thanks for posting this. Your schematic is very helpful. I've been able to get it to do everything I need (except pause and previous track) with just 2 reed relays. The trick is to short volume + switch which gets you 100% volume at power up then connect two reed relays to switch the following:

  1. Volume -
  2. Next

With these you can do the following:

  1. Ramp the volume down to 0%
  2. Skip to next track. Can be used to repeat track if you know the track count just cycle through all tracks until you get back the the one you want to hear again.
  3. Use combination of 1 and 2 to ramp down one track before playing another or to simulate Stop

Although the opto-Isolator suggestion would work, you would need to know the polarity for each button to connect it to the opto. Certainly doable but I think the reed relays are a no-brainer because they are going to work no matter how you connect them.