📖 Scenario: Imagine you have a small robot car that you want to move forward, backward, and turn. To do this, you need to control the motors that make the wheels spin. Motor control helps you tell the motors exactly how fast and in which direction to move.
🎯 Goal: You will create a simple Arduino program that sets up motor speed and direction variables, then uses them to control a motor. This will show why motor control is important to make the motor move as you want.
📋 What You'll Learn
Create variables to hold motor speed and direction
Set a speed limit value
Use the speed and direction variables to control the motor
Print the motor speed and direction to the Serial Monitor
💡 Why This Matters
🌍 Real World
Motor control is needed in robots, drones, and machines to move parts exactly how we want.
💼 Career
Understanding motor control is important for jobs in robotics, automation, and embedded systems programming.
Progress0 / 4 steps
1
Set up motor speed and direction variables
Create an int variable called motorSpeed and set it to 0. Create another int variable called motorDirection and set it to 1 (where 1 means forward).
Arduino
Hint
Use int to create whole number variables for speed and direction.
2
Add a speed limit variable
Create an int variable called speedLimit and set it to 255 (maximum motor speed).
Arduino
Hint
The speed limit is the highest speed the motor can run, usually 255 for Arduino PWM.
3
Set motor speed and direction using variables
Set motorSpeed to 150 and motorDirection to -1 (where -1 means backward).
Arduino
Hint
Assign new values to the variables to change motor behavior.
4
Print motor speed and direction
In the setup() function, start Serial communication at 9600 baud. Then print motorSpeed and motorDirection values to the Serial Monitor.
Arduino
Hint
Use Serial.print() and Serial.println() to show values on the Serial Monitor.
Practice
(1/5)
1. Why is motor control important in Arduino projects?
easy
A. It automatically fixes motor hardware issues.
B. It makes the motor run only at full speed.
C. It prevents the motor from ever stopping.
D. It allows you to control the speed and direction of the motor.
Solution
Step 1: Understand motor control purpose
Motor control lets you decide how fast and which way a motor spins.
Step 2: Compare options with motor control function
Only It allows you to control the speed and direction of the motor. correctly states speed and direction control, which is the main reason for motor control.
Final Answer:
It allows you to control the speed and direction of the motor. -> Option D
Quick Check:
Motor control = speed and direction control [OK]
Hint: Motor control means managing speed and direction [OK]
Common Mistakes:
Thinking motor control only runs motor at full speed
Assuming motor control fixes hardware automatically
Believing motor control prevents motor from stopping
2. Which Arduino pin type is typically used to control motor speed?
easy
A. Analog pin
B. PWM pin
C. Digital pin
D. Ground pin
Solution
Step 1: Identify pin types for motor control
Speed control uses PWM (Pulse Width Modulation) pins to vary power to the motor.
Step 2: Match pin type to speed control
Only PWM pins can change motor speed by adjusting power pulses.
Final Answer:
PWM pin -> Option B
Quick Check:
Speed control = PWM pin [OK]
Hint: Speed needs PWM pins, not just digital [OK]
Common Mistakes:
Choosing digital pins for speed control
Confusing analog pins with PWM pins
Selecting ground pin by mistake
3. What will this Arduino code do?
analogWrite(5, 128); digitalWrite(4, HIGH);
Assuming pin 5 controls speed and pin 4 controls direction of a motor.
medium
A. Motor runs at half speed forward.
B. Motor runs at full speed backward.
C. Motor stops immediately.
D. Motor runs at half speed backward.
Solution
Step 1: Analyze analogWrite on pin 5
analogWrite(5, 128) sets PWM to about half power (128 out of 255), so motor speed is half.
Step 2: Analyze digitalWrite on pin 4
digitalWrite(4, HIGH) sets direction pin HIGH, which we assume means forward direction.
Final Answer:
Motor runs at half speed forward. -> Option A
Quick Check:
Speed half + direction forward = half speed forward [OK]
Hint: PWM 128 means half speed; HIGH usually means forward [OK]
Common Mistakes:
Assuming analogWrite 128 is full speed
Confusing HIGH with backward direction
Thinking motor stops with these commands
4. Find the error in this motor control code snippet:
pinMode(3, OUTPUT); digitalWrite(3, 255);
medium
A. digitalWrite cannot take 255 as a value.
B. pinMode should be INPUT, not OUTPUT.
C. pin 3 cannot be used for motor control.
D. digitalWrite needs to be called before pinMode.
Solution
Step 1: Check digitalWrite parameters
digitalWrite only accepts HIGH or LOW, not numeric values like 255.
Step 2: Validate pinMode and call order
pinMode(3, OUTPUT) is correct and must be called before digitalWrite, which is done here.
Final Answer:
digitalWrite cannot take 255 as a value. -> Option A
Quick Check:
digitalWrite = HIGH or LOW only [OK]
Hint: digitalWrite only uses HIGH or LOW [OK]
Common Mistakes:
Using numbers instead of HIGH/LOW in digitalWrite
Switching pinMode to INPUT incorrectly
Calling digitalWrite before pinMode
5. You want to control a motor's speed and direction using Arduino. Which combination of pins should you use?
hard
A. Two digital pins for speed and direction
B. Two PWM pins both for speed control
C. One PWM pin for speed and one digital pin for direction
D. One analog pin for direction and one digital pin for speed
Solution
Step 1: Understand pin roles for motor control
Speed is controlled by PWM pins to vary power; direction is controlled by digital pins to set HIGH or LOW.
Step 2: Evaluate each option
One PWM pin for speed and one digital pin for direction correctly pairs one PWM pin for speed and one digital pin for direction. Others misuse pin types.
Final Answer:
One PWM pin for speed and one digital pin for direction -> Option C
Quick Check:
Speed = PWM, Direction = digital [OK]
Hint: Speed needs PWM, direction needs digital pin [OK]
Common Mistakes:
Using digital pins for speed control
Using analog pins for direction
Trying to control both speed and direction with PWM only
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.