Eine Stimmungslaterne  mit WS2812b RGB LED Ring - AZ-Delivery

Toen ik onlangs hebben goed kunnen maken met mezelf in het geheugen, vond ik een lantaarn een onderscheiding als hout met het in kleine glazen ramen die licht van een kaars kan worden gebruikt. Omdat echte kaarsen laten zien, zoals iedereen weet, een kleine niet mogelijk brandgevaar en bovendien ook ik wilde sturen mijn lantaarn comfortabel, ik val echt op voor het licht, met flikkerende kaars met een ring en WS2812 simuleert een candle-light en het typische kaars flikkeren. We nemen vandaag in onze blog is een kunstmatige "kaars" in onze lantaarn. Met de lantaarn wordt het een realistische "flame flikkeren" zonder risico's door een brand het vuur openen.

Lantaarn klaar

Die we nodig hebben voor ons project en in dit deel van de rij 1 de volgende hardware:
1 x Nano 3 AZ levering V
1 x RGB LED Ring WS2812b RGB LEDs met 12 5 V voor Arduino 50 mm externe diameter van
1 x 5 1 ampère v / van de elektriciteitsvoorziening

De elektriciteitsvoorziening van ons circuit moet worden afgemeten met ruim 1 ampèreOmdat de ring een maximale stroom RGB invoer met volledige modulatie van 12 = 60 mA * Ma 720 heeft.


We monteren de elektronische deel van de lantaarn, zoals in de volgende getoond en draad diagramme dan ook:

Plan lantaarn schakelaar stemming

In wezen een normale Mikrokontroller, bruikbaar met R3, de Verenigde Naties, kan ook gebruikt worden natuurlijk ook in plaats van de Nano AZ levering V3 biedt echter thuis van Nano voordelen met de installatie in een lantaarn.

Als we hebben opgebouwd door het circuit klaar, nu moeten we integreren als de volgende Adafruit neopixel van de bibliotheek, dus dat kunnen we gewoon naar de zie leidde van de ring.

De vereiste bibliotheek toegevoegd kan worden meer dan 2 IDE gebruiken van ons:
1). De bibliotheek op de URL https://github.com/adafruit/Adafruit_NeoPixel downloaden.
Dan in De Winde in het menu schets > punt -; Bibliotheek -, integreren > Zip met de hand bibliotheek toevoegen.


2.) In de bibliotheek als gouverneur een trefwoord "van Adafruit neopixel" geven op de bibliotheek, selecteren en dan klik "installatie". Selecteer minstens versie 1.2.4.

Keuze van de neopixels Installationin van de Arduino IDE

 

Als alles is hier klapte de volgende code in het wetenschappelijke tijdschrift Nano wordt een zeer geladen:

 

# include <Adafruit_NeoPixel.H>

# define PIN        6  //Which pin op de Arduino is verbonden met de neopixel?
# define NUMPIXELS 12 //How veel van ares neopixel aan de Arduino /? / neopixel grootte populair strijd

Adafruit_NeoPixel van pixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

# define DELAYVAL 500 //Time (in milliseconden) tussen op sporen van pixel

lang Laden;
int interval;

Leegte Valstrik()
{   van pixel.beginnen(); //Of neopixel initialiseren   interval = 150;   randomSeed(analogRead(0));
}

