Criando Bibliotecas para Arduino

Permita-me ser o advogado do diabo aqui. Não quero te desanimar: a idéia é boa, mas no mundo dos microcontroladores acho que não é boa idéia termos abstrações demais.

Apesar da linguagem ser OOP, nem sempre usar OOP vale a pena, pois quanto mais OOP se tem, maior e mais lento será o código final. Todas as abstrações de sua classe viram códigos e consomem não apenas bytes importantes na memória flash do uC, mas também ciclos de clock.

Existem uma corrente, um movimento que está até pensando em abolir coisas como "pinMode", afim de fazer a manipulação direta da direção de cada porta (PORTA, PORTB, DDRD, etc). Isto economiza muitos e muitos bytes em uma RAM.

A memória flash de nosso querido Atmega328 não é expansível, e os sketches estão ficando cada vez mais criativos, maiores e mais complexos. Por isto muita gente - eu entre eles - tem tentado achar formas de economizar bytes em um sketch compilado. Eu, recentemente, dei pulos de alegria quando pude ver que meu sketch compilou com 98 bytes a menos devido a algumas alterações como manipulação direta de porta. Tudo que era constante já estava na SRAM.