Mitlaufendes Licht

Entfernung messen mal ganz anders.
Per Infrarot 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
#define model 20150
#define PIN 6 // On Trinket or Gemma, suggest changing this to 1
#define NUMPIXELS 45 // Popular NeoPixel ring size
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
SharpIR SharpIR(ir, model);

void setup() {
  Serial.begin(9600);
  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}

void loop() {
  
  pixels.clear(); // Set all pixel colors to 'off'
  int dis=SharpIR.distance();  // this returns the distance to the object you're measuring
  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();   // Send the updated pixel colors to the hardware.
  delay(500);
  
  }

,