Arduino Level 3 introduces motors and displays, the building blocks that bring your projects to life. Controlling motors lets you build robots, automated systems, and mechanical devices. Adding displays means your projects can communicate without needing a computer connected. This module covers DC motors, servos, stepper motors, LCD screens, and I2C communication.
Table of Contents
- DC Motor Control
- Servo Motor Control
- Stepper Motor Basics
- 16×2 LCD Display
- OLED Display with I2C
- Combined Project: Smart Servo with Display
- Frequently Asked Questions
- Conclusion
DC Motor Control
DC motors are the simplest motors to control. They spin continuously when powered, and their speed is controlled using PWM (Pulse Width Modulation). You cannot connect a motor directly to an Arduino pin — you need a motor driver like the L298N or L293D to provide sufficient current.
Use analogWrite() with PWM pins to control speed (0-255) and digital pins to control direction through the motor driver’s input pins.
Servo Motor Control
Servo motors rotate to a specific angle (0-180 degrees) and hold position. They are perfect for robotic arms, door locks, and pan-tilt camera mounts. Arduino’s built-in Servo library makes control simple:
#include <Servo.h>
Servo myServo;
void setup() { myServo.attach(9); }
void loop() {
myServo.write(0); // Go to 0 degrees
delay(1000);
myServo.write(90); // Go to 90 degrees
delay(1000);
myServo.write(180); // Go to 180 degrees
delay(1000);
}
Stepper Motor Basics
Stepper motors move in precise steps (typically 1.8 degrees per step = 200 steps per revolution). They are used in 3D printers, CNC machines, and precision positioning systems. Use the A4988 or DRV8825 stepper driver with the AccelStepper library for smooth motion control.
16×2 LCD Display
The classic 16×2 LCD shows 2 rows of 16 characters. With an I2C adapter, it needs only 2 data wires (SDA and SCL) plus power. Install the LiquidCrystal_I2C library and display sensor data, messages, or menu interfaces.
OLED Display with I2C
OLED displays offer sharper visuals with graphics capability. The 0.96-inch SSD1306 OLED is the most popular choice. It connects via I2C and can display text, icons, charts, and even simple animations using the Adafruit SSD1306 library.
Combined Project: Smart Servo with Display
Build a servo-controlled pointer that displays the current angle on an OLED screen. Use a potentiometer to set the target angle, the servo moves to that position, and the OLED shows the current and target angles in real time. This project combines analog input, servo control, and I2C display — all core Level 3 skills.
Frequently Asked Questions
Can I power motors from the Arduino?
Small servo motors (SG90) can be powered from the Arduino 5V pin. DC motors and larger servos must be powered from a separate supply through a motor driver. Never draw more than 200mA from Arduino pins.
What is the I2C address of my display?
Use the I2C scanner sketch (File > Examples > Wire > Scanner) to find your display’s address. Common addresses are 0x27 for LCD and 0x3C for OLED.
Can I use multiple I2C devices?
Yes, I2C supports multiple devices on the same two wires (SDA, SCL), each with a unique address. You can run an LCD, OLED, and several sensors simultaneously.
Conclusion
Level 3 turns your Arduino into something that moves and communicates visually. Motors bring mechanical action, and displays provide standalone feedback. Together, they enable projects like weather stations with screens, robotic arms, automated plant watering systems, and smart home controllers. Master these components and you are ready for WiFi and IoT in Level 4.
Find motors, displays, and driver modules in our Arduino accessories.
Add comment