Items Needed:
WS2812 Addressable RGB Strip LED – 1 Meter
HC-SR04 – Ultrasonic Sensor
Arduino UNO with Cable
BreadBoard
Jumper Wires Male to Male
Code:
#include <FastLED.h> #define LED_PIN 7 #define NUM_LEDS 30 #define T1 10 // pin 10 is trigger for sensor 1 #define E1 9 //// pin 9 is echo for sensor 1 int val=0; CRGB leds[NUM_LEDS]; long DistanceSensor (int, int); //trigger echo void setup() { //delay(10000); Serial.begin(9600); pinMode(E1, INPUT); //echo sensor 1 pinMode(T1, OUTPUT); //trigger sensor 1 FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); for(int i=0;i<30; i++) { leds[i] = CRGB(0, 0, 0); } FastLED.show(); } void loop() { long distance = DistanceSensor(T1, E1); if(distance < 7) { TurnONOFFLEDS(0); } else{ int number = (distance - 7)/3 + 1; TurnONOFFLEDS(number); } } void TurnONOFFLEDS(int number) { for(int i=0;i<number; i++) { leds[i] = CRGB(0, 0, 255); } FastLED.show(); for(int i=number;i<30; i++) { leds[i] = CRGB(0, 0, 0); } FastLED.show(); } long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2; } long DistanceSensor (int trigger, int echo) { long duration, cm; digitalWrite(trigger, HIGH); delayMicroseconds(5); digitalWrite(trigger, LOW); delayMicroseconds(5); duration = pulseIn(echo, HIGH); cm = microsecondsToCentimeters(duration); /*Serial.print(cm); Serial.print("cm"); Serial.println(); return cm; }