Skip to main content

56. Using 4x4 matrix Keypad with Arduino to control RGB LEDs

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.
To interface the 4x4 Matrix keypad with your Arduino microcontroller, you will be needing the 'Keypad' library by Mark Stanley and Alexander Brevig.

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

Popular posts from this blog

77. Controlling Micro servo Robotic Arm with MPU-6050 sensor module

 Hey everyone! I am back with an interesting project. Today, you will be learning about controlling a Simple 2 axis Robotic Arm, made from Micro servo motors, with an MPU-6050 sensor module. Please feel free to visit my previous blog post to learn about the MPU-6050 sensor module. Hardware components used in this project Arduino Mega 2560 - You could use any other Arduino microcontroller, but make sure you use an external power supply. USB Type A/B cable (for Arduino Mega 2560) MPU-6050 sensor module SG-90 Tower Pro Micro Servo motor (x2) Male-to-Male Jumper wires (x6) Male-to-Female Jumper wires (x5) Setup Schematic MPU-6050 sensor module VCC - 3.3V GND - Ground SDA - D20 (Arduino Mega 2560), A4 (Arduino Uno and Nano) SCL - D21 (Arduino Mega 2560), A5 (Arduino Uno and Nano) INT - D2 Micro servo motor (Roll) S (Yellow/ Orange) - D9 + (Red) - 5V - (Black/ Brown) - GND  Micro servo motor (Pitch) S (Yellow/ Orange) - D10 + (Red) - 5V - (Black/ Brown) - GND Coding As I alread...

57. Using Blynk with Arduino Uno and ESP8266 WiFi module

Hello Everyone! Today I am going to explain you how to connect your Arduino Uno with Blynk using the ESP8266 WiFi module. I have already demonstrated you about connecting your Arduino Uno with Blynk app using the Ethernet Shield W5100 and this will be the second version of that project .  Hardware components used in this project Arduino Uno ESP-01 ESP8266 WiFi module USB to TTL converter Solderless Breadboard - Half+ Breadboard power supply module - 3.3V/ 5V RGB LEDs (x3) - Common Anode Resistors (x3) - 220 Ω Relay module - 5V single channel Male-to-Male Jumper wires Female-to-Male Jumper wires Setup Your setup must look somewhat similar to that shown in the images above. Connections ESP8266 ESP-01 wifi module GND - Ground GPIO0- Not connected GPIO2 - Not connected RXD - D2 TXD - D3 CH_PD - VCC - 3.3V RESET - Not connected VCC - 3.3V  *Note: Do not connect your ESP8266 ESP-01 wifi module with 5V. RGB LED - Common Anode Anode -...

73. Limit the crowd to prevent the spread of COVID-19

Hey everyone! Today I am going to explain you about another interesting COVID-19 Arduino project. This is an automatic, effective and cheap method to limit the crowd in public places - such as shopping malls, supermarkets, offices, etc. - and public transport vehicles, such as buses and trains. The World Health Organization, WHO, has advised people to stay away from crowded places to protect themselves from the spread of Coronavirus disease. Even though people practice social distancing, it may not be effective when they are present in crowded places. I came up with this idea after I read the WHO guidelines about preventing the spread of COVID-19. Aim/ Objective This project is an automatic, cheap and effective way of limiting the crowd in public places and vehicles. Using a human to limit the number of people in a particular place would not be as effective as using an automatic system, due to lack of staff members in some areas. This prototype can be used in real-life situations by ...