Hallo,
ich möchte 4 Rainbow Ws2812b LED Stripes mit je 432 LEDs ansteuern. (3Meter mit je 144 Stück)
Also
___________________________________ Stripe1 432LED Chanal1
___________________________________ Stripe2 432LED Chanal2
___________________________________ Stripe3 432LED Chanal3
___________________________________ Stripe4 432LED Chanal4
Ja, das sind eine Menge LEDs, die auch eine Menge Strom benötigen.
Testweise habe ich derzeit 4 Stripes mit nur je 20 LEDs zum Programmieren der Anzeige
Nach meiner Erfahrung speilt es keine Rolle, ob ich erst nur mit 20 LEDs test und dann später auf dei höhere Anzahl anpasse.
Jedoch erhalte ich Leider "Out of SRAM" sobald ich die Anzahl der LEDs über 200 setze.
Das Effektprogramm läuft SOWEIT wie gewünscht.
DETAILS:
Zur Steuerung habe ich mit einem ATMEAG8 angefangen (1K SRAM), da das Ablaufprogramm nicht viel macht, reicht 8K.
Lichteffekt: Es sollen alle LEDs an einem Kanal hochgedimmt werden. Und das der Reihe nach über 4 Kanäle.
Da ich nicht so tief in der Materie stecke, dachte ich das bis 1024 LEDs (Laut Beschreibungen) kein Problem sind.
Nachdem mein mini Programm fertig war, wollte ich die Menge der LEDs erhöhen und erhielt ab 280 Stück "Out of SRAM".
OK - Dachte ich, nehme ich eine µC mit mehr SRAM -> ATMEGA328-PB (sollte 2KB SRAM haben).
Für m ich sehr verwirrend ist jetzt schon bei ca. 150 LEDs Schluß. Jetzt verstehe ich gar nichts mehr
Wer kann mir bitte helfen? Welche Lösungsansätze gibt es?
Danke
tom
Alles anzeigen
ich möchte 4 Rainbow Ws2812b LED Stripes mit je 432 LEDs ansteuern. (3Meter mit je 144 Stück)
Also
___________________________________ Stripe1 432LED Chanal1
___________________________________ Stripe2 432LED Chanal2
___________________________________ Stripe3 432LED Chanal3
___________________________________ Stripe4 432LED Chanal4
Ja, das sind eine Menge LEDs, die auch eine Menge Strom benötigen.
Testweise habe ich derzeit 4 Stripes mit nur je 20 LEDs zum Programmieren der Anzeige
Nach meiner Erfahrung speilt es keine Rolle, ob ich erst nur mit 20 LEDs test und dann später auf dei höhere Anzahl anpasse.
Jedoch erhalte ich Leider "Out of SRAM" sobald ich die Anzahl der LEDs über 200 setze.
Das Effektprogramm läuft SOWEIT wie gewünscht.
DETAILS:
Zur Steuerung habe ich mit einem ATMEAG8 angefangen (1K SRAM), da das Ablaufprogramm nicht viel macht, reicht 8K.
Lichteffekt: Es sollen alle LEDs an einem Kanal hochgedimmt werden. Und das der Reihe nach über 4 Kanäle.
Da ich nicht so tief in der Materie stecke, dachte ich das bis 1024 LEDs (Laut Beschreibungen) kein Problem sind.
Nachdem mein mini Programm fertig war, wollte ich die Menge der LEDs erhöhen und erhielt ab 280 Stück "Out of SRAM".
OK - Dachte ich, nehme ich eine µC mit mehr SRAM -> ATMEGA328-PB (sollte 2KB SRAM haben).
Für m ich sehr verwirrend ist jetzt schon bei ca. 150 LEDs Schluß. Jetzt verstehe ich gar nichts mehr
Wer kann mir bitte helfen? Welche Lösungsansätze gibt es?
Danke
tom
Quellcode
- '(
- Rainbow Test
- 4 Linien mit 3x144LEDs = 432 LEds
- Dimmeffekt Reihe für Reihe
- ')
- $regfile = "M328def.dat" ' "M8adef.dat" '"attiny88.dat" ' "M328def.dat" ' "M8adef.dat"
- $crystal = 8000000 'Mini-Atmega 4-Platine (mit LCD)
- $hwstack = 32 ' 32
- $swstack = 32 ' 32
- $framesize = 32 ' 40
- ' Baud = 9600
- ' Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
- ' Port Config -------
- Ddrb = &B1011_1000 ' 0= input / 1= output - data direction register
- Portb = &B0000_0111 ' Pullup einschalten = 1 - nur bei IN
- Ddrc = &B0011_1111 ' 0= input / 1= output - data direction register
- Portc = &B0011_0000 ' Pullup einschalten = 1 - nur bei IN
- Ddrd = &B1111_1111 ' 0= input / 1= output - data direction register
- Portd = &B0000_0000 ' Pullup einschalten = 1 - nur bei IN
- '=========================================================================================
- ' Hardware
- '=========================================================================================
- ' - Relais von oben nach unten --
- Relais1 alias portd.1
- ' Relais2 alias portd.0
- ' Relais3 alias portd.2
- ' Relais4 alias portd.3
- LED1 alias portD.0
- LED2 alias portD.1
- ' LED3 alias portD.2
- ' LED4 alias portD.3
- ' rainbow1 alias C0
- ' rainbow2 alias C1
- ' rainbow3 alias C2
- ' rainbow4 alias C3
- 'CONST
- const numLeds=161 ' max 280 at8 - max 161 at328 - 'soll 432
- const max_Helligkeit = 255
- const speed = 2
- Config RAINBOW=4, RB0_LEN=numLeds, RB0_PORT=PORTc,rb0_pin=3, RB1_LEN=numLeds, RB1_PORT=PORTc, RB1_pin=2, RB2_LEN=numLeds, RB2_PORT=PORTc,rb2_pin=1, RB3_LEN=numLeds, RB3_PORT=PORTc,rb3_pin=0
- 'Global Color-variables
- Dim Color(3) as Byte
- R alias Color(_base) : G alias Color(_base + 1) : B alias Color(_base + 2)
- '----[MAIN]---------------------------------------------------------------------
- Dim n as Byte
- dim ch as integer
- Do
- ' alle LEDs aus
- RB_SelectChannel 0 ' select first channel
- R = 0 : G = 0 : B = 0 ' define a color
- RB_FillColors Color()
- RB_Send
- RB_SelectChannel 1 ' select channel
- R = 0 : G = 0 : B = 0 ' define a color
- RB_FillColors Color()
- RB_Send
- RB_SelectChannel 2 ' select channel
- R = 0 : G = 0 : B = 0 ' define a color
- RB_FillColors Color()
- RB_Send
- RB_SelectChannel 3 ' select channel
- R = 0 : G = 0 : B = 0 ' define a color
- RB_FillColors Color()
- RB_Send
- waitms 100
- for b = 1 to max_Helligkeit
- RB_SelectChannel 0 ' select first channel
- RB_FillColors Color()
- RB_Send
- waitms speed
- next
- for b = 1 to max_Helligkeit
- RB_SelectChannel 1 ' select first channel
- RB_FillColors Color()
- RB_Send
- waitms speed
- next
- for b = 1 to max_Helligkeit
- RB_SelectChannel 2 ' select first channel
- RB_FillColors Color()
- RB_Send
- waitms speed
- next
- for b = 1 to max_Helligkeit
- RB_SelectChannel 3 ' select first channel
- RB_FillColors Color()
- RB_Send
- waitms speed
- next
- waitms 3000
- Loop
- end