Leegte SimulateFire (bool Op, int FireSquence)
{   Als (Op)   {     lang nowmilli = millis();     Als (nowmilli - Laden >= interval)     {       byte LightValue[NUMPIXELS * 3];       byte FireColor = 60;       interval = Willekeurig(150, 200);       Laden = nowmilli;       FireColor = 60; //random (0.50);       Voor (int Ik = 0; Ik < NUMPIXELS; Ik++)       { //For elk pixel.         LightValue[Ik * 3] = Willekeurig(240, 255); // 250         LightValue[Ik * 3 + 1] = Willekeurig(30, 60); // 50         LightValue[Ik * 3 + 2] = 0;       }       //Switch lichtjes donkerder       byte LightsOff  = Willekeurig(0, 4);       Voor (int Ik = 0; Ik < LightsOff; Ik++)       {         byte Geselecteerd = Willekeurig(NUMPIXELS);         LightValue[Geselecteerd * 3] = Willekeurig(50, 60);         LightValue[Geselecteerd * 3 + 1] = Willekeurig(5, 10);         LightValue[Geselecteerd * 3 + 2] = 0;       }       Voor (int Ik = 0; Ik < NUMPIXELS; Ik++)       { //For elk pixel.         van pixel.setPixelColor(Ik, van pixel.Kleur(LightValue[Ik * 3], LightValue[Ik * 3 + 1], LightValue[Ik * 3 + 2]));         van pixel.show();   De pixel //send bijgewerkt kleuren aan de hardware.       }     }   }   Anders   {     Voor (int Ik = 0; Ik < NUMPIXELS; Ik++)     { //For elk pixel.       van pixel.setPixelColor(Ik, van pixel.Kleur(0, 0, 0));       van pixel.show();   De pixel //send bijgewerkt kleuren aan de hardware.     }   }
}

Leegte Lus()
{   SimulateFire(Waar, 0);
}

 

Een blik in de interne opbouw van de lantaarn:

Bouw Lanterne binnen

En dus keek de lantaarn zonder elektronica en diffusors:

Lege kist

 

Ik wil een hoop plezier en tijdens het kopiëren, zoals gebruikelijk, tot de volgende plek.

Für arduinoProjekte für fortgeschrittene

34 Reacties

Andreas Wolter

Andreas Wolter

@Dave Rose: I cannot detect any problems when I compile the code. Line 28 can be used individually. Either with a fixed value, or with a random generator (that’s the commented-out part behind it with the random() command). Otherwise, everything fits. I think that copying from the browser is where the problems occur. If I copy it into the Arduino IDE and compile it for the Nano, everything is ok. If a library is not found, it is probably indeed not installed correctly. I typed “neopixel” into the search via the library manager and installed it. Works fine.

Best regards,
Andreas Wolter
AZ-Delivery Blog

Dave Rose

Dave Rose

These code examples are in a very very poor condition. A lot of ‘spaces’ where there should not be ‘spaces’. A lot of missing ‘returns’, making lines wrap around and very long. Also many parts ‘commented out’ when they should be part of the code. This is an extremely poor show from A-Z. I have spent several hours, with my limited knowledge of Arduino code and still failed to get this code working correctly. Also the ‘12 led Ring’ clock is constantly saying the ‘< NeoPixelBus . h >’ library is missing when it is installed in plain sight. Again you can can see ‘spaces’ which should not be there which is confusing the Arduino IDE. Please sort this out so that I can get my hardware projects working the way they should be. Thank you.

Andreas Wolter

Andreas Wolter

@Randolf
in Ihrem Fall würde ich zuerst testen, ob der ATTiny überhaupt erkannt und programmiert werden kann.
Die SoftSerial Bibliothek scheint mit dem ATTiny nicht zu laufen. Die würde ich als erstes auskommentieren. Es gibt aber scheinbar noch mehr Probleme mit der Hardwarespezifikation.

Wenn das funktioniert, würde ich dann zuerst ein kleines Testprogramm mit der Neopixel Bibliothek aufspielen, um die LEDs zu testen

Dieses Projekt hier wurde mit einem Nano mit ATMega328 umgesetzt. Ich habe extern ein Projekt mit dem Digispark gefunden:
https://www.instructables.com/USB-NeoPixel-Deco-Lights-via-Digispark-ATtiny85/

Vielleicht hilft Ihnen das weiter.

Grüße,
Andreas Wolter
AZ-Delivery Blog

Randolf

Randolf

Guten Abend ,

ich möchte das Programm auf einen Digispark Rev.3 Kickstarter mit ATTiny85 und
USB kompatibel mit Arduino aufspielen .

Leider bekomme ich da eine Fehlermeldung
In file included from C:\Users\LS-2\AppData\Local\Arduino15\libraries\Firmata/Firmata.h:17:0,
from C:\Users\LS-2\AppData\Local\Arduino15\libraries\Firmata\utility\SerialFirmata.h:24,
from C:\Users\LS-2\AppData\Local\Arduino15\libraries\Firmata\utility\SerialFirmata.cpp:20:
C:\Users\LS-2\AppData\Local\Arduino15\libraries\Firmata/Boards.h:856:2: error: #error “Please edit Boards.h with a hardware abstraction for this board”
#error “Please edit Boards.h with a hardware abstraction for this board”
^
In file included from C:\Users\LS-2\AppData\Local\Arduino15\libraries\Firmata\utility\SerialFirmata.cpp:20:0:
C:\Users\LS-2\AppData\Local\Arduino15\libraries\Firmata\utility\SerialFirmata.h:30:28: fatal error: SoftwareSerial.h: No such file or directory
#include
^
compilation terminated.
Mehrere Bibliotheken wurden für “Adafruit_NeoPixel.h” gefunden
Benutzt: C:\Users\LS-2\Documents\Arduino\libraries\Adafruit_NeoPixel
Nicht benutzt: C:\Users\LS-2\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Adafruit_NeoPixel
exit status 1

Hoffe mir kann jemand helfen . Bin da zu neu in der Materie.

Randolf

Andreas Wolter

Andreas Wolter

@Klaus Wieckhorst:
um die Farbe einzustellen, wird die funktion setpixelcolors() verwendet. Hier ist es:
pixels.setPixelColor(i, pixels.Color(LightValue[i * 3], LightValue[i * 3 + 1], LightValue[i * 3 + 2]));

i steht für die Nummer des Pixels, die anderen drei Argumente sind die Helligkeit der Farben Rot, Grün und Blau. In diesem Fall werden die Farben vorher per Zufallsgenerator erzeugt. Es werden die Farben dann nicht einfach als Wert übergeben, sondern als Struktur mit der Funktion pixels.Color().
Mein Vorschlag wäre, ein Offset einzustellen und somit die Farbe mehr in Richtung Blau und Grün zu verschieben. Also den zweiten Parameter zu dekrementieren und den dritten und vierten zu inkrementieren.

Grüße,
Andreas Wolter

Klaus Wieckhorst

Klaus Wieckhorst

Das ist genau das richtige Projekt nach dem ich gesucht habe, es funzt einwandfrei, aber mir ist das Licht zu rot, wie kann ich die Farbe einstellen, habe schon experimentiert, leider ohne Erfolg. Könnte mir da einer helfen?? Besten Dank

Ingo

Ingo

Böse Falle:
Ich habe ein Breadboard, das noch Zahlen aufgedruckt hat, sind die Zahlen “richtigrum” lesbar, ist oben die
rote + Leitung oben und die blaue – Zeile darunter.
Ich habe dadurch aus Versehen die Betriebsspannung am Controller falschrum angeschlossen.
Als er irgendwie heiß wurde, habe ichs gerochen und rausgezogen, er hat es überlebt.

Frank Hoerper

Frank Hoerper

Schoenes Projekt. Funktionierte auf Anhieb mit dem D1 Mini NodeMCU. Allerdings musste ich den Datenpin auf 12 setzen, da digital Pin und realer Pin nicht gleich sind.

Tobias Kuch

Tobias Kuch

Hallo Oliver,

Ja das ist korrekt.

Gruß
Tobias

Randolf Liß

Randolf Liß

HAllo , bin ganz neu und noch keine Erfahrung mit der Programmierung .

Kann man das ganze auch mit einem LED Stripe betreiben und wie würde der Code dann aussehen .

M.f.G.
Randolf

Oliver

Oliver

Hallo Tobias, vielen Dank für die schnelle Antwort. Mir würde der passende Befehl zum Ein- und Ausschalten des Ringes genügen. SimulateFire(false,0) / SimulateFire(true,0)?

Tobias Kuch

Tobias Kuch

Hallo Oliver
Dein Wunsch erfordert in nicht un aufwendiges Umschreiben des Codes und damit einen nicht unerheblichen Zeitaufwand, der hier an dieser Stelle leider nicht geleistet werden kann. Bitte stelle deine Anfrage an AZ Delivery mit der Bitte ein Extra Blog über dein Thema zu schreiben.
Viele Grüße
Tobias Kuch

Oliver Schneider

Oliver Schneider

Der Code funktioniert wunderbar auf einem Nano. Vielen Dank.
Ich würde den Ring über einen Lichtsensor bei Dunkelheit einschalten und bei einsetzender Dämmerung wieder abschalten. Wie kann ich das realisieren?

Matthias

Matthias

Ich versuche das ganze mit einem ESP32 NodeMCU, aber der Code wirft einen Memory error.
Gibt es einen Grund warum das auf einem ESP32 nicht funktionieren sollte?

Karli

Karli

Kondensator auf Power und ein 220R Wiederstand in der Steuerleitung sollte schon noch dabei sein.
MfG

Tobias

Tobias

Die Stromversorgung kann mit jedem Steckernetzteil mit 5 Volt / 1 Ampere Ausgang, oder mit dem gezeigten Spannungswandler mit jedem Netzteil 8-15 Volt / 1 Ampere Ausgang realisiert werden.

Frederick Hamm

Frederick Hamm

Womit kann man denn die Stromversorgung realisieren? Habt ihr irgendwelche Beispiele?

Rainer Sins

Rainer Sins

Zu den Fragen wo denn der Code sei:
Der Code ist bei mir mit Firefox und Chrome einwandfrei ersichtlich.
Welchen Browser verwendet ihr?
Grüße…

Tobias

Tobias

Der Code wurde noch im Artikel ergänzt. Ich habe als Diffusor auf dem Bild einfaches Papier verwendet, mit abgebildetem Ergebnis. Bei einem “professionellen” Diffusor (z.B aus einem alten LCD Monitor) erzielt man aber bestimmt noch bessere Ergebnisse.

Frank

Frank

Irgendwie kann ich keinen Code finden………….

Telemachos

Telemachos

Eine schöne Idee!
Sollte ###Code### noch durch den tatsächlichen Programmcode ersetzt werden?
Was wurde als Diffusor verwendet? Auf dem Foto erinnert es an Butterbrotpapier.
Und was ist “auf dem Speicher aufräumen”? Nie von gehört. 🤭

Jojo

Jojo

Hey,

wie genau wird die Stromversorgung hier realisiert?

Beste Grüße
Jojo

Jan

Jan

Wo finde ich den Code?

Alex

Alex

Hi,
leider ist der Code nicht ersichtlich.

Immanuel Schade

Immanuel Schade

Ja schön …. aber welcher Code? ;-)

Chr

Chr

Danke für den Beitrage, aber wo genau finde ich den Code?
/Chr.

A. Freudenstein

A. Freudenstein

Kann man den Code so veröffentlichen, dass er ladbar ist?
So kann ich mit dem Link nichts anfangen!
Axel F

masterflai

masterflai

Der Code fehlt noch.

masterflai

masterflai

Ein sehr schönes Projekt und ich musste schmunzeln, denn genau diese Laterne stand bei uns auch herum. Die wird in einem Herbstprojekt auf Vordermann gebracht. Danke für diese tolle Idee.

Jürgen

Jürgen

Guten Abend,
keine schlechte Idee, jedoch vermisse ich den Code. Oder habe ich etwas falsch gemacht??
So sieht es bei mir aus: "Wenn bis hierhin alles geklappt hat, wird der folgende Code auf den Nano hochgeladen:

###CODE###

Ein Blick in den inneren Aufbau der Laterne:"

Gruß Jürgen

Ralph Schraven

Ralph Schraven

Bitte jetzt noch den Code ;-)

Ralph Schraven

Ralph Schraven

Bitte noch den Code ;-)

Ralph

Hr. Drews

Hr. Drews

Hallo,

schöne Idee auch für andere Zwecke. Ich kann aber den Quell-Code nicht sehen / öffnen.

Werner

Werner

Sehr schöne Idee und wirklich preisgünstig aufzubauen. Wird der CODE noch nachgereicht? Bei mir war er am 26.8.19 im Blog nicht sichtbar.

Laat een reactie achter

Alle opmerkingen worden voor publicatie gecontroleerd door een moderator

Aanbevolen blogberichten

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery