Hey all, My first project stepping outside of tutorials, I want to build a toy that generates a random movie quote each time the button is pressed. I've built a working prototype based on the sample code p11_CrystalBall, but I'm not sure what my limitations are in terms of the number of quotes I can write into a single piece of code due to the Uno's memory. TL;DR How do I find memory limitations, and how do I work around them/expand them? Thanks!
Take a look at progmem - you can store your quotes in flash.
If you use PROGMEM the Arduino IDE will tell you how much memory you have used and how much you have left in the black console window at the bottom of the Arduino IDE window after compiling:
Sketch uses 4184 bytes (14%) of program storage space. Maximum is 28672 bytes.
If that's not enough memory for you then adding an SD card is another option.
I'm sure flash has enough storage for movie quotes - they tend to be pithy. The catch is that variable length strings need some special handling.
Difficult to say.
Have you a list of the quotes?
Only ~30KB to play with it seems...
Assuming that a word is average 5 bytes (google it...5.1) and spaces/symbol are half the number of "words", then each word is about 6bytes. I.e. Word_Word_Word_Word_.
30,000 / 6B = 5000 words.
Quote = 20 words ish? Can't really find data on this
250 quotes give or take.
Text or audio?
Audio takes a lot more space and you'll need external memory. The amount of memory for audio depends on the quality and format There are MP3 shields with SDcard slots that that will store and play files. The Arduino just tells the shield what file/clip to play and the shield takes care of the rest.