Hello everyone!
Today I will be explaining you about interfacing the 4x4 matrix Keypad with Arduino and using it to control three common anode RGB LEDs. You can also use the common cathode RGB LEDs for this project.
Hardware components used in this project
- Arduino Nano
- USB Type A to mini B cable (for Arduino Nano)
- Solderless Breadboard - Full
- Matrix Keypad - 4x4
- RGB LEDs (x3) - Common Anode (Common cathode is better to use)
- Resistors (x9) - 220Ω
- Male-to-Male Jumper wires (x21)
Setup
Your setup must look somewhat similar to those shown in the pictures above.
Connections
4x4 Matrix Keypad
- R1 - D9
- R2 - D8
- R3 - D7
- R4 - D6
- C1 - D5
- C2 - D4
- C3 - D3
- C4 - D2
RGB LEDs - Common Anode
- (+) - 5V
- Red_01 - D1
- Green_01 - D10
- Blue_01 - D11
- Red_02 - D12
- Green_02 - A0
- Blue_02 - A1
- Red_03 - A2
- Green_03 - A3
- Blue_03 - A4
How a 4x4 Matrix Keypad works
- Initially the columns are HIGH and the rows are LOW when the buttons are not pressed.
- When a button is pressed, the current from the HIGH column pin flows to the LOW row pin and this makes the column pin get pulled to LOW state.
- Your Arduino microcontroller sets each row pin HIGH to detect which row pin makes the column pin return to HIGH state. By doing this, the Arduino microcontroller detects the row in which the button was pressed.
Coding
Before starting, check with your connections. For this you will be needing the 'HelloKeypad' sketch from the examples folder. You have to make some changes because this sketch is designed for the 4x3 matrix keypad. I have indicated the changes in the image below.
Now let's move on to the coding for this project.
Keys and their functions
- 1 - Turn on/off first RGB LED
- 2 - Turn on/off second RGB LED
- 3 - Turn on/off third RGB LED
- A - Turn on/off Red pin
- B - Turn on/off Green pin
- C - Turn on/off Blue pin
- 0 - Switch off all three LEDs
Let me explain you how this works. If I press '1' and press 'A', the first RGB LED will turn Red. If I press 'B' afterwards, the RGB LED will turn orange due to the combination of both Red and Green lights. If I press 'B' again, the Green LED will turn off. Watch the YouTube video in the last section of this page to see how this works. If you have any questions, please feel free to comment below.
Your sketch is going to have the same lines of code from the example sketch shown in the picture above, and you are going to program the required buttons of the keypad to debounce. Declare all the LED pins as OUTPUT within void setup( ) function, by using pinMode( ) function. As I am using common anode RGB LEDs, I've initially set the pins of the LEDs HIGH.
If anyone has any questions with the coding, please feel free to comment below or send me an email at arduinoprojectsbyr@gmail.com.
Final Look
If anyone has any questions, or suggestions, about this project, please feel free to comment below or send me an email at arduinoprojectsbyr@gmail.com.
Comments
Post a Comment