Devices & Components
Arduino Nano
Ultrasonic Sensor - HC-SR04 (Generic)
Breadboard (generic)
LED (generic)
Male/Male Jumper Wires
Resistor 221 ohm
Project description
Code
Color Shifting Obstacle Detector Using Ultrasonic Sensor
arduino
The ultrasonic sensor detects objects and lights up Red, Yellow or Green LED based on its position.
1 2int green=2,yellow=3,red=4, echo=5, trig=6, duration, distance; 3 4int call_distance(){ 5 6 digitalWrite(trig, LOW); 7 delayMicroseconds(2); 8 digitalWrite(trig, HIGH); 9 delayMicroseconds(10); 10 digitalWrite(trig, LOW); 11 duration=pulseIn(echo,HIGH); 12 distance=(duration/2)*.0344; 13 return distance; 14} 15void fade(int pin){ 16 17 for(int f=0; f<=255; f+=30){ 18 analogWrite(pin, f); 19 delay(30); 20 } 21 for(int f=255; f>0; f-=30){ 22 analogWrite(pin, f); 23 delay(30); 24 } 25 26} 27 28 29void setup(){ 30 31 Serial.begin(9600); 32 pinMode(green, OUTPUT); 33 pinMode(yellow, OUTPUT); 34 pinMode(red, OUTPUT); 35 pinMode(echo, INPUT); 36 pinMode(trig, OUTPUT); 37 38 39} 40 41void loop(){ 42 43 call_distance(); 44 45 while(distance<=10){ 46 digitalWrite(yellow, LOW); 47 digitalWrite(green, LOW); 48 49 fade(red); 50 call_distance(); 51 52 } 53 while(distance>10&&distance<=100){ 54 55 digitalWrite(red, LOW); 56 digitalWrite(green, LOW); 57 fade(yellow); 58 call_distance(); 59 } 60 while(distance>100){ 61 62 digitalWrite(red, LOW); 63 digitalWrite(yellow, LOW); 64 fade(green); 65 call_distance(); 66 67 } 68 delay(100); 69 70 71} 72
Color Shifting Obstacle Detector Using Ultrasonic Sensor
arduino
The ultrasonic sensor detects objects and lights up Red, Yellow or Green LED based on its position.
1 2int green=2,yellow=3,red=4, echo=5, trig=6, duration, distance; 3 4int 5 call_distance(){ 6 7 digitalWrite(trig, LOW); 8 delayMicroseconds(2); 9 10 digitalWrite(trig, HIGH); 11 delayMicroseconds(10); 12 digitalWrite(trig, 13 LOW); 14 duration=pulseIn(echo,HIGH); 15 distance=(duration/2)*.0344; 16 17 return distance; 18} 19void fade(int pin){ 20 21 for(int f=0; f<=255; 22 f+=30){ 23 analogWrite(pin, f); 24 delay(30); 25 } 26 for(int f=255; 27 f>0; f-=30){ 28 analogWrite(pin, f); 29 delay(30); 30 } 31 32} 33 34 35void 36 setup(){ 37 38 Serial.begin(9600); 39 pinMode(green, OUTPUT); 40 pinMode(yellow, 41 OUTPUT); 42 pinMode(red, OUTPUT); 43 pinMode(echo, INPUT); 44 pinMode(trig, 45 OUTPUT); 46 47 48} 49 50void loop(){ 51 52 call_distance(); 53 54 55 while(distance<=10){ 56 digitalWrite(yellow, LOW); 57 digitalWrite(green, 58 LOW); 59 60 fade(red); 61 call_distance(); 62 63 } 64 while(distance>10&&distance<=100){ 65 66 67 digitalWrite(red, LOW); 68 digitalWrite(green, LOW); 69 fade(yellow); 70 71 call_distance(); 72 } 73 while(distance>100){ 74 75 digitalWrite(red, 76 LOW); 77 digitalWrite(yellow, LOW); 78 fade(green); 79 call_distance(); 80 81 82 } 83 delay(100); 84 85 86} 87
Downloadable files
untitled
untitled

Comments
Only logged in users can leave comments