Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

LED-Stripes mit Bewegungssensor: Dein Zuhause im neuen Licht

Posted on 16. Oktober 202310. März 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du RGB LED-Stripes mit Bewegungssensor am Arduino programmierst. Die Idee zu diesem Beitrag stammt von einem Leser meines Blogs, wobei ich mich an dieser Stelle bei ihm bedanke.

Wie du ein RGB Stripe am Arduino programmierst, habe ich dir bereits auf diesem Blog gezeigt.

  • LED Stripe am Arduino UNO steuern,
  • LED Stripe wechsel blinken am Arduino UNO R3,
  • LED Stripe wechsel blinken am Arduino UNO R3 – Teil2 einzelne LEDs steuern,
  • LED Stripe wechsel blinken am Arduino UNO R3 – Teil3 LED Stripe kaskadierend anschließen

Inhaltsverzeichnis

  • Ziel des Projektes
  • Benötigte Ressourcen für dieses Projekt
  • Hinweis beim Verwenden einer LED-Stripe am Arduino
  • Aufbau der Schaltung – LED-Stripes mit Bewegungssensor am Arduino
  • Programmieren in der Arduino IDE
    • Adafruit NeoPixel Bibliothek
    • Programm

Ziel des Projektes

Hier möchte ich nun speziell auf eine Anforderung eingehen, welche vom Leser gestellt wurde.

Es soll eine Anzahl x LEDs in RGB Farben aufleuchten, wenn der Bewegungssensor aktiv ist, sollen 75 % der LEDs in der Farbe Weiß aufleuchten und die anderen 25 % verbleiben in der zuvor gesetzten Farbe.

Benötigte Ressourcen für dieses Projekt

Um dieses Projekt aufzubauen, benötigst du:

  • einen Arduino Nano V3*,
  • ein passendes USB-Datenkabel für den Mikrocontroller*,
  • ein RGB Stripe*,
  • einen Bewegungssensor Typ HC-SR501*, sowie
  • eine externe 5V Stromquelle mit minimal 2A Leistung*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

In meinem Fall musste ich für mein Netzteil noch einen Schukostecker sowie 1,5 m 3×1,5 mm flexibles Kupferkabel vom örtlichen Baumarkt besorgen.

Hinweis beim Verwenden einer LED-Stripe am Arduino

Eine LED-Stripe hat je nach Anzahl der verbauten LEDs eine hohe Spannungsaufnahme. Der Arduino liefert am 5V Pin jedoch mit nur maximal 800 mA, das würde bei einer Leistungsaufnahme von 20 mA pro LED für 40 LEDs ausreichen. Jedoch führst du deinen Mikrocontroller dann an das Maximum der Leistung und das ist dauerhaft schädlich.

Es gibt auf den einschlägigen Portalen 5V Netzteile mit guter Leistung.

LED Netzteil (Trafo) mit 5V & 5A Leistung
LED Netzteil (Trafo) mit 5V & 5A Leistung

Aufbau der Schaltung – LED-Stripes mit Bewegungssensor am Arduino

Nachfolgend zunächst der Aufbau der Schaltung, hier habe ich exemplarisch einen RGB Stripe angeschlossen. Da die RGB Stripes einfach hintereinander angeschlossen werden können, kannst du somit fast beliebig viele solcher Stripes ansprechen. Die Grenze ist hier nur deine Spannungsversorgung.

Schaltung - Arduino Nano V3 mit Bewegungssensor HC-SR501 und LED-Stripes
Schaltung – Arduino Nano V3 mit Bewegungssensor HC-SR501 und LED-Stripes

In meinem Fall verwende ich keine LED-Stripe, sondern zwei 8Bit LED-Bars, welche jedoch genauso aufgebaut sind. Als Stromquelle verwende ich hier ein Power Supply Modul mit einer 9V Blockbatterie.

Programmieren in der Arduino IDE

Erstellen wir nun das kleine Programm in der Arduino IDE. Wie du die Arduino IDE installierst, habe ich dir im Beitrag Arduino IDE installieren erläutert und wenn du ein Linux benutzt findest du unter Arduino IDE 2.0 auf Linux installieren einen passenden Beitrag.

Adafruit NeoPixel Bibliothek

Adafruit_NeoPixel Bibliothek im Bibliotheksverwalter der Arduino IDE
Adafruit_NeoPixel Bibliothek im Bibliotheksverwalter der Arduino IDE

Für das Ansteuern der NeoPixel / RGB LED-Stripes benötigen wir eine Bibliothek. Sehr gute Erfahrungen habe ich mit der NeoPixel Bibliothek von Adafruit gesammelt. Diese Bibliothek kannst du über den internen Bibliotheksmanager (1) der Arduino IDE installieren.

Im Bibliotheksverwalter suchst du zunächst nach „Adafruit NeoPixel“ (2) und wählst dort am Eintrag „Adafruit NeoPixel by Adafruit“ die Schaltfläche „INSTALL“ (3). Wenn diese Bibliothek erfolgreich installiert wurde, dann wird der Text „Version <Nummer> INSTALLED“ (4) angezeigt.

Programm

Hier nun das fertige Programm mit Kommentaren:

//Bibliothek zum ansteuern von NeoPixel / RGB LED-Stripes.
#include <Adafruit_NeoPixel.h>

//Die RGB Stripe ist am digitalen Pin D2 angeschlossen.
#define PIXELPIN 2
//Die RGB Stripe hat 16 NeoPixel / LEDs.
#define NUMPIXELS 16

//Der Bewegungssensor ist am digitalen Pin D3 angeschlossen.
#define SENSOR 3

//Initialisieren eines Objektes vom Typ Adafruit_NeoPixel
Adafruit_NeoPixel pixels(NUMPIXELS, PIXELPIN, NEO_GRB + NEO_KHZ800);

//Definieren der Farben, mit RGB Werten
const uint32_t COLOR_WHITE = pixels.Color(255, 255, 255);
const uint32_t COLOR_RED = pixels.Color(107, 10, 10);

void setup() {
  //Begin der kommunikation mit dem NeoPixel
  pixels.begin();
  //Definieren das der Pin des Bewegungssensors als Eingang dient.
  pinMode(SENSOR, INPUT);
}

void loop() {
  //Wenn der Pin des Sensors HIGH ist, dann...
  if (digitalRead(SENSOR) == HIGH) {
    //löschen der derzeit angezeigten Farben
    pixels.clear();
    //Schleife von 0 bis 15,...
    for(int i = 0;i<NUMPIXELS;i++){
      //default Farbe ist Weiß
      uint32_t color = COLOR_WHITE;
      //Wenn das Ergebnis der Operation i modulo 3 ohne Rest ist, dann...
      if((i % 3) == 0){
        //ändern der Farbe auf Rot
        color = COLOR_RED;
      }
      //Zuweisen der Farbe zu einem NeoPixel
      pixels.setPixelColor(i, color);
    }  
    //Anzeigen der Farben
    pixels.show();
  } else {
    //Wenn keine Bewegung erkannt wurde, dann sollen alle NeoPixel die gleiche Farbe haben.
    //löschen der derzeit angezeigten Farben
    pixels.clear();
    //Schleife von 0 bis 15,...
    for(int i = 0;i<NUMPIXELS;i++){
      //Zuweisen der Farbe Rot zu einem NeoPixel
      pixels.setPixelColor(i, COLOR_RED);
    }
    //Anzeigen der Farben
    pixels.show();
  }
}
Programm – Arduino Nano V3 mit NeoPixel / RGB Stripes und BewegungssensorHerunterladen

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}