@gpb01
ecco qui un'immagine più ingrandinta dei collegamenti ai pin
A3; A2; A1 sono le righe della mia matrix
A0; 13; 12; 11; 10; 9 ;8; 7; 6; 5 sono le mie colonne
Li ho collegati semplicemente andando in ordine, prima righe e poi colonne, partendo da A3 e andando in senso antiorario (nell'immagine). Va per caso rispettato un ordine ben preciso?
Gli interruttori sono collegati (partendo da in alto a sinistra e poi scendendo da sinistra a destra):
- blu e arancione (A1 / A0)
- ciano arancione (A2 / A0)
- ciano viola (A2 / 13)
- ciano giallo (A2 / 12)
- ciano rosa (A2 / 11)
- ciano marrone (A2 / 10)
Ad ogni interruttore ho inserito un diodo in corrispondenza del collegamento con la riga per evitare problemi di ghosting nel caso vengano premuti altri pulsanti sulla stessa riga/colonna.
é una button box che si interfaccia con un simulatore di guida e i comandi possono servire per:
abilitare / disabilitare una funzione (esempio: accendere spegnere le luci, cambiare vista)
oppure per aumentare e diminuire un parametro (esempio: aumentare la forza dell'abs oppure un altro tasto per diminuire la forza dell'abs)
Tutti i comandi sono letti dal gioco come dei semplici pulsanti (come se venissero premuti da tastiera) quindi nel caso delle luci, alla prima pressione si accendono, alla successiva pressione si spengono.
Tuttavia, per una migliore fedeltà, per quei comandi che rimangono stazionari, ho voluto inserire degli interruttori che comandano:
Accensione batteria
Accensione luci
Accensione luce posteriore pioggia etc. etc.
Per ovviare al problema di tenere il contatto continuamente chiuso (quindi come se il pulsante fosse continuamente premuto), all'interno del software mmjoy2 ho impostato un tempo di 200ms dopo il quale il comando inviato con l'interruttore viene stoppato e alla disattivazione dell'interrutore viene dato un altro segnale uguale (comando ON-ON) in questo modo la prima volta che premo l'interruttore delle luci mi si accendono le luci della macchina, dopo 200ms il segnale "svanisce" ma in gioco non si spengono e io ho visivamente l'interruttore su ON, quando le devo spegnere, schiaccio l'interrutore dal lato opposto portandolo su OFF ma la scheda lo legge come un secondo comando ON difatto spegnendo le luci nel gioco.
Sempre al fine della fedeltà e di un migliore feedback visivo volevo aggiungere dei led, in modo che fosse chiaro che quel determinato interrutore è attivato (o spento, e quindi con il led che si accende quando l'interruttore viene posizionato su ON e che si spengne quando viene posizionato su OFF)
Inizialmente ho pensato di collegare il led all'interrutore, in modo che venga alimentato solo quando il circuito si chiude e quindi l'interruttore è su ON (vedi immagine sopra) collegando il catodo al GND della scheda e l'anodo dopo resistenza di 220ohm al pin dell'interruttore.
Tuttavia la luce emessa dal led è bassisima, si vede un micro pallino luminoso (solo sul led trasparente, su quelli coloranti non si riesce nemmeno a vedere), come dicevi tu "il led non si illuminerà a sufficienza"
non ho ben capito la frase:
Citazione ogni pin di Arduino può dare al massimo, a Vcc, 40 mA
Ho letto che Vcc è 5v 40mA, cosa intendi con "ogni pin a Vcc" ? Nel senso che Vcc può essere collegata ai pin ? (tenendo in considerazione di non eccedere con i 20mA)
A seguito del problema della scarsa illuminazione, ho pensato che l'anodo del led debba essere alimentato a Vcc, e il catodo collegato al pin dell'interrutore, ma ho paura che in questo modo vengano difatto collegati Vcc e i pin della scheda (A0; 13; 12 etc) andando a bruciare la scheda (?) - per questo motivo ho voluto scrivere qui, non avendo sufficiente conoscenza, prima di fare qualche boiata...
@Datman non essendo praticabile questa configurazione, esiste un altro metodo tale per cui possa avere l'accensione di un led a seguito della posizione "ON" di un interruttore all'interno della matrix?