marco_58 ha scritto:
...quanti indirizzi di loco accessori si riesce ad inserire nel buffer di comando...
Dipende da come vuoi impostare il progetto.
La programmazione in C, anche se "esemplificato" come nel caso di Arduino, è piuttosto ostica e inoltre l'hardware Arduino di per se stesso non ti permette di avere memoria e risorse a sufficienza per fare sistemi molto complessi.
Alla luce di questo, io, per esempio, ho relegato alla scheda Arduino (sia Uno che Due) la sola funzione di generazione del segnale PWM modulato, ovvero, "solo" queste funzioni:
1. Generazione dell' "1" logico (58 us) e "0" logico (116 us) mediante timer con clock di base a 16MHz per Arduino Uno e 42MHz per Arduino Due.
2. Generazione dei pacchetti di domando per i decoder (preambolo, indirizzo, comando e controllo).
3. Controllo del loop principale di invio pacchetti ai binari, tipicamente un comando "idle" continuo "perturbato" dai pacchetti di comando F0...F27 e lettura CV.
4. Gestione dell'interfaccia USB con Baud Rate 115200 verso un dispositivo esterno (PC Windows o MAC o altro)
Queste quattro funzioni generano praticamente il segnale DCC "semplice e puro".
Il lavoro più complesso è affidato al dispositivo collegato all'altro capo della porta USB che può essere ciò che si vuole.
Questo almeno è ciò che ho realizzato io ed è in opera in due esemplari (sul plastico e in laboratorio) dal 2013 con un funzionamento impeccabile.
Nel dettaglio, la parte più complessa, cioè quella che gira all'altro capo del cavo USB, io l'ho realizzata con il LabView, ma da li in poi Arduino non c'entra più nulla.