Voice Controlled LEDs using Arduino and Bluetooth

Controlling LEDs with voice command seems to be a difficult task, but it’s easy and you can quickly build it. We just need an Arduino UNO to serially communicate with HC-06 Bluetooth module and a smartphone to send voice command to Bluetooth module HC-06. For receiving voice command we are using “Arduino Bluetooth Voice Controller” android app which you can download from play store (link is given below). 

Material Required

  • Arduino UNO
  • HC-06 Bluetooth Module
  • LEDs (Red, and Green)
  • Resistor 220 ohm (2 nos.)
  • Arduino Bluetooth Voice Controller ( Download from playstore)
  • Breadboard
  • Connecting wires

HC-06 Bluetooth Module:

Bluetooth can operate in the following two modes:

  1. Command Mode
  2. Operating Mode

In Command Mode we will be able to configure the Bluetooth properties like the name of the Bluetooth signal, its password, the operating baud rate etc. The Operating Mode is the one in which we will be able to send and receive data between the PIC Microcontroller and the Bluetooth module. Hence in this tutorial we will be toying only with the Operating Mode. The Command mode will be left to the default settings. The Device name will be HC-05 (I am using HC-06) and the password will be 0000 or 1234 and most importantly the default baud rate for all Bluetooth modules will be 9600.

The module works on 5V supply and the signal pins operate on 3.3V, hence a 3.3V regulator is present in the module itself. Hence we need not worry about it. Out of the six pins only four will be used in the Operating mode. The pin connection table is shown below.

Circuit Diagram

Circuit diagram for this Voice Controlled Lights is given below, while uploading the code in the Arduino UNO disconnect the Rx and Tx pins and connect again after the code is uploaded.

Code and Explanation

The complete Arduino code for Voice controlled LEDs is given at the end. Here we are explaining few parts of code.

Here, in the below code we are defining the pins for Rx and Tx.

int TxD = 11;

int RxD = 10;

Now, set pin 2nd and 3rd of the Arduino as output.

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

In void loop function, Arduino will be checking the incoming values all the time and controls the LEDs as per the voice command. Arduino will turn on or off the LED according to the given Voice command. We are saving all the received command in variable “Value”

If the value is “all LED turn on” then both the LEDs turns ON, like this we have coded other voice commands for turning on or off the individual LED. Check the complete working and demonstration video later in this article.

if (bluetooth.available())


    value = bluetooth.readString();

    if (value == “all LED turn on”){

    digitalWrite(2, HIGH);

    digitalWrite(3, HIGH);


    if (value == “all LED turn off”){

      digitalWrite(2, LOW);

      digitalWrite(3, LOW);     


    if (value == “turn on Red LED”){

    digitalWrite(2, HIGH);


    if (value == “turn on green LED”){

      digitalWrite(3, HIGH);     



    if (value == “turn off red LED”){

    digitalWrite(2, LOW);


    if (value == “turn off green LED”){

      digitalWrite(3, LOW);     



Working Procedure:

Step 1:- Connect all components as per the circuit diagram; disconnect Rx and Tx pins while uploading the code.

Step 2:- Download the app called “Arduino Bluetooth Voice Controller” which is free on play store.

Step 3:- Open the app and follow the image below, like first click on “connect to Bluetooth device” and select your Bluetooth module and check if it is connected or not. Then click on the mic icon to speak and send the voice command to the HC-06 module.

Note: when you are connecting your Bluetooth module for the first time with your smartphone it will ask for the passcode, use 0000 or 1234.

Step 4:- After setting up all the things, you just have to send the voice command by using the app which is further sent to Bluetooth module HC-06 and the HC-06 serially communicate with the Arduino UNO and then the task is performed as per the command. The below shows the command and the action to be performed by the command:

Total Page Visits: 437 - Today Page Visits: 1