Introduction: Crazy Cool Color Changing Sensor :) by Parker, Pedro, Jackson
This project is an amateur level that involves complex code and an interesting circuit
Supplies
- Bread Board
- 24 colored wires
- 4 Red LEDS
- 4 Yellow LEDS
- 4 Green LEDS
- 4 Blue LEDS
- 220 Ohms Resistors
- Ultrasonic Sensor
- Arduino
- USB cable
- Laptop
- Cardboard Box
- Servo Motor
- Clay Stuff
- 15 holes L-Bar
- Stick
- Tape
Step 1: Collect Materials
We gathered the materials we needed
Step 2: Planning It Out
We drew out our plan and what we were going to do
Step 3: Getting the Bread Bored Ready
Step 4: Putting Everything on the Bread Board
We put all the wires, LEDS, resistors, and ultrasonic sensor on the bread board
Step 5: Cutting the Box
We drew the line wear we were going to cut it
Step 6: Finishing Everything
The second to last thing we did was coloring the box, cut out a few holes for the ultrasonic sensor and a hole for the Servo sign, and put the cover on top of our circuit to cover up the wires.
Step 7: Create Sign, Plus Tape It Onto the Servo
We added a sign that says, "Back Away!" and the sign goes up through the hole when someone gets really close.
Step 8: Writing and Finishing the Code
The final thing we did was wrote code and made sure it worked
CODE:
#include <Servo.h>
Servo myservo;
const int trig = 5 ;
const int echo = 4 ;
const int BlueOne = 13;
const int BlueTwo = 12;
const int GreenOne = 11;
const int GreenTwo = 10;
const int YellowOne = 9;
const int YellowTwo = 8;
const int RedOne = 7;
const int RedTwo = 6;
long duration;
int distance;
void setup() {
// put your setup code here, to run once:
myservo.attach(3);
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
pinMode(BlueOne, OUTPUT);
pinMode(BlueTwo, OUTPUT);
pinMode(GreenOne, OUTPUT);
pinMode(GreenTwo, OUTPUT);
pinMode(YellowOne, OUTPUT);
pinMode(YellowTwo, OUTPUT);
pinMode(RedOne, OUTPUT);
pinMode(RedTwo, OUTPUT);
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trig, LOW);
delayMicroseconds(1000);
digitalWrite(trig, HIGH);
delayMicroseconds(1000);
duration = pulseIn(echo, HIGH);
distance = duration * 0.034 / 2;
Serial.println (distance);
if (distance <= 12)
{
myservo.write(90);
digitalWrite (BlueOne, HIGH);
}
else
{
myservo.write(0);
digitalWrite (BlueOne, LOW);
}
if (distance <= 22)
{
digitalWrite (BlueTwo, HIGH);
}
else
{
digitalWrite (BlueTwo, LOW);
}
if (distance <= 33)
{
digitalWrite (GreenOne, HIGH);
}
else
{
digitalWrite (GreenOne, LOW);
}
if (distance <= 44)
{
digitalWrite (GreenTwo, HIGH);
}
else
{
digitalWrite (GreenTwo, LOW);
}
if (distance <= 55)
{
digitalWrite (YellowOne, HIGH);
}
else
{
digitalWrite (YellowOne, LOW);
}
if (distance <= 66)
{
digitalWrite (YellowTwo, HIGH);
}
else
{
digitalWrite (YellowTwo, LOW);
}
if (distance <= 77) // if the distance is less than 77, turn on the blue lights
{
digitalWrite (RedOne, HIGH);
}
else
{
digitalWrite (RedOne, LOW);
}
if (distance <= 88)
{
digitalWrite (RedTwo, HIGH);
}
else
{
digitalWrite (RedTwo, LOW);
}
}





