Weihnachtsstern mit WS2812B und STM32F042

OP #5231134
Lesenswert?

Hallo zusammen,

pünktlich zum ersten Advent habe ich im Anhang die Daten für einen 
beleuchteten Weihnachtsstern angefügt.
Die Unterlagen sind für alle Bastler, die für die kommende "ruhige"
Zeit noch ein Projekt suchen.

Beleuchtet wird der Weihnachtsstern mit WS2812B (RGB LED),
die Ansteuerung übernimmt ein STM32F042.

Der Weihnachtsstern wird über USB versorgt.

Zur Einstellung der Helligkeit und zur Auswahl der angezeigten
"Lichtfolgen" sind Touch Elemente vorhanden.

Eine open source SW wird noch am WE angefügt.

Die Platine ist bestückt und funktioniert, als Info für alle die ein 
funktionierendes Projekt suchen.

Ich wünsche allen eine gute Zeit und ein frohes Fest.


Viele Grüße
E.Wolf
Angehängte Dateien:
Gast #5231160
Lesenswert?

Sorry, ich will nicht unhöflich sein, aber für ein Projekt ist das arg 
wenig, selbst für ein Nachbauangebot nicht ausreichend. Weder sind die 
Konstruktionsdateien dabei, damit man das Projekt für sich anpassen kann 
noch irgendeine Software, nicht mal eine BIN-Datei zum Flashen. Das 
gehört in dieser Form höchstens hierher: 
Beitrag "Zeigt her eure Kunstwerke (2017-2019)"

Schade, dabei finde ich die im Vergleich zu 
https://ronsholidaylights.com/ws2811-mini-star/ konsequent zu Ende 
gedachte Entwicklung (Controller, USB-Buchse) richtig gut.
Gast #5231267
Lesenswert?

Hmmm schrieb:
> Na, ob der kleine 32-Bitter auch genügend Bumms für die zehn LEDs
> hat?

Ich verstehe Deine Aussage als ironisch, also:

Klar kann das ein Tiny auch, aber warum, wenn ein STM32F042 kaum mehr 
kostet und man sich in der Software so richtig austoben kann, ohne auf 
Platz achten zu müssen?
Beitrag #5231378 wurde von einem Moderator gelöscht.
#5231385
Lesenswert?

Tippgeber schrieb:
> Sorry, ich will nicht unhöflich sein, aber für ein Projekt ist das arg
> wenig, selbst für ein Nachbauangebot nicht ausreichend. Weder sind die
> Konstruktionsdateien dabei, damit man das Projekt für sich anpassen kann
> noch irgendeine Software, nicht mal eine BIN-Datei zum Flashen. Das
> gehört in dieser Form höchstens hierher:
> Beitrag "Zeigt her eure Kunstwerke (2017-2019)"
>
> Schade, dabei finde ich die im Vergleich zu
> https://ronsholidaylights.com/ws2811-mini-star/ konsequent zu Ende
> gedachte Entwicklung (Controller, USB-Buchse) richtig gut.

Huhu,
anbei die aktuelle Version der SW.

Programmieren könnt ihr das Board mit einem ST-LINK. Die IDE (uVision) 
dazu gibts hier: https://www.keil.com/download/product/

Viele Grüße,

Alex
Angehängte Dateien:
Gast #5231398
Lesenswert?

Alexander W. schrieb:
> Huhu,
> anbei die aktuelle Version der SW.

Vielen Dank. Wie ich auf die Schnelle sehen konnte, nutzt Ihr die HAL 
und der Betrieb der WS2812B erfolgt per Bitbanging? Wenn Ihr etwas Zeit 
habt, wäre ein (oder zwei ;-) erklärendes Wort zur Software schön. Ich 
fitzel mich auch so durch, aaaaber ...

Vielen Dank vorab.
#5231412
Lesenswert?

Klar, gerne. Ich versuche mal mein bestes. =)

Der Zugriff auf die Taster (3 Touchfelder) erfolgt mittels der 
HAL-Treiber in der Funktion tasten. Je nachdem welche Taste gedrückt 
wurde, wird eine unterschiedliche Funktion aufgerufen. Also bei Taste1 
wird eine neue Lichtabfolge gestartet und bei den anderen beiden (Taste2 
und Taste3) die Helligkeit der LEDs erhöht oder gesenkt.

Datei FLASH_DataSaver:

Funktionen, um die ausgewählte Helligkeit im Flash zu speichern. Genutzt 
wird dafür ein Bereich ganz am Ende des Flashs, um genügend Speicher 
übrig für den Programmcode übrig zu haben. Gespeichert wird 5 Minuten 
nach der letzten Veränderung des Helligkeitswertes, falls ein anderer 
Wert im Speicher liegt. Erfolgt ebenfalls mittels der HAL-Treiber.

Datei LED_Controller:

Hier passiert das meiste.

Die Funktion userTimeControl() setzt flags, falls die Zeit für eine neue 
Aktion ist.

