

The BUTTONPAD-2X2 is a compact 2x2 matrix button pad designed for user input in electronic projects. It features four tactile buttons arranged in a grid, making it ideal for applications requiring simple and intuitive control interfaces. The matrix design allows for efficient wiring and detection of multiple button presses, making it suitable for projects like control panels, gaming devices, and menu navigation systems.








The BUTTONPAD-2X2 is a passive component that requires external circuitry to detect button presses. Below are its key specifications:
| Parameter | Value |
|---|---|
| Number of Buttons | 4 |
| Button Layout | 2x2 matrix |
| Operating Voltage | 3.3V to 5V |
| Button Type | Tactile, momentary |
| Contact Resistance | < 100 mΩ |
| Dimensions | 1.5" x 1.5" (38mm x 38mm) |
| Pin Count | 4 pins (Row1, Row2, Col1, Col2) |
The BUTTONPAD-2X2 uses a 4-pin interface to connect the rows and columns of the button matrix. The pinout is as follows:
| Pin | Name | Description |
|---|---|---|
| 1 | Row1 | Connects to the first row of the button matrix |
| 2 | Row2 | Connects to the second row of the button matrix |
| 3 | Col1 | Connects to the first column of the button matrix |
| 4 | Col2 | Connects to the second column of the button matrix |
The BUTTONPAD-2X2 operates as a matrix, where each button press connects a specific row to a specific column. To detect button presses:
Row1, Row2, Col1, and Col2 pins to a microcontroller's GPIO pins.Below is an example of how to connect and program the BUTTONPAD-2X2 with an Arduino UNO:
Row1 to Arduino pin 2.Row2 to Arduino pin 3.Col1 to Arduino pin 4.Col2 to Arduino pin 5.// BUTTONPAD-2X2 Example Code for Arduino UNO
// This code scans the 2x2 button matrix and prints the button states to the Serial Monitor.
const int rows[] = {2, 3}; // Row pins connected to Arduino
const int cols[] = {4, 5}; // Column pins connected to Arduino
bool buttonStates[2][2]; // Array to store button states
void setup() {
// Initialize row pins as outputs
for (int i = 0; i < 2; i++) {
pinMode(rows[i], OUTPUT);
digitalWrite(rows[i], LOW); // Set rows LOW initially
}
// Initialize column pins as inputs with pull-down resistors
for (int i = 0; i < 2; i++) {
pinMode(cols[i], INPUT);
}
Serial.begin(9600); // Start Serial communication
}
void loop() {
// Scan the button matrix
for (int row = 0; row < 2; row++) {
// Set the current row HIGH
digitalWrite(rows[row], HIGH);
// Read the column states
for (int col = 0; col < 2; col++) {
buttonStates[row][col] = digitalRead(cols[col]);
}
// Set the current row LOW again
digitalWrite(rows[row], LOW);
}
// Print button states to Serial Monitor
Serial.println("Button States:");
for (int row = 0; row < 2; row++) {
for (int col = 0; col < 2; col++) {
Serial.print(buttonStates[row][col]);
Serial.print(" ");
}
Serial.println();
}
Serial.println();
delay(200); // Small delay for stability
}
No Button Press Detected
Multiple Buttons Detected When Pressing One
Unstable or Erratic Readings
Q: Can I use the BUTTONPAD-2X2 with a Raspberry Pi?
A: Yes, the BUTTONPAD-2X2 can be used with any microcontroller or single-board computer that supports GPIO pins. Ensure proper voltage levels and use pull-down resistors.
Q: How do I expand the matrix for more buttons?
A: The BUTTONPAD-2X2 is fixed at 2x2, but you can combine multiple units or use a larger matrix keypad for more buttons.
Q: Can I use this button pad for analog input?
A: No, the BUTTONPAD-2X2 is designed for digital input only. Each button acts as a simple switch.
By following this documentation, you can effectively integrate the BUTTONPAD-2X2 into your projects and troubleshoot any issues that arise.