Rushikesh Chaudhari
202251113
Part 1 : Basic Servo Motor Control using Arduino IDE
Objective
To understand and implement the fundamental control of a servo motor using
an Arduino board. The goal is to make the servo motor rotate to specific
angles—0°, 90°, and 180°—in a loop using code uploaded from the Arduino IDE.
Components Required:
● ESP8266 nodemcu board
● Servo motor(MG90S)
● Jumper wires
● USB cable for uploading the code
● Breadboard
Circuit Connections
● Connect the red wire (VCC) of the servo to the 5V pin on the Arduino.
● Connect the brown/black wire (GND) of the servo to the GND pin on the
Arduino.
● Connect the yellow/white wire (Signal) of the servo to digital pin 9 on the
Arduino.
This setup allows the Arduino to send PWM signals to control the servo motor's
position
Arduino Code:
Output In Serial Monitor :
Conclusion :
The servo motor successfully rotates to three distinct positions in a loop:
● 0° (leftmost position)
● 90° (center position)
● 180° (rightmost position)
Each position is held for 1 second before moving to the next, demonstrating
basic position control using Arduino code. This confirms that the servo responds
correctly to PWM signals sent from the Arduino.
Part 2: Creating a Servo Control with Angle Selection
Objective
To create an interactive system where a potentiometer is used to manually
control the angle of a servo motor. The servo responds in real-time to changes in
the potentiometer's position, allowing angle selection between 0° and 180°.
Components Required:
●
●
●
●
●
●
Arduino Uno board
Micro servo motor (MG90S / SG90)
Potentiometer
Jumper wires
USB cable for uploading code
Breadboard
Circuit Connections
● Connect the red wire (VCC) of the servo to the 5V pin on the Arduino.
● Connect the brown/black wire (GND) of the servo to the GND pin on the
Arduino.
● Connect the yellow/white wire (Signal) of the servo to digital pin 9 on the
Arduino.
● Connect one outer pin of the potentiometer to 5V.
● Connect the other outer pin of the potentiometer to GND.
● Connect the middle pin of the potentiometer to analog pin A0 on the
Arduino.
This setup allows the potentiometer to act as an analog input device, controlling
the angle of the servo motor through mapped values.
● 60 degree Angle
●
90 degree Angle
● 120 degree Angle
● 180 Degree Angle
Conclusion:
This part of the experiment successfully demonstrates how a servo motor's
position can be dynamically controlled using a potentiometer as an input
device.
● The servo motor responded accurately to changes in the potentiometer
position.
● Real-time feedback was observed in the serial monitor.
● This implementation simulates interactive angle control systems used in
various real-world applications such as robotic arms, analog gauges, and
precision controls.
Part 3 : Controlling a Servo Motor Over WiFi
Objective
The aim of this experiment is to control a servo motor remotely over WiFi using
the ESP32 microcontroller. The experiment demonstrates both basic servo motor
control and an advanced application — a speedometer simulation — through
web-based interaction.
Simulation Platforms Used
● Wokwi: Utilized for simulating WiFi-enabled projects due to its support for
ESP32 and networking features.
● Tinkercad: Initially used for Arduino-based servo control, but it lacks
support for WiFi-based ESP32 simulations.
Hardware & Components
●
●
●
●
●
ESP32 Development Board
Servo Motor (SG90 or similar)
Breadboard and jumper wires
Potentiometers (2 units)
Power Source (via USB or battery if using real hardware)
Experiment Setup
Servo Motor Wiring
● Signal (Orange/Yellow) → GPIO D5 (ESP32 Pin GPIO14)
● VCC (Red) → 3.3V
● GND (Brown/Black) → GND
Code Files and Their Roles
1. Sarvo.ino –Main ESP32 Program
The core program running on the ESP32. Functions include:
●
●
●
●
Connecting to WiFi
Running a local web server
Handling HTTP requests from a browser interface
Controlling the servo angle based on user input from the web UI
2. Index.h — Web Interface (HTML + JavaScript)
● Contains HTML + JavaScript code for a circular dial interface.
● The dial UI allows real-time servo angle control through the browser.
● Embedded in main.ino using #include "index.h".
● .wokwi-lib.json file — Dependency Declaration
Output
Once the ESP32 successfully connects to the WiFi network (Wokwi-GUEST in this
case), it will print a message in the Serial Monitor, including:
● Connection Status - Successful we can see IP Address Clearly