Arduino'da Hafıza Çeşitleri
Arduino’larda 3 hafıza havuzu bulunur:
Flash: Arduino programlarının bulunduğu bölümdür.
SRAM (static random access memory): Program çalıştığında değişkenleri yarattığı ve gerektiğinde değerlerini değiştirdi bölümdür.
EEPROM: Programcının uzun dönemli değişkenleri sakladığı bölümdür.
Flash ve EEPROM bölümleri geçici değildir ve buralarda saklanan veriler güç kesildiğinde silinmez. SRAM bölümünde saklanan veriler güç kesildiğinde silinir.
ATmega168 yongasında bu hafıza bölümlerinin boyutları aşağıdaki gibidir:
Flash: 16kB (2kB kadarını bootloader kullanır)
SRAM: 1024 Byte
EEPROM: 512 Byte
Burada dikkat etmeniz gereken husus SRAM belliğin fazla olmamasıdır. Eğer yazdığınız programda ekranda görüntülenecek yazılar gibi fazla değişkeniniz varsa 1024 Byte çabuk dolacaktır. Yazığınız program Arduino’nuza başarılı bir şekilde yüklenebilir, fakat daha sonra programın istediğiniz gibi çalışmadığını gözlemleyebilirsiniz.
SRAM belliğin yetmemesi durumunda şunları uygulayabilirsiniz:
- Yazdığınız programda Arduino’nuz bilgisayarla iletişim halinde ise, hesaplamaları ve yer kaplayan fazladan datayı bilgisayarınızda bulundurabilirsiniz. Bu sayede Arduino’nun yükünü hafifletmiş olursunuz.
- Tablo veya uzun dizileriniz varsa yapabiliyorsanız en küçük veri yapısını kullanın. Örneğin bir int 2 byte yer kaplar, byte tipi ise adı gibi 1 byte yer kaplar.
- Eğer programınız çalışırken değişkenlerinizi değiştirmiyorsa (örneğin LCD’de gösterilecek metinler) değişkenlerinizi SRAM yerinde EEPROM’da tutabilirsiniz.