Programmazione orientata agli oggetti con Arduino

MauroTec:
Dai commenti sembra che il C++ sia il male assoluto,

Sulle piccole mcu lo è, ti faccio un banale esempio che dovrebbe chiarire il concetto, se realizzo un programma in ANSI C quando lo compilo so sempre esattamente quanta memoria ram utilizza, se lo fai in C++ non puoi mai saperlo con precisione, sai solo l'impegno "statico", quello dinamico potrebbe facilmente andare oltre la ram disponibile con tutte le conseguenze del caso.
E' vero che la digitalwrite() è una funzione e non una classe, però è scritta male ed è per questo che è molto lenta, invece di un singolo ciclo macchina richiede come minimo oltre 50 cicli macchina.