1

I am working with an Arduino nano, and ic2 128x32 OLED display and a 1x4 membrane keypad. Problem is that only one of the 4 pins are detecting the button press. it's not the Arduino, I already was able to reproduce the same issue on another one. the keypad is also working fine, as I have tested it. (edit now only pin 9 is working)

#define b1 6
#define b2 7
#define b3 8
#define b4 9

// in setup

pinMode(b1, INPUT_PULLUP);
pinMode(b2, INPUT_PULLUP);
pinMode(b3, INPUT_PULLUP);
pinMode(b4, INPUT_PULLUP);

// in loop

int b1S = digitalRead(b1);
  int b2S = digitalRead(b2);
  int b3S = digitalRead(b3);
  int b4S = digitalRead(b4);

  if(!b1S){
    Serial.println("Button 1");
    }

  if(!b2S){
    Serial.println("Button 2");
    }

  if(!b3S){
    Serial.println("Button 3");
    }

  if(!b4S){
    Serial.println("Button 4");
    }

Please help! Thanks

5
  • How is everything connected? Have you measured, if there is 5V on the specified pins, when you don't press a button? Also measure without the keypad
    – chrisl
    Aug 26, 2019 at 13:58
  • to answer how its connected, each pin defined in the code is connected to one of the inputs of the buttons on the keypad with it all connected to a common ground
    – Avi Baruch
    Aug 26, 2019 at 14:05
  • and b2 and b4 are giving around 4v and the other 2 are giving readings somewhere in the millivolts, that's not right, right?
    – Avi Baruch
    Aug 26, 2019 at 14:08
  • I'd suggest backing up and testing each part separately. Get a breadboard and a momentary switch. Connect the switch through to ground on one pin at a time. See if a test sketch is able to detect the change in state for each pin when it's configured as INPUT_PULLUP. If not, try using INPUT, and attaching the pin to +5V through a 10kΩ resistor. Also use an ohm-meter to verify that your membrane switches are open unless pressed, and connect to ground when they are pressed.
    – Duncan C
    Aug 26, 2019 at 14:48
  • 1
    Have you measured these voltages with connected keypad? If yes, try without the keypad - just the bare arduino. If the voltages are still that low, the Arduino is probably broken.
    – chrisl
    Aug 26, 2019 at 15:14

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.