Salve a tutti,
[OT]PICCOLA PREMESSA:
sto per iniziare un altro di quei quesiti per i quali a volte metto in discussione la mia integrità mentale.
Perchè ragionando ho già vagliato le diverse soluzioni alla mia portata e mi sembra tanto uno di quei casi in cui si vuole la botte piena e la moglie ubriaca.
Ma confidando nello spirito che contraddistingue questo forum, provo comunque, fosse mai che esiste una via che non conosco...
FINE PREMESSA
[/OT]
I fatti:
ho iniziato a lavorare con un Arduino MEGA e un lcd 20x4 "normale" e sono alcuni anni che con soddisfazione porto avanti piccoli progetti.
Ora da un po' di tempo ho iniziato a lavorare con arduino pro e mini, e sono passato per comodità agli LCD I2c per risparmiare pin.
La settimana scorsa ho ripreso un vecchio progetto in cui ho 8 piezo buzzer collegati ai pin A0-A7 della mega, 16 led (8 verdi e 8 rossi) che sono collegati a 2 integrati 74hc595 (3 pin), uno scermo lcd "classico" (6 pin), un piezo canonico come segnalatore acustico (1 pin) e un keypad 4x4 (8 pin) tutto perfettamente funzionante.
Totale 8 ingressi analogici + 18 digitali
Nel rivedere il progetto volevo sostituire la mega con una shield più piccola (pro o mini) e l'LCD con uno i2c...
Ecco il problema: sia la mini che la pro per l'i2c utilizzano A4 e A5 che sono impegnate dai piezo.
Le alternative pensate:
1)Uso una shield piccola ma devo modificare il progetto per usare lcd classico e sostituire il keypad usando 3 pulsanti (avanti, indietro e ENTER): mi tocca modificare un po' di funzioni ma è fattibile...
2)uso la MEGA e sostituisco solo LCD per una semplicità nei collegamenti (è la peggiore perchè in pratica non cambia nulla.
3)Ho provato (anche se in maniera molto superficiale) a leggere alcuni articoli sull'uso di un terzo 74hc595 per gestire l'LCD ma non ho compreso se questa scelta comporti problemi con gli altri due e soprattutto non mi fa piacere dover abbandonare la LiquidCrystal
4)Potrei (ma è proprio l'ultima spiaggia) "sacrificare" due piezo e rimappare gli ingressi usando solo quelli A0-A3 e A6-A7
Questo è quanto mi è passato per il cervello...per cui hiedo consiglio a voi.
Ritenete ci siano altre strade percorribili?
Grazie anticipatamente.
E usare un multiplexer analogico per leggere i piezo con meno pin? Ad esempio puoi usare un CD4053, con A0 come unico pin analogico e A1/2/3 come pin (digitali) per l'indirizzo. In questo modo puoi leggere 8 piezo.
Dipende però dalle tempistiche con cui devi leggerli, visto che ogni volta dovrai prima selezionare il canale del multiplexer, poi leggere. È un centralina per batteria elettronica? 
Nuova risposta:
Grazie mille, ho fatto confusione tra 4021 e 4051.
Apprendo ora di tale famiglia di integrati (4051-4053)
Li proverò sicuramente.
Grazie.
Lascio la mia risposta originaria:*********
ciao,
innanzitutto grazie per la risposta.
Ho lavorato con shift register sia in che out. Conosco infatto i cd4051.
Ammettendo la mia ignoranza, non sapevo che esistessero anche analogici.
Darò subito un occhiata al datasheet del 4053.
Se funziona come penso, effettivamente potrebbe fare al caso mio.
Intravedo una luce.... 
AL MOMENTO nel mio codice estratto un numero random e verifico se su quel pin ricevo un valore positivo maggiore della soglia minima entro un lasso di tempo preimpostato.
Quindi dovrebbe funzionare.
Non è una batteria elettronica ma un giochino tipo quei martelli che devono colpire le marmotte che si trovano nei lunapark...
ADD-ON:
In verità oggi non verifica se invece del pad estratto viene colpito un pad diverso.
Immagino che per fare una cosa del genere dovrei fare un ciclo di verifica su ogni pad con un FOR...
dovrò verificare se i tempi di latenza del cd4053 consentono di fare l'intero ciclo prima che un eventuale segnale si attenui....Proverò!!!
Grazie per la segnalazione in ogni caso.
Ancora una volta il forum mi è stato fondamentale per aprire le mie conoscenze.
...cancellato perchè errato...
ummm.....sto leggendo il datasheet della famiglia 51/53
e ho trovato questo....
http://playground.arduino.cc/learning/4051
mi chiedo se forse non faccia al caso mio proprio il 51 e non il 53
Sì, ho fatto confusione: quello che volevo consigliarti era il 4051 :-[.
Se può esserti utile, qua trovi anche una mia libreria per pilotarlo comodamente: GitHub - SukkoPera/Arduplex: A library that allows interfacing Arduino with various de/multiplexers
figurati....
Come sempre l'appetito vien mangiando.
E avendo scoperto questo fantastico integrato e data un occhiata alla tua libreria mi sorgono altre 2 domande.
1)Ho visto che nella libreria si citava anche un cd4097 con 4 bit di codifica. E' un multiplexer al pari del 51 ma con 16 porte? Se così fosse sarebbe fantastico dandomi la possibilità (sempre che la velocità mi permetta di fare quello che voglio) di ampliare da 8 a 16 i miei input analogici.
2)Ho dato una lettura al multiplexer.h e all'example
Ho visto la dichiarazione dell'oggetto ma non capisco come dialogare col pin.
Semplicemente dato X il pin di IN/OUT posso utilizzare le classiche funzioni di read e write?
Quindi immaginiamo che voglia mettere ad HIGH il pin 7 del cd4051
farò qualkosa come
multiplexer.select(7);
LED_PIN.digitalwrite(HIGH); //dove LED_PIN è il pin di arduino collegato al 4051 per IN/OUT
mi riservo correzioni quando mi arriverà il 4051
Grazie x il momento...
partito un 9 invece del 6 sul tastierino.... 