1.
Dynamic Object Tracking
CODE:
for (int angle = 180; angle >= 0;
#include <Servo.h> angle--) {
servo.write(angle);
const int trigPin = 9; delay(30);
const int echoPin = 10; long distance = getDistance();
const int ledPin = 13;
Servo servo; if (distance > 0 && distance <=
30) {
void setup() { digitalWrite(ledPin, HIGH);
pinMode(trigPin, OUTPUT); delay(5000);
pinMode(echoPin, INPUT); } else {
pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW);
servo.attach(6); }
} }
}
void loop() {
for (int angle = 0; angle <= 180; long getDistance() {
angle++) { digitalWrite(trigPin, LOW);
servo.write(angle); delayMicroseconds(2);
delay(30); digitalWrite(trigPin, HIGH);
long distance = getDistance(); delayMicroseconds(10);
digitalWrite(trigPin, LOW);
if (distance > 0 && distance <=
30) { long duration = pulseIn(echoPin,
digitalWrite(ledPin, HIGH); HIGH);
delay(5000); return (duration * 0.034) / 2;
} else { }
digitalWrite(ledPin, LOW);
}
}
IMAGE: }
2. Signal Relay System
CODE:
#include <Servo.h>
const int ledPin = 9; // PWM pin
Servo servo;
void setup() {
pinMode(ledPin, OUTPUT);
servo.attach(6);
}
void loop() {
for (int angle = 0; angle <= 180;
angle += 10) {
servo.write(angle);
int brightness = map(angle, 0,
180, 0, 255);
analogWrite(ledPin, brightness);
delay(500);
3. Dynamic Threshold
Adjuster
CODE:
const int trigPin = 9;
const int echoPin = 10;
const int ledPin = 13;
for (int angle = 180; angle >= 0; void setup() {
angle -= 10) { pinMode(trigPin, OUTPUT);
servo.write(angle); pinMode(echoPin, INPUT);
int brightness = map(angle, 0, pinMode(ledPin, OUTPUT);
180, 0, 255); }
analogWrite(ledPin, brightness);
delay(500); void loop() {
} long distance = getDistance();
}
if (distance > 50) {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
} else if (distance > 20 &&
distance <= 50) {
IMAGE:
digitalWrite(ledPin, HIGH);
delay(500);
4. Moving Average
digitalWrite(ledPin, LOW); Distance Display
delay(500);
} else if (distance <= 20) { CODE:
digitalWrite(ledPin, HIGH); #include <LiquidCrystal.h>
delay(100);
digitalWrite(ledPin, LOW); const int trigPin = 9;
delay(100); const int echoPin = 10;
} LiquidCrystal lcd(12, 11, 5, 4, 3,
} 2);
long getDistance() { long distances[5] = {0, 0, 0, 0, 0};
digitalWrite(trigPin, LOW); int index = 0;
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); void setup() {
delayMicroseconds(10); lcd.begin(16, 2);
digitalWrite(trigPin, LOW); pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
long duration = pulseIn(echoPin, }
HIGH);
return (duration * 0.034) / 2; void loop() {
} long currentDistance =
IMAGE:
getDistance();
distances[index] =
return (duration * 0.034) / 2;
}
currentDistance; long calculateAverage() {
index = (index + 1) % 5; long sum = 0;
for (int i = 0; i < 5; i++) {
long average = sum += distances[i];
calculateAverage(); }
lcd.setCursor(0, 0); return sum / 5;
lcd.print("Avg Distance:"); }
lcd.print(average);
lcd.print(" cm");
IMAGE:
lcd.setCursor(0, 1);
if (abs(distances[(index + 4) % 5]
- average) > 5) {
lcd.print("Unsteady");
} else {
lcd.print("Steady ");
}
delay(1000);
}
long getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin,
HIGH);
5. Proximity Alert
System
CODE:
#include <Servo.h> }
}
const int trigPin = 9;
const int echoPin = 10; long getDistance() {
const int ledPin = 13; digitalWrite(trigPin, LOW);
Servo servo; delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
void setup() { delayMicroseconds(10);
pinMode(trigPin, OUTPUT); digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT); long duration = pulseIn(echoPin,
servo.attach(6); HIGH);
} return (duration * 0.034) / 2;
}
void loop() {
for (int angle = 0; angle <= 180;
angle++) {
servo.write(angle);
delay(30);
long distance = getDistance();
if (distance > 0 && distance <=
20) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
for (int angle = 180; angle >= 0;
angle--) {
servo.write(angle);
delay(30);
long distance = getDistance();
if (distance > 0 && distance <=
20) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
IMAGE:
6. Direction Control
CODE:
const int trigPin = 9;
const int echoPin = 10;
const int motorPin1 = 5; // DC
Motor control pin 1
const int motorPin2 = 6; // DC
Motor control pin 2
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
Serial.begin(9600);
}
void loop() {
long distance = getDistance();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 0 && distance <=
30) {
// Rotate clockwise
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
Serial.println("Motor:
Clockwise");
} else {
// Rotate counterclockwise
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
Serial.println("Motor:
Counterclockwise");
}
delay(500);
}
long getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin,
HIGH);
return (duration * 0.034) / 2;
IMAGE:
7. Color Indicator
Using Position
CODE:
#include <Servo.h>
const int redLED = 11;
const int yellowLED = 10;
const int greenLED = 9;
Servo servo;
void setup() {
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
servo.attach(6);
}
void loop() {
servo.write(0);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
CODE:
#include <Servo.h>
#include <LiquidCrystal.h>
const int trigPin = 9;
const int echoPin = 10;
LiquidCrystal lcd(12, 11, 5, 4, 3,
delay(1000); 2);
Servo servo;
servo.write(90);
digitalWrite(redLED, LOW); void setup() {
digitalWrite(yellowLED, HIGH); pinMode(trigPin, OUTPUT);
digitalWrite(greenLED, LOW); pinMode(echoPin, INPUT);
delay(1000); lcd.begin(16, 2);
servo.attach(6);
servo.write(180); }
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW); void loop() {
digitalWrite(greenLED, HIGH); for (int angle = 0; angle <= 180;
delay(1000); angle++) {
} servo.write(angle);
delay(100);
long distance = getDistance();
IMAGE:
lcd.clear();
if (distance > 0 && distance <=
400) {
8. Object Mapping lcd.setCursor(0, 0);
lcd.print("Angle: ");
System
lcd.print(angle); CODE:
lcd.print(" deg");
#include <LiquidCrystal.h>
lcd.setCursor(0, 1);
lcd.print("Distance: ");
lcd.print(distance);
lcd.print(" cm"); const int trigPin = 9;
} else { const int echoPin = 10;
lcd.setCursor(0, 0);
lcd.print("Clear Area"); const int ledPin = 13;
} LiquidCrystal lcd(12, 11, 5, 4, 3,
delay(500); 2);
}
}
void setup() {
long getDistance() {
digitalWrite(trigPin, LOW); pinMode(trigPin, OUTPUT);
delayMicroseconds(2); pinMode(echoPin, INPUT);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); pinMode(ledPin, OUTPUT);
digitalWrite(trigPin, LOW);
lcd.begin(16, 2);
long duration = pulseIn(echoPin, }
HIGH);
return (duration * 0.034) / 2;
} void loop() {
IMAGES:
9. Obstacle Height
Estimator long distance = getDistance();
lcd.clear();
digitalWrite(trigPin, LOW);
if (distance > 30) {
lcd.print("Short Obstacle"); long duration = pulseIn(echoPin,
HIGH);
blinkLED(3, 1000);
return (duration * 0.034) / 2;
} else if (distance >= 10 &&
distance <= 30) { }
lcd.print("Medium Obstacle");
blinkLED(3, 500);
} else {
lcd.print("Tall Obstacle");
blinkLED(3, 200);
}
delay(1000);
}
void blinkLED(int times, int
delayTime) {
for (int i = 0; i < times; i++) {
digitalWrite(ledPin, HIGH);
delay(delayTime / 2);
digitalWrite(ledPin, LOW);
delay(delayTime / 2);
}
}
long getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
IMAGE:
long distance = getDistance();
10.Object Collection if (distance > 0 && distance <=
15) {
System digitalWrite(dcMotorPin,
HIGH);
delay(3000); // Simulate object
CODE:
collection
#include <Servo.h> digitalWrite(dcMotorPin,
LOW);
break;
const int trigPin = 9; }
const int echoPin = 10; }
const int dcMotorPin = 5; // Motor
control pin delay(1000);
Servo servo; }
void setup() { long getDistance() {
pinMode(trigPin, OUTPUT); digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT); delayMicroseconds(2);
pinMode(dcMotorPin, OUTPUT); digitalWrite(trigPin, HIGH);
servo.attach(6); delayMicroseconds(10);
} digitalWrite(trigPin, LOW);
void loop() { long duration = pulseIn(echoPin,
for (int angle = 0; angle <= 180; HIGH);
angle++) { return (duration * 0.034) / 2;
servo.write(angle); }
delay(100);
IMAGE: