Эффекты для светодиодной ленты. Нехватка памяти

lazyleo

✩✩✩✩✩✩✩
6 Окт 2019
4
0
Приветствую.
Хочу сделать себе подсветку с помощью управялемой светодиодной ленты.
Делаю все по следующей инструкции - https://alexgyver.ru/ws2812b-fx/
При компиляции прошивки столкнулся с проблемой. Когда я указываю количество светодиодов, больше, чем было задано в прошивке, то ардуине не хватает памяти. По предварительным прикидкам будет около 240 светодиодов. Использую Arduino Nano. Пробовал Arduino Uno - эффект тот же, я так понимаю, что отличаются они только размерами.
Arduino: 1.8.10 (Windows 10), Board: "Arduino Nano, ATmega328P"

In file included from C:\AG\WS2812_FX_fixed\WS2812_FX_fixed.ino:8:0:

C:\Users\denis\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002

# pragma message "FastLED version 3.003.002"

^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:\AG\WS2812_FX_fixed\LED_EFFECT_FUNCTIONS.ino: In function 'CenterToOutside.constprop':

C:\AG\WS2812_FX_fixed\UTILITY_FXNS.ino:64:17: warning: iteration 116 invokes undefined behavior [-Waggressive-loop-optimizations]

leds[Pixel].r = red;

^

C:\AG\WS2812_FX_fixed\LED_EFFECT_FUNCTIONS.ino:908:47: note: within this loop

for (int i = ((LED_COUNT - EyeSize) / 2); i >= 0; i--) {

^


Sketch uses 19940 bytes (64%) of program storage space. Maximum is 30720 bytes.
Global variables use 2705 bytes (132%) of dynamic memory, leaving -657 bytes for local variables. Maximum is 2048 bytes.
Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing your footprint.
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Кто-то с таким сталкивался?
Можно как то побороть?

UPD: Ардуинки с контроллером Атмега 328p
 
Изменено:

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
207
Пройдись по глобальным переменным, оцени, сколько занимает каждая. Посмотри, зачем нужны самые крупные из них, можно ли от них избавиться.
 

Pashysh

✩✩✩✩✩✩✩
14 Дек 2019
1
0
Добрый день, такая же ошибка не могу решить, можете подсказать как решить?
 

Empirius

✩✩✩✩✩✩✩
16 Дек 2019
5
0
Добрый день, такая же ошибка не могу решить, можете подсказать как решить?
Если без замены на другую ардуину - нужна оптимизация кода с точки зрения переменных. Каждая из них занимает определённый объём памяти устройства. А объём ограничен.
Или перейти на другую платформу - здесь есть над чем подумать, но "на Ардуино свет клином не сошёлся"©.
Удачи, не бойтесь узнавать новое и открывать неизведанное! Там много чего! ;)
 

Ivan_do

✩✩✩✩✩✩✩
3 Окт 2020
1
0
Может ктото подсказать, как оптимизировать код с этого проекта под 300 диодов, чтобы влезло в NANO?
 

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
207
Может ктото подсказать, как оптимизировать код с этого проекта под 300 диодов, чтобы влезло в NANO?
Там только выкидывать эффекты, которым нужна дополнительная память. Иначе, хочешь не хочешь нужно по 7 байт на пиксель, 300 никак не влезут.

Хотя... сам написал, сам понял, как 1 байт на пиксель оптимизировать. Правда 300 всё равно не влезут
 
Изменено: