Estoy haciendo un globo POV RGB LED que reproduce animaciones en su superficie. Actualmente estoy usando un Arduino Mega 2560 con 256k de memoria Flash. Mi programa y el cargador de arranque ocupan 20k de memoria, dejándome con 236k.
Hay 64 LED RGB que usan 8 bits de brillo que cambian de color 64 veces por revolución. $ \ left (64 \ cdot 64 \ cdot 3 \ cdot 8 \ right) \ div 1024 = 12 \ mbox {kB} $ == 12288 BYTES
Cada cuadro de animación ocupa 12288 BYTES (12k) de memoria. Eso solo me deja con 19 cuadros de animación. Bueno, pero no genial, a 10 cuadros por segundo, eso es solo 2 segundos de animaciones. Esperaba ~ 64 cuadros de animación o 768k RAM. (768 + 20 = 788k en total)
He intentado algunas cargas 'al vuelo' y métodos de vaporización (SD, Wireless) pero no pueden mantenerse al día con los datos requeridos mientras se transmiten los datos a los LED. A continuación, intentaré usar un método de compresión simple, pero no tengo muchas esperanzas de que el sistema pueda descomprimir los datos mientras se difunde la información de color a los LED.
Actualmente, he probado 10 cuadros de animación con Arduino Mega 2560 y funciona. Tipo de, todavía hay algunos errores. Pero realmente no quiero apagar una placa Arduino si puedo evitarlo.
Mis preguntas son:
- ¿Hay tableros Arduino prefabricados con más ram?
- ¿Puedo agregar RAM a una placa Arduino existente?
- Sugiera una placa de Dev diferente que sea MUY similar a Arduino con un compilador de c ++.
Gracias por tu tiempo.
Editar: Estoy utilizando la palabra clave "PROGMEM" para almacenar mis animaciones en la memoria Flash, no en la SRAM. enlace