Crazy Cool Color Changing Sensor :) by Parker, Pedro, Jackson

by PHS_Engineering in Circuits > Arduino

33 Views, 0 Favorites, 0 Comments

Crazy Cool Color Changing Sensor :) by Parker, Pedro, Jackson

unnamed.jpg

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

Collect Materials

unnamed.jpg

We gathered the materials we needed

Planning It Out

unnamed.jpg

We drew out our plan and what we were going to do

Getting the Bread Bored Ready

unnamed.jpg

Putting Everything on the Bread Board

unnamed.jpg

We put all the wires, LEDS, resistors, and ultrasonic sensor on the bread board

Cutting the Box

unnamed.jpg

We drew the line wear we were going to cut it

Finishing Everything

unnamed.jpg

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.

Create Sign, Plus Tape It Onto the Servo

IMG_7745.jpeg
IMG_7744 (1).jpg

We added a sign that says, "Back Away!" and the sign goes up through the hole when someone gets really close.

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);

 }

}