Magari lo saprete anche, ma si risparmiano diverse centinaia di byte usando gli accessi diretti ai registri di sistema al posto delle digitalWrite e delle digitalRead. Per le letture analogiche c'è la possibilità di fare altrettanto, anche se è un pò più complesso che nel precedente caso.
io farei così
un file config.h con dentro le impostazioni dei pin (valori a caso)
#if defined(__AVR_ATmega8__)|| defined(__AVR_ATmega128__)
const int pinInput1 = 10;
const int pinInputSCL = A5;
const int pinInputSDA = A6;
#else
// here if not ATmega8 or ATmega128
const int pinInput1 = 21;
const int pinInputSCL = A0;
const int pinInputSDA = A1;
#endif
ovviamente tutti i pin usati devono essere mappati quì dentro, questo ovviamente è possibile solo se tutte le board eseguono lo stesso codice, e quindi hanno le stesse capacità hardware, solo che è su pin differtenti.
Belle dritte, grazie a tutti e due, approfondirò meglio...
Vi va, senza impegno naturalmente, di dare un'occhiata al volo alla libreria che abbiamo scritto io e Leouz almeno per qualche consiglio su come è stata impostata?
http://forum.arduino.cc/index.php?topic=198456.0La metto in allegato anche qui.
Grazie in anticipo

@ Leo72
OT Leggo spesso i tuoi articoli, imparo molto da te grazie per gli insegnamenti e per quel pizzico di allegria che mi hai regalato con l'articolo sulla sindrome di Gundam XD XD XD mi ci sono riconosciuto in pieno, almeno per come ho iniziato un paio di anni fa...

Poi però mi sono messo sotto con risultati non proprio eccellentissimi, ma tant'é a piccoli passi piano piano arrivo pure io
al posto della tua piastra con i rele si potrebbe utilizzare questa...
http://www.ebay.it/itm/8-Channel-12V-Relay-Shield-Module-for-Arduino-ARM-PIC-AVR-DSP-SRD-12VDC-SL-C-New-/350816995356?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item51ae52881c&_uhb=1
Dovrebbe andare bene, in uscita dall'IC inveter (74HC540N) da data sheet abbiamo +/- 35mA sufficienti a pilotare i singoli relé.
Ciao a tutti.
Riccardo