Tumgik
#neopixelring
draegerit · 2 months
Text
RGB Beleuchtung einfach steuern: NeoPixel Ring mit Arduino
Tumblr media
In diesem Beitrag möchte ich dir ein kleines Projekt mit einem 12bit NeoPixel Ring und einem Arduino Nano V3 präsentieren. Die Idee zu diesem Projekt kommt von einem Leser meines Blogs, bei welchem ich mich zunächst bedanken möchte. https://youtu.be/CX-Rkm5ZVK0 Hast du selber Ideen und benötigst Hilfe? Dann melde dich doch einfach per E-Mail an mich und wir können gemeinsam darauf schauen.
Ziel des Projektes
Das Ziel ist es, eine kleine Schaltung am Arduino Nano V3 mit einem 12bit NeoPixel Ring und einem Taster aufzubauen. Mit dem Taster sollen dann verschiedene Farben auf dem Ring angezeigt werden.
Benötigte Ressourcen für dieses Projekt
Für den Aufbau der Schaltung benötigst du: - einen Arduino Nano V3* - ein USB-Datenkabel* - ein 12bit NeoPixel Ring* - ein Printtaster*, 12 x 12 mm - ein paar Breadboardkabel*, 10 cm, männlich-männlich - ein 400 Pin Breadboard*
Tumblr media
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!
Vorbereiten des Mikrocontrollers
Wenn du wie ich die Mikrocontroller öfters und für verschiedene Projekte verwendest, dann empfehle ich dir vor dem Aufbau der Schaltung ein leeres Sketch / Programm auf diesen zu laden. Damit stellst du sicher, dass alle Pins den korrekten Status haben und du nicht versehentlich deinen Mikrocontroller oder ein angeschlossenes Bauteil zerstörst! void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }
Aufbau der Schaltung zum steuern eines NeoPixel Ring am Arduino
Bevor wir mit der Programmierung starten, bauen wir die Schaltung auf.
Tumblr media
Schaltung - Arduino Nano V3 mit 12bit NeoPixel Ring und Taster
Einrichten der Arduino IDE
Für die Programmierung verwende ich die Arduino IDE, das gute ist, dass du hier lediglich die benötigten Bibliotheken einbinden musst. Zum einen ist es die Adafruit NeoPixel für den NeoPixel Ring und für den Taster verwende ich Bounce2.
Tumblr media Tumblr media
Schritt-für-Schritt-Anleitung zum Programmieren des Projektes
Nachdem die Bibliotheken installiert wurden, kann jetzt mit der Programmierung begonnen werden. Dieses möchte ich dir Schritt-für-Schritt zeigen. Projekt - Arduino Nano V3 mit 12bit NeoPixel Ring & TasterHerunterladen Schritt 1: Anzeigen von Farben auf dem 12bit NeoPixel Ring Im ersten Schritt zeigen wir eine Farbe auf dem NeoPixel Ring an. //Adafruit Bibliothek zum ansteuern //der NeoPixel #include //NeoPixel Ring am digitalen Pin D4 angeschlossen #define neoPixelPin 4 //insgesamt 12 NeoPixel auf dem Ring #define numPixels 12 //Objektinstanz erzeugen Adafruit_NeoPixel pixels(numPixels, neoPixelPin, NEO_GRB + NEO_KHZ800); void setup() { //Beginn der Kommunikation mit dem Ring pixels.begin(); //eine Schleife von 0 bis 11 zum ansteuern der einzelnen NeoPixel for (int i = 0; i < 12; i++) { //setzen der Farbe Rot an jedem Pixel pixels.setPixelColor(i, pixels.Color(255, 0, 0)); //anzeigen der Farbe pixels.show(); } } void loop() {} Der Code bewirkt, dass alle NeoPixel in der Farbe Rot angezeigt werden.
Tumblr media
Schritt 2: Auswerten eines Tasters am Arduino Nano V3 Für das Auswerten des Tasters verwende ich zusätzlich die Bibliothek Bounce2. Diese wird benötigt um den Taster zu entprellen. //Adafruit Bibliothek zum ansteuern //der NeoPixel #include //Bounce2 Bibliothek zum entprellen des Tasters #include //NeoPixel Ring am digitalen Pin D4 angeschlossen #define neoPixelPin 4 //insgesamt 12 NeoPixel auf dem Ring #define numPixels 12 //Taster am digitalen Pin D11 angeschlossen #define buttonPin 11 //Objektinstanzen erzeugen Adafruit_NeoPixel pixels(numPixels, neoPixelPin, NEO_GRB + NEO_KHZ800); Bounce2::Button button = Bounce2::Button(); //Index für das hochzählen der Tastenbetätigungen int index = 0; void setup() { //Beginn der seriellen Kommunikation mit 9600 baud Serial.begin(9600); //Beginn der Kommunikation mit dem Ring pixels.begin(); //Verbinden des Pins des Buttons mit dem //Objekt vom Typ Bounce2, //Der Taster wird über den //internen 10kOhm PullUp Widerstand verbunden! button.attach(buttonPin, INPUT_PULLUP); //Interval für das entprellen auf 5 Millisekunden button.interval(5); //Wenn der Taster betätigt wird, wird dieses als //LOW interpretiert. button.setPressedState(LOW); //eine Schleife von 0 bis 11 zum ansteuern der einzelnen NeoPixel for (int i = 0; i < 12; i++) { //setzen der Farbe Rot an jedem Pixel pixels.setPixelColor(i, pixels.Color(255, 0, 0)); //anzeigen der Farbe pixels.show(); } } void loop() { //aktualisieren des Status des Buttons button.update(); //Wenn der Taster betätigt wurde, dann... if (button.pressed()) { //Variable index um 1 erhöhen index = index + 1; //Ausgeben des Inhalts der Variable auf //der seriellen Schnittstelle Serial.println(index); } } } Wenn man jetzt auf den Taster drückt, dann wird über die serielle Schnittstelle der Inhalt der Variable index ausgegeben.
Tumblr media
Schritt 3: Anzeigen von Farben bei Tastendruck Im letzten Schritt wollen wir jetzt die verschiedenen Farben auf dem NeoPixel Ring anzeigen lassen. Dazu benötigen wir die RGB Codes der Farben, diese können wir über die Seite https://www.rapidtables.com/web/color/RGB_Color.html sehr einfach ermitteln. Jedoch lassen sich nicht alle Farben so gut anzeigen, hier muss man etwas experimentieren. //Adafruit Bibliothek zum ansteuern //der NeoPixel #include //Bounce2 Bibliothek zum entprellen des Tasters #include //NeoPixel Ring am digitalen Pin D4 angeschlossen #define neoPixelPin 4 //insgesamt 12 NeoPixel auf dem Ring #define numPixels 12 //Taster am digitalen Pin D11 angeschlossen #define buttonPin 11 //Objektinstanzen erzeugen Adafruit_NeoPixel pixels(numPixels, neoPixelPin, NEO_GRB + NEO_KHZ800); Bounce2::Button button = Bounce2::Button(); //Index für das hochzählen der Tastenbetätigungen int index = 0; //maximale Anzahl der Farben const int MAX_COLORS = 12; //ein Array mit den Farbwerten für den Ring uint32_t colors = { pixels.Color(255, 255, 255), //weiss pixels.Color(255, 0, 0), //rot pixels.Color(0, 255, 0), //gruen pixels.Color(0, 0, 255), //blau pixels.Color(255, 255, 0), //gelb pixels.Color(255, 0, 255), //pink pixels.Color(255, 102, 102), //hellrot pixels.Color(255, 153, 51), //orange pixels.Color(0, 255, 255), //tuerkis pixels.Color(0, 0, 153), //dunkel Blau pixels.Color(102, 0, 204), //dunkel lila pixels.Color(153, 255, 51), //hell gruen }; void setup() { //Beginn der seriellen Kommunikation mit 9600 baud Serial.begin(9600); //Beginn der Kommunikation mit dem Ring pixels.begin(); //Verbinden des Pins des Buttons mit dem //Objekt vom Typ Bounce2, //Der Taster wird über den //internen 10kOhm PullUp Widerstand verbunden! button.attach(buttonPin, INPUT_PULLUP); //Interval für das entprellen auf 5 Millisekunden button.interval(5); //Wenn der Taster betätigt wird, wird dieses als //LOW interpretiert. button.setPressedState(LOW); updateNeoPixel(); } //Funktion zum anzeigen einer Farbe am NeoPixel Ring void updateNeoPixel() { //löschen aller gesetzen Farben pixels.clear(); //eine Schleife von 0 bis 11 zum ansteuern der einzelnen NeoPixel for (int i = 0; i < numPixels; i++) { //setzen der Farbe aus dem Array mit dem Index pixels.setPixelColor(i, colors); //anzeigen der Farbe pixels.show(); } } void loop() { //aktualisieren des Status des Buttons button.update(); //Wenn der Taster betätigt wurde, dann... if (button.pressed()) { //Wenn die maximale Anzahl der Farben erreicht wurde, dann... if (index == (MAX_COLORS-1)){ //Index auf 0 setzen index = 0; } else { //andernfalls... //Variable index um 1 erhöhen index = index + 1; //Ausgeben des Inhalts der Variable auf //der seriellen Schnittstelle Serial.println(index); } //Aufrufen der Funktion zum anzeigen der Farben auf dem Ring updateNeoPixel(); } }
Fazit zum Projekt - Arduino, NeoPixel Ring mit Taster steuern
Das kleine Projekt ist recht schnell umgesetzt und durch die sehr einfache Adafruit Bibliothek ebenso einfach zu programmieren. Im nächsten Schritt könnte man nun eine kleine Platine entwickeln, um diese Schaltung fest zu verbauen. Read the full article
0 notes
codingheroesonline · 5 years
Video
instagram
Need some help with a student project. She is using a Gemma M0 from @adafruit with two NeoPixel rings. As you can see the top NeoPixel ring is not lighting up all around. I suspect a poor soldering job, but it could be the wires or something else. But I know for sure it’s not the code because it was working before. I would love to hear your suggestions in the comments!! 🙏 - - - - - #adafruit @andystechgarage @davek_uk #neopixel #neopixelring #diyelectronics #arduino #gemma #arduino #arduinoprojects #diyprojects #fablabbusan #stem #makerfaire @makekorea #stemkids #stemforkids #stemeducation #coding #soldering #solderingiron #techhelp #rgb #rgblights #studentproject #maker #makerspace #makersgonnamake #edtech #elementaryteacher #stemteachers (at Busan, South Korea) https://www.instagram.com/p/B26nGQnH2GV/?igshid=19r6jw35h81nr
1 note · View note
blok5groepc · 8 years
Video
undefined
tumblr
Ik heb het arduino stuk geprogrammeerd met de neopixelring die aan/uit kan en van kleur veranderd als iemand dichterbij komt van kleur verandert. 
0 notes
blok5groepc · 8 years
Text
Concept definitief
We hebben het concept nog net wat aangepast voor het definitieve product.
Een slim object wat ouderen stimuleerd meer te bewegen en sociaal contact te onderhouden. Bewegen is goed om het aftakelende lichaam nog fris en jong te houden, maar maakt ook een stofje aan waardoor je vrolijker wordt en dus de depressies tegen kunnen gaan. Het apparaat bestaat uit één knop met een Neopixelring eromheen.
Ouderen kunnen deze knop indrukken om zo te laten weten dat zij een ommetje gaan maken. Vanaf dat moment licht de Walkly blauw op en wordt de beweging opgeslagen. Dit is te zien in een app. Familieleden en/of verzorgers kunnen zie wanneer en waar de ouderen gelopen hebben.
Tijdens de wandeling kan het voorkomen dat er een andere gebruiker dicht in de buurt ook een rondje aan het lopen is. Op dit moment wordt de Walkly oranje. De gebruiker kan nu kiezen of hij/zij de andere gebruiker wilt zoeken of niet. Is deze persoon nóg dichter in de buurt kleurt de Walkly groen en kunnen zij ervoor kiezen om samen verder te lopen o.i.d.
Steeds als de knop ingedrukt is om te gaan wandelen wordt de beweging van de oudere opgeslagen. Ook wordt er bij elke wandeling met een ander persoon “punten” gespaard. Hiermee kunnen ouderen als ze (lang) genoeg gewandeld hebben sparen voor versnaperingen bij een café in de buurt om hier nog even samen te kletsen.
0 notes