Using a 2x2 button pad for temperature controlled oven

Background Info

I’m currently using an Arduino R3 with a temperature sensor to accurately control the temperature of an oven. Basically the temperature sensor senses the oven’s current temperature and sends it to the Arduino. I use the PID function to calculate what voltage to input into the oven to reach the set temperature.

Right now, if I want to change the “set temperature” I have to re-connect the arduino to my computer and re-upload my code. I’m planning to attach an LCD display and a 2x2 button pad to control the set temperature (and maybe some other stuff in the future). Using the LCD seems straight forward from what I’ve read.

Problem I have

I’m not sure how to actually connect the 2x2 button pad to the arduino based on the schematic provided. I think the 2x2 button pad was designed for RGB LEDs, but I only need to connect one regular LED to each button and read the state of the button (either on/off 5V/0V).

Based on the description given on the sparkfun comments section, I know I need to connect the switch pin from JP1 to to Vcc and the switch pins from JP5 - 8 to digital I/O pins on the arduino (with pull-up resistors). And all the GND pins should be connected to ground. After this I’m not really sure what do to in terms of the electronics.

Any help would be appreciated. Thanks.

Edit: I’ve gone through the other posts in this forum using the 2x2 Breakout PCB Button Pad, but still am having trouble on this part.



I did a few search through my fav search engine,

Arduino LCD Menu
Arduino Keypad LCD shield

both this link should point you to the right direction. however if you still stuck, just bump this tread again

I read the schematic as being like this. You will need external resistors to the left and below the blue boxes (representing the card connections).
You supply 5V, and look for a High at the S1-2-3-4 inputs on arduino.
When you see a high, you put out whatever color combo you want on the RGB lines and bring that common cathode low.
If you want the LEDs to stay on, then you will need to perform multiplexing in your code, driving the anodes and 1 cathode, then the anodes and the next cathode, etc for all 4 LEDs. Leave each one on for 5mS so they don’t appear flickery.

Thanks CrossRoads, that helps but I'm still a little confused (sorry I'm new to this).

I think I'll simplify the problem from myself and work up from there. Suppose I don't want any LEDs at all. All I want to do is read the state of each button (as high = pressed, low = unpressed). Looking at the schematic, would it make sense to

  1. connect the switch pins from JP5, JP6, JP7, JP8 to I/O pins on the arduino (whose state the arduino will read) with pull down resistors.
  2. connect switch pin from JP1 to 5 V.
  3. connect the ground pins from JP5, JP6, JP7, JP8 to ground.

And then in my code I will just poll for the state of the I/O pins connected to JP5 - JP8.

yes thats basically it

I'm testing it out with one button right now and it doesn't seem to be working.

I've connected the switch pin from JP1 to constant 5V. The 1-LED-GND1 pin on JP5 to ground with a pull down resistor. The 2-SWT-GND1 pin on JP5 to a digital pin, and I'm reading it's output.

When I output the state of the button (1 or 0) to the serial monitor I see random 0's and 1's, regardless of whether the button is pressed. I think something is wrong with the wiring I connected.