Presentazione progetto e primi dubbi

La tua soluzione indubbiamente è molto interessante... Vorrei però utilizzare alcuni componenti che ho già in casa, ed in particolare un paio di AD5206 (digital pot) e di MCP23S17 (expander) Sono entrambi su bus SPI e, visto che me ne serviranno due di entrambi avrei pensato di sfruttare ciò che ho in casa e risparmiare qualche buon euro. Cambierebbe qualcosa nelle modalità di comunicazione? Non conosco bene SPI e I2C.
Come display ne ho uno della nuelectronics che ho comprato sull'onda dell'entusiasmo (come quello del link youtube che ho messo sotto, non riesco a linkare direttamente il sito perchè è offline!)... E' molto bello ma occupa tutta la fila di i/o dal 22 al 53, quindi limita la quantità di pin disponibili. Proprio per questo avevo pensato agli expander.

Come gestione delle schede avevo già pensato ad una suddivisione con l'utilizzo di un unico gestore centrale (appunto l'arduino mega) e varie periferiche:

  • una scheda con il circuto di debounce, dove ognuno dei pulsanti è collegato direttamente su un ingresso digitale (per il debouncing posso usare un integrato dedicato, ed eventualmente potrei sfruttare i 6 interrupt del mega per i pulsanti che richiedono una rapidità di risposta maggiore)
  • una scheda con i relè collegati alle uscite di un expander, in modo che con il bus SPI ed una linea di attivazione gestisco tutta la catena di relè. Questo sarebbe il primo attivato alla pressione di un tasto
  • un'altra scheda per i potenziometri digitali, sempre su bus SPI, il cui aggiornamento del valore sarebbe meno prioritario dell'attivazione dei relay
  • un'ultima scheda con il secondo expander per i led di segnalazione, stessa logica di sopra ma ancora meno prioritario
  • Infine il display, il meno prioritario di tutti, che potrei aggiornare tranquillamente alla fine di tutte le altre operazioni
    In questo modo da un veloce calcolo dovrei avere a disposizione porte sufficienti per le varie linee di slave select e per tutti i pulsanti da collegare direttamente ad arduino.

Per quanto riguarda la parte software ho già messo in conto di partire da una cosa molto basilare, del tipo: alla pressione di un tasto attivo una serie di relè e una serie di led, se ri-premuto li disattivo. Poi potrei aggiungere la regolazione dei pot digitali (ad esempio alla pressione di un altro tasto aumento il valore di un potenziometro che mi intensifica un certo effetto). Infine aggiungerei le funzionalità del display.

Il display mi servirebbe essenzialmente per programmare alcune funzioni senza ricorrere al PC, ad esempio decidere quali relay attivare alla pressione di un tasto, modificare manualmente il valore di un pot.digitale e cose simili