#include <Adafruit_NeoPixel.h>
#define PIN_LED_STRIP 6 // Pin, an dem der LED-Streifen angeschlossen ist
#define NUM_LEDS 30 // Anzahl der LEDs im Streifen
#define TRIGGER_PIN 9 // Pin für Ultraschall-Sensor Trigger
#define ECHO_PIN 10 // Pin für Ultraschall-Sensor Echo
#define MAX_DISTANCE 400 // Maximale Messdistanz (in cm)
#define MIN_DISTANCE 2 // Minimale Distanz für LED-Anzeige (in cm)
int num_leds_to_light;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN_LED_STRIP, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(9600);
strip.begin();
strip.show(); // Alle LEDs ausschalten
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = (duration / 2) / 29.1; // Berechnung der Entfernung in Zentimetern
if (distance >= MIN_DISTANCE && distance <= MAX_DISTANCE) {
num_leds_to_light = map(distance, MIN_DISTANCE, MAX_DISTANCE, 0, NUM_LEDS);
int red = map(num_leds_to_light, 0, NUM_LEDS, 255, 0);
int green = map(num_leds_to_light, 0, NUM_LEDS, 0, 255);
strip.clear();
strip.setPixelColor(num_leds_to_light, red, green, 0);
strip.show();
}
delay(10);
}