Ich versuche gerade, den Rainbow Cycle Effekt (siehe Rainbow Cycle oder WS2812B Rainbow) hin zu bekommen. Im ersten Link ist sogar der Code dabei, allerding in C (oder was auch immer) . Da versteh ich nix.
Bis jetzt hab ich es geschafft, die Farben auf den Strip zu verteilen und auch zu bewegen, allerdings sieht es bei mir nicht wie "durchgefadet" sondern eher "durchgeshifted" aus, also ziemlich ruppig.
Alles anzeigen
Könnte mir jemand einen Tipp geben, wie ich das Faden hinbekomme?
Gruß
Robert
Bis jetzt hab ich es geschafft, die Farben auf den Strip zu verteilen und auch zu bewegen, allerdings sieht es bei mir nicht wie "durchgefadet" sondern eher "durchgeshifted" aus, also ziemlich ruppig.
BASCOM-Quellcode
- 'Rainbow Cycle WS2812-Leds
- 'Bascom Version 2.0.8.0
- '$sim
- $regfile = "attiny85.dat"
- $crystal = 8000000
- $hwstack = 32
- $swstack = 10
- $framesize = 40
- Const Num_leds = 30
- Const Num_leds_1 = Num_leds - 1
- Config Rainbow = 1 , Rb0_len = Num_leds , Rb0_port = Portb , Rb0_pin = 2
- Rb_selectchannel 0
- Dim Farbe(3) As Byte
- Rot Alias Farbe(_base)
- Gruen Alias Farbe(_base + 1)
- Blau Alias Farbe(_base + 2)
- Dim A As Word
- Dim N As Byte
- Dim Position As Word
- Const Alignment = 768 / Num_leds 'Aufteilung des Farbspektrums auf die Anzahl der LEDs
- Do
- For N = 0 To Num_leds_1
- Select Case Position
- Case 0 To 255
- Rot = Position '0-255
- Gruen = 255 - Position '255-0
- Blau = 0
- Case 256 To 511
- A = Position - 256 '0-255
- Rot = 255 - A '255-0
- Gruen = 0
- Blau = A '0-255
- Case 512 To 767
- A = Position - 512 '0-255
- Rot = 0
- Gruen = A '0-255
- Blau = 255 - Gruen '255-0
- End Select
- Rb_setcolor N , Farbe()
- Position = Position + Alignment 'Farbspektrum für die nächste LED verschieben
- Position = Position - 1 'noch einen kleinen Tick abweichen, um eine Bewegung zu erzeugen
- If Position > 767 Then Position = 0
- Next N
- Rb_send
- Waitms 50
- Loop
- End
Könnte mir jemand einen Tipp geben, wie ich das Faden hinbekomme?
Gruß
Robert