mikrocontroller.net

Forum: Projekte & Code Weihnachtsstern mit WS2812B und STM32F042


Autor: Ernst W. (ewo)
Datum:
Angehängte Dateien:

Bewertung
6 lesenswert
nicht 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

: Bearbeitet durch User
Autor: Tippgeber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)"

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Tippgeber schrieb:
> Sorry, ich will nicht unhöflich sein

Deine Argumentation kann ich zwar nachvollziehen, aber Du hättest 
gründlicher lesen sollen:

E. W. schrieb:
> Eine open source SW wird noch am WE angefügt.

Autor: Tippgeber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. F. schrieb:
> Deine Argumentation kann ich zwar nachvollziehen, aber Du hättest
> gründlicher lesen sollen:

E. W. schrieb:
> 03.12.2017 11:29:
>     Bearbeitet durch User

Autor: Hmmm (Gast)
Datum:

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

Autor: Tippgeber (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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 vom Autor gelöscht.
Autor: Alexander W. (cyancali)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht 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)"
>
> 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

Autor: Tippgeber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Alexander W. (cyancali)
Datum:

Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
Autor: Tippgeber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander W. schrieb:
> Ich hoffe das hilft fürs Erste.

Ja, vielen Dank dafür. Jetzt hab ich erstmal Beschäftigung. :-)

Autor: Alexander W. (cyancali)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tippgeber schrieb:
> Alexander W. schrieb:
>> Ich hoffe das hilft fürs Erste.
>
> Ja, vielen Dank dafür. Jetzt hab ich erstmal Beschäftigung. :-)

Noch ein Nachtrag:

Innerhalb der Funktion void smoothColorChange(void) wird die Variable 
rgbLED dauerhaft verändert, um Farbwechsel zu ermöglichen.

: Bearbeitet durch User
Autor: Hmm (Gast)
Datum:

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


STM32F042 : 1€

Die F042 sind so ziemlich das untere Ende der STM32. Warum sich extra 
Equipment für PIC12 oder ATTINY anschaffen? Wegen 0,x€ Ersparnis?

Ist das dein Ernst?

Autor: Werner A. (homebrew)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir jemand sagen, wo ich die Platinen am besten bestelle und was 
für Dateien ich dann schicken muss? Bisher hab ich immer nur das Eagle 
Board geschickt...
Ist hat jemand welche übrig?

Autor: Markus M. (adrock)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein schönes Projekt, ich hatte auch mal vor soetwas zu bauen.

Ich hätte die doppelte Anzahl an LEDs verwendet, so dass sich eine Art 
geschlossene Linie ergibt. Allerdings ist dann natürlich die 
Stromaufnahme schon wieder grenzwertig...

Autor: Ernst W. (ewo)
Datum:

Bewertung
0 lesenswert
nicht 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

: Bearbeitet durch Moderator
Autor: Ralf Leschner (ladesystemtech)
Datum:
Angehängte Dateien:

Bewertung
4 lesenswert
nicht 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

: Bearbeitet durch User
Autor: bernte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an sich erstmal danke fürs zeigen

eine batterieversion von dem Stern hätte mir aber besser zugesagt
dann könnte man wenigstens ein paar davon in den baum hängen

Autor: Olaf (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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

Autor: Reinhard R. (reirawb)
Datum:
Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Hallo,

ist ja putzig, alle basteln für Weihnachten, ich auch :-)

Reinhard

Autor: KayD (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht 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 :-)

Autor: Gerald B. (gerald_b)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Wer sich beeilt, bei Elecrow gibt's weihnachtsrelevante PCBs bis 10x10 
cm doppelseitig für lau. Lediglich die Frachtkosten bleiben übrig. Meine 
wurden heute abgeschickt :-)

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.