Die Funktion userRunControl() führt je nach gesetzten flags Aktionen 
aus. Unter dem Switch Befehl (Kommentar: /* Execute operation */) können 
neue Leuchtmodi hinzugefügt werden. Der case 8 muss dann immer erhöht 
werden, da er wieder zurück auf 0 setzt.

Alle Funktionen die mit LED_Mode starten sind Muster wie die LEDs 
leuchten sollen.

Ich hoffe das hilft fürs Erste.

Vorweihnachtliche Grüße,

Alex

PS: Hinter dem case 8 stehen noch zwei case Blöcke. Case 9 ist 
LED_Mode_Star, da bin ich noch am testen mit dem LED Muster. Case 11 ist 
einfach ein Regenbogen, wo wie es auch im Default läuft.
OP #5232104
Lesenswert?

Hallo Werner,

die Daten im Ordner Gerber und Ordner NC Drill werden benötigt
um die Leiterplatten zu fertigen.

Leiterplattenhersteller gibt es viele, z.B. eine Übersicht:

https://www.mikrocontroller.net/articles/Platinenhersteller

Bitte sende mir deine Anschrift an 
https://www.mikrocontroller.net/user/show/ewo

Viele Grüße

Ernst

--

Du willst Deine Email-Adresse sicherlich nicht veröffentlichen. 
Angemeldete Forenmitglieder können Dir aber auch über das Forum eine 
Email an Deine hinterlegte Adresse senden.

-rufus
#5232434
Lesenswert?

Tippgeber schrieb:
> Sorry, ich will nicht unhöflich sein, aber für ein Projekt ist das arg
> wenig, selbst für ein Nachbauangebot nicht ausreichend.

Es geht auch ohne µC und ohne programmieren. Ich habe mal auf dem 
Trödelmarkt einen Weihnachtsstern gekauft mit einem CD 4060 bzw. MC 
14060 und 24 LED's mit Schaltplan.

Das Spitzenmaß der Platine beträgt 65mm (von Spitze zu Spitze). Das 
R-C-R Netzwerk bestehend aus 2x 100k und 1x 100nF erzeugt eine Frequenz 
von ca. 50Hz. Da aber erst ab Ausgang Q4 ausgekoppelt wird, entsteht 
eine Blinkfrequenz von 50Hz x 2 hoch -4 = 3,125Hz.

Ab Q4 bis Q14 wird immer weiter durch 2 geteilt und dadurch entsteht 
eine Wiederholrate eines bestimmten Musters von ca. 10 Minuten und 40 
Sekunden, und das schon bei 3 verschiedenen Ereignissen bzw. Mustern pro 
Sekunde an der aktivsten Stelle! Bei 7 geschickt beschalteten Ausgängen 
mit je zwei möglichen Zuständen gibt es insgesamt 2 hoch 7 = 128 
verschiedene Leuchtmuster.

Für die Berechnung der Wiederholrate muss allerdings 2 hoch 11 gerechnet 
werden (von einschließlich Q4 bis einschließlich Q14), weil Q8, Q9, Q10 
nicht verwendet, und Q11 gar nicht erst rausgeführt wird.

Die Versorgungsspannung darf zwischen 5 Volt und 9 Volt betragen.

Frohe Weihnachten
Ralf Leschner
Angehängte Dateien:
Gast #5235267
Lesenswert?

> Na, ob der kleine 32-Bitter auch genügend Bumms für die zehn LEDs hat?

Ich hab vom letzten Jahr noch einen Stern mit einem EFM32GG230F512 in 
DFN64 mit Masseflaeche unter dem Prozessor rumliegen. :-D

Ich habe damals auf die Veroeffentlichung verzichtet weil ich mir dachte 
das die meisten den hier sowieso nicht loeten koennen. Kann ich aber 
gerne mal nachreichen falls du eine Herausforderung suchst. .-)

Olaf
Gast #5249751
Lesenswert?

Sehr nettes Projekt, vielen Dank. Ich habe es gleich mal nachgebaut. 
Leider hat die Schaltung nicht auf Anhieb funktioniert. Das Problem lag 
im Level-Shifting zwischen dem STM32 und den LEDs. Im Schaltplan ist ein 
Pullup (R26) zwar eingezeichnet aber mit n.b. gekennzeichnet. Da die 
3,3V des IO-Ausgangs nicht ausreichen funktionierte das nicht (bei mir 
zumindest).
Den Pullup bestücken reichte leider auch nicht, da der Ausgang des STM32 
(PB1) nicht 5V tolerant ist. Die Lösung, die bei mir funktioniert hat 
ist R27 nicht mit PB1, sondern mit PA10 zu verbinden und R26 zu 
bestücken, da dieser Ausgang 5V tolerant ist. Dafür war natürlich eine 
Anpassung der Software notwendig, insbesondere den PA10 nicht im 
Push-Pull zu betreiben, sondern im Open-Drain Mode.
Trotzdem vielen Dank für diesen schönen, kleinen Stern! Er hängt jetzt 
in meinem Wohnzimmer :-)
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren