AVR C-Code für WS2812B

Gast #6418249
Lesenswert?
• ▲
▼
Hallo Leute,

ich suche einen einfachen C-Code um einen 5 Meter WS2812B mittels AVR 
(Atmega, Atiny) im Kinderzimmer anzusteuern. Ich möchte das Rad ungern 
neu erfinden und wenn ich ehrlich bin wenig Zeit (davon habe ich gerade 
eigentlich keine) investieren. Eher schnell zumsammenlöten, Software 
drauf und leuchtet.

Ideal wäre eine einfache Schaltung mit Poti zum Einstellen der Farbe. 
Mehr muss nicht sein.

Hat doch bestimmt schon der ein oder andere in dieser Form realisiert 
und könnte ggf. seinen zur Verfügung stellen? C wäre halte schön, da ich 
Assembler erst lernen müsste.
Gast #6418264
Lesenswert?
• ▲
▼
In der Zeit, in welcher du auf eine kompetentere Antwort wartest, 
könntest du das Programm mit den Werkzeugen/Libs der Arduinowelt 
zusammendengeln.

incl IDE Installation, für einen geübten unter 1/2H
Gast #6418321
Lesenswert?
• ▲
▼
Dafür müssste ich mir 1. einen Arduino kaufen, 2. Arduino lernen.

Attiny85 oder auch Atmega8 / 168 fänden sich dagegen noch einige in der 
Bastelkiste.

Vielleicht findet sich ja noch jemand der was passendes im Angebot hat 
und dies auch teilen würde.
Gast #6418341
Lesenswert?
• ▲
▼
N. M. schrieb:
> Arduino lernen? Du meinst C/Cpp. Ja das müsstest du.

Mal ne Frage dazu: Ist das Ganze Industrie tauglich?

Ich bin relativ neu dabei. Ich hab PC basiert prozedural und 
objektorientiert mit Windows Forms cpp gelernt. Mich interessiert wie 
ich Schnittstelle am besten anspreche.

Beispielsweise wenn ich mir einen Arduino Mega besorge und eine W-Lan 
oder LoraWAN Verbindung aufbauen wollen würde, ginge das? Dann würde ich 
mit Qt Visualisieren und Beispielweise LEDs oder Heizung ansteuern... So 
spontan aus der Luft gegriffen.

Danke!
Gast #6418366
Lesenswert?
• ▲
▼
Jens schrieb:
> Dafür müssste ich mir 1. einen Arduino kaufen, 2. Arduino lernen.
1 nein.
2 C kannst du, sollte reichen

Jens schrieb:
> Attiny85 oder auch Atmega8 / 168 fänden sich dagegen noch einige in der
> Bastelkiste.

Die ArduinoWelt kann auch "Attiny85 oder auch Atmega8 / 168" bespielen.
Bedingt aber zusätzliche 10Min Einsatz um die Hardwaredefinitionen zu 
installieren

--------------



Jäckel schrieb:
> Mal ne Frage dazu: Ist das Ganze Industrie tauglich?
Irgendwelche Zertifikate, sind dünn gesät.
Hier ein positives Beispiel: https://www.controllino.biz/

Jäckel schrieb:
> Beispielsweise wenn ich mir einen Arduino Mega besorge und eine W-Lan
> oder LoraWAN Verbindung aufbauen wollen würde, ginge das?
Da der Mega kein Funk onBoard hat, nur mit Zusatzmodulen,
Dann ja.
Gast #6418387
Lesenswert?
• ▲
▼
Jens schrieb:

> ich suche einen einfachen C-Code um einen 5 Meter WS2812B mittels AVR
> (Atmega, Atiny) im Kinderzimmer anzusteuern. Ich möchte das Rad ungern
> neu erfinden und wenn ich ehrlich bin wenig Zeit (davon habe ich gerade
> eigentlich keine) investieren. Eher schnell zumsammenlöten, Software
> drauf und leuchtet.

Also im Minimum faul...

> Ideal wäre eine einfache Schaltung mit Poti zum Einstellen der Farbe.

