📖 Scenario: You have a small robot controlled by an Arduino board. You want to send simple commands from your phone using Bluetooth to make the robot move.
🎯 Goal: Build a program that receives commands over Bluetooth and prints the received command to the Serial Monitor.
📋 What You'll Learn
Create a Bluetooth serial connection using SoftwareSerial on pins 10 and 11
Set up the serial communication at 9600 baud rate
Read incoming Bluetooth data as characters
Store the received command in a variable called command
Print the received command to the Serial Monitor
💡 Why This Matters
🌍 Real World
Bluetooth communication is common in remote control devices, home automation, and wireless sensors.
💼 Career
Understanding how to receive and process Bluetooth commands is useful for embedded systems and IoT development jobs.
Progress0 / 4 steps
1
Set up Bluetooth serial communication
Create a SoftwareSerial object called bluetooth using pins 10 for RX and 11 for TX.
Arduino
Hint
Use SoftwareSerial bluetooth(10, 11); to create the Bluetooth serial object.
2
Initialize serial communications
In the setup() function, start the hardware serial communication with Serial.begin(9600); and the Bluetooth serial communication with bluetooth.begin(9600);.
Arduino
Hint
Use Serial.begin(9600); and bluetooth.begin(9600); inside setup().
3
Read incoming Bluetooth commands
In the loop() function, check if bluetooth.available() is greater than zero. If yes, read one character from bluetooth.read() and store it in a variable called command of type char.
Arduino
Hint
Use if (bluetooth.available() > 0) and inside it, char command = bluetooth.read();.
4
Print the received command
Inside the if block in loop(), add a line to print the command variable to the Serial Monitor using Serial.print(command);.
Arduino
Hint
Use Serial.print(command); to show the received character.
Practice
(1/5)
1. What does the available() function do when receiving Bluetooth commands on Arduino?
easy
A. It sends data to the Bluetooth device.
B. It checks if there is data ready to be read from the Bluetooth module.
C. It resets the Bluetooth connection.
D. It closes the Bluetooth communication.
Solution
Step 1: Understand the role of available()
The available() function returns the number of bytes available to read from the Bluetooth serial buffer.
Step 2: Identify its use in receiving commands
It is used to check if any data has arrived and is ready to be read, so the program knows when to read incoming commands.
Final Answer:
It checks if there is data ready to be read from the Bluetooth module. -> Option B
Quick Check:
available() checks data presence [OK]
Hint: Remember: available() means data is ready to read [OK]
Common Mistakes:
Thinking available() sends data instead of checking
Confusing available() with read()
Assuming available() resets connection
2. Which of the following is the correct way to read a single character from Bluetooth in Arduino?
easy
A. char command = Bluetooth.read();
B. char command = Bluetooth.available();
C. char command = Bluetooth.write();
D. char command = Bluetooth.begin();
Solution
Step 1: Identify the function to read data
The read() function reads one byte (character) from the Bluetooth serial buffer.
Step 2: Confirm correct syntax
Assigning Bluetooth.read() to a char variable correctly stores the incoming character.
Final Answer:
char command = Bluetooth.read(); -> Option A
Quick Check:
Use read() to get one char [OK]
Hint: Use read() to get data, not available() or write() [OK]
Common Mistakes:
Using available() to read data instead of read()
Using write() which sends data, not reads
Calling begin() which initializes, not reads
3. What will be printed on the Serial Monitor when the following Arduino code receives the character 'L' over Bluetooth?
A. Bluetooth.read() should be Bluetooth.readChar().
B. The if condition should check for Bluetooth.read() instead.
C. Serial.println() cannot print characters.
D. Bluetooth.available should be called as a function with parentheses.
Solution
Step 1: Check usage of available()
The code uses Bluetooth.available without parentheses, but it is a function and must be called as Bluetooth.available().
Step 2: Verify other parts
Bluetooth.read() is correct to read a char, and Serial.println() can print characters, so no errors there.
Final Answer:
Bluetooth.available should be called as a function with parentheses. -> Option D
Quick Check:
available() needs parentheses [OK]
Hint: Remember functions need () to work [OK]
Common Mistakes:
Forgetting parentheses on available()
Thinking read() is readChar()
Believing Serial.println() can't print chars
5. You want your Arduino to turn an LED on when it receives the command '1' and off when it receives '0' over Bluetooth. Which code snippet correctly implements this behavior?
if (Bluetooth.available()) {
char cmd = Bluetooth.read();
switch (cmd) {
case '1':
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
break;
case '0':
digitalWrite(LED_PIN, LOW);
Serial.println("LED OFF");
break;
default:
Serial.println("Invalid command");
}
}
hard
A. digitalWrite cannot be used with Bluetooth commands.
B. The code should use if-else instead of switch for Bluetooth commands.
C. This code correctly reads commands and controls the LED accordingly.
D. Bluetooth.read() returns an integer, so char cmd is wrong.
Solution
Step 1: Analyze command reading and control
The code reads a character from Bluetooth and uses a switch to check if it is '1' or '0'.
Step 2: Verify LED control and feedback
It sets the LED pin HIGH or LOW accordingly and prints the status, which matches the requirement.
Final Answer:
This code correctly reads commands and controls the LED accordingly. -> Option C
Quick Check:
Switch-case handles commands and controls LED [OK]
Hint: Use switch-case to handle multiple commands cleanly [OK]
Common Mistakes:
Thinking if-else is required instead of switch
Believing digitalWrite can't be used with Bluetooth input
Confusing data types returned by Bluetooth.read()
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.