2

I'm attempting what seemed to be a rather simple problem at first glance, but due to my limited knowledge of Arduino workings I need some help. I'm trying to use button outputs from a PS360+ arcade controller. Each of the button terminals output +5V, and is meant to be connected through a button to the grounds on the PS360+.
What I want to do is have an Arduino somewhere in between the button output and ground on the PS360+, to control and animate LEDs. What I've done so far is connect the VCC of the PS360+ to the Arduino's VIN and the ground of the Arduino to the PS360+'s button ground, which powers the Arduino. I then have a button output from the PS360+ going into the button, and the button's ground is connected to an Arduino pin. That Arduino pin's mode is set to INPUT. I then have another pin with an LED which is set to the value of the input pin. For some reason, the Arduino seems to get random input from the button(Though it does seem to react somewhat to buttons presses), and the PS360+ does not recognize the button press. Setting the input pin to pullup mode has even less result, and never reads low.
Anybody got any ideas? Here's my current circuit diagram. 1P is a +5V output. I think that it's an internal pull-up pin like the Arduino's, but I am not certain. Circuit Diagram

And my current code:

int buttonlisten = 22;
int led = 53;
int val = 0;

void setup() {                
  pinMode(led, OUTPUT);
  pinMode(buttonlisten, INPUT);
}

void loop() {
  val = digitalRead(buttonlisten);
  digitalWrite(led, val);
}

Thanks!

  • Are the two grounds on the board connected internally? – Ignacio Vazquez-Abrams Jul 11 '15 at 6:36
  • Yes, All grounds on the PS360+ board are connected internally. – CaffeinePowered Jul 11 '15 at 7:06
  • You should connect the vcc of the PS360 directly to 5v on the arduino. Not to Vin. Vin will make the voltage go through the voltage regulator first. Supplying a 5v regulator with 5v will result in a voltage lower than 5 volt. Putting 5volt on a input pin while the atmega runs at a lower voltage could damage the chip. – Gerben Jul 11 '15 at 9:52
  • Oh, scary. I will definitely do that. Thanks for the advice. – CaffeinePowered Jul 11 '15 at 16:17
0

I think the idea of putting the arduino between the button and ground is the problem here — 1P appears to be the input for the controller button, and you can't expect to take an 'input' from the button on both pins at once.

Try connecting one lead of the button back to its ground, and the other to 1P (as it would be originally I assume). Then solder/connect another lead from the button's non-grounded pin to an arduino pin designated as INPUT_PULLUP.

This way you have two pulled-up input pins connected to the same button pin, which are both pulled low (since Arduino & PS360+ share GND) when the button is pressed.

  • Perfect! This works quite well, and does not seem to interrupt any inputs on either board. Thanks a lot! – CaffeinePowered Jul 11 '15 at 7:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.