0% found this document useful (0 votes)
33 views14 pages

STEAM Arduino Holiday Homework 1

The document contains various Arduino code snippets for different projects, including dynamic object tracking, signal relay systems, dynamic threshold adjusters, and more. Each project utilizes sensors and servos to perform tasks such as distance measurement, LED control, and motor direction control. The code examples demonstrate how to implement these functionalities using basic programming structures and libraries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views14 pages

STEAM Arduino Holiday Homework 1

The document contains various Arduino code snippets for different projects, including dynamic object tracking, signal relay systems, dynamic threshold adjusters, and more. Each project utilizes sensors and servos to perform tasks such as distance measurement, LED control, and motor direction control. The code examples demonstrate how to implement these functionalities using basic programming structures and libraries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

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:

You might also like