Mitlaufendes Neopixel Licht

Entfernung messen mal ganz anders.
Per Infrarot-Sensor wird eine Entfernung ermittelt.
Der Microcontroller lässt daraufhin auf einem 1,5m langen LED-Streifen, nur die entsprechende Diode leuchten. So entsteht ein mitlaufendes Licht.

Benötigt wird zB. ein Elegoo Mega2560 R3.
Als Infrarot Sensor wird ein Sharp GP2Y0A02Y verwendet. Es hat eine Reichweite von 20 cm bis 150 cm.

Damit einzelne LED’s auf einem LED-Streifen angesteuert werden kann, habe ich mich für ein WS2812B Streifen entschieden und es auf 150 cm gekürzt. Insgesamt sind somit 45 LED’s ansprechbar.

Entwicklungsboard = Elegoo Mega2560 R3

Infrarot Senor = Sharp GP2Y0A02Y

LED streifen = WS2812B 150cm gekürzt auf 45 LEDs

Netzteil mit 5V 3A (Berechnung 0,06A pro LED mal 45 Stück = 2,7 A)

Infrarot Sensor Datenblatt: https://global.sharp/products/device/…

Arduino IDE = https://www.arduino.cc/en/main/software

Quellcode:

#include <Adafruit_NeoPixel.h>
#include <SharpIR.h>
#define ir A0  //Infrarot an den analogen A0
#define model 20150
#define LEDPIN 6 // Datenkabel des LED Streifen an Pin 6
#define NUMPIXELS 45 // Menge der NeoPixel LED´s
Adafruit_NeoPixel pixels(NUMPIXELS, LEDPIN, NEO_GRB + NEO_KHZ800);
SharpIR SharpIR(ir, model);

void setup() {
  Serial.begin(9600); 
  pixels.begin(); 
}

void loop() {
  
  pixels.clear(); // erstmal alle pixel colors auf 'off'
  int dis=SharpIR.distance();  // liest die Distanz aus und schreibt wert in dis
  int position = map(dis,20,145,6,44);
  int position1 = (position - 1);
  int position2 = (position + 1);
  pixels.setPixelColor(position, pixels.Color(150, 0, 0));
  pixels.setPixelColor(position1, pixels.Color(0, 10, 0));
  pixels.setPixelColor(position2, pixels.Color(0, 10, 0));
  Serial.println(dis); 
  pixels.show();   // sendet die Farbwerte an den LED Streifen
  delay(500);
  
  }

, ,