Obendrein auch noch vollständig inkompetent...

Zu deiner Aufschlauung: "Farbe" ist de facto immer ein Wert in einem 
dreidimensionalen Koordinatensystem. Es gibt sicherlich verschiedene, 
sie haben aber allesamt die drei Dimensionen gemeinsam. Du kannst nicht 
in drei Dimensionen mit nur einem Poti-Wert navigieren. Theoretisch zwar 
möglich, aber praktisch wohl nicht sehr sinnvoll, zumal bei den eher 
begrenzten Fähigkeiten der AVR8, den Potiwert in eine Zahl zu wandeln...

Mit drei Potis könnte das hingegen tatsächlich etwas werden. Du musst 
dich dann nur noch für ein Koordinatensystem entscheiden. Aus 
praktischen Gründen wäre wohl das HSV-Farbraummodell zu bevorzugen...
Gast #6418391
Lesenswert?
• ▲
▼
Arduino Fanboy D. schrieb:
> Bedingt aber zusätzliche 10Min Einsatz um die Hardwaredefinitionen zu
> installieren
Das war nicht ganz richtig!
Boards mit ATMega168(P?) werden von Hause aus schon unterstützt.

Ansonsten:
Der Thread ist jetzt über 2H alt.
Du hättest schon fertig sein können, wenn du dich nicht selber 
blockieren würdest.
#6419291
Lesenswert?
• ▲
▼
Warum nimmt man WS2812, wenn die ganzen 5m in der gleichen Farbe 
leuchten sollen?
Für einfache RGB-LEDs und HSV-Fans hat der Zabex was schönes 
veröffentlicht: http://www.zabex.de/frames/sofabeleuchtung.html

Es gibt WS2812-Controller, die mit Fernbedienung und fertigen 
Farbwechseln und Fixfarben "schön" sind, für unter 15€, inklusive 
Versand und WLAN.
Eure Zeit muss echt billig sein...
Und die sind nicht schwer zu finden, echt jetzt. Wie kommt man drauf, 
das man sowas selber bauen will?

Und so nebenbei: 5m WS2812 "volle Pulle" nehmen locker zweistellige 
Ampere auf. Das kann der Streifen nicht alleine leisten.
Gast #6419417
Lesenswert?
• ▲
▼
Habe mich nun doch mal an Arduino getraut, und die Adafruit NeoPixel Lib 
intstalliert.

"https://github.com/adafruit/Adafruit_NeoPixel";

Wollte erstmal den angegeben Beispielcode testen:

1
#include <Adafruit_NeoPixel.h>
2

3
#ifdef __AVR__
4
  #include <avr/power.h>
5
#endif
6
#define PIN        6
7
#define NUMPIXELS 60
8

9
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
10
#define DELAYVAL 500
11

12
void setup() {
13
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
14
  clock_prescale_set(clock_div_1);
15
#endif
16

17
  pixels.begin();
18
}
19

20
void loop() {
21
  pixels.clear();
22

23
  for(int i=0; i<NUMPIXELS; i++) {
24

25
    pixels.setPixelColor(i, pixels.Color(0, 150, 0));
26
    pixels.show();
27
    delay(DELAYVAL);
28
  }
29
}


Mein Streifen hängt an PIN 6 vom ATtiny85 und hat 60 Leds.
Sollte also passen. Auch rennt der Kerl mit 16 Mhz (externes Quarz).
CKDIV FUSE ist deaktiviert. Es stehen also wirklich die vollen 16 Mhz 
zur Verfügung.

Per AVRISP mkII lässt sich der Code auch auf den Tiny85 schreiben.

Aber siehe da, nix. Kein Leuchten. Ein Test mit Oszilloskop zeigt an 
PIN6 vom Tiny auch nix.

Habe es daraufhin mal mit dem Code von Markus M. und den Hinweisen über 
das AtmelStudio 7 probiert. Damit wirds auf anhieb bunt auf dem 
Streifen. Das klappt also.

Warum nicht mit der Arduino Variante? Muss ich da noch was beachten?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.