mi servirebbe un pin in più!

Se usa l'I2C non può usare A4 e A5 come ingressi/uscite analogici o digitali.

Usa uno shift register per il display lcd così usi solo 3 pin al posto di 6.
Lo stesso discorso vale per i relè, dato che ne hai 5 se li colleghi diretti useresti 5 pin mentre con un altro shift register ti basterebbero solo 3 pin.
Con questa soluzione con solo 6 pin controlli sia il display sia i relè...
Inoltre se al posto degli LM35 metti dei DS18B20 puoi collegarli tutti su un unico pin digitale.
Basta così? :wink:

Ho dimenticato di scrivere che il tutto verrà prototipizzato su una pcb, compreso l'atmega e quindi i pin TX e RX li vorrei lasciare per programmare. E multiplexare gli LM35? Tanto rilevare la temperatura di ogni sensore ogni 5 secondi sarebbe più che sufficiente veloce

vitoos:
Ho dimenticato di scrivere che il tutto verrà prototipizzato su una pcb, compreso l'atmega e quindi i pin TX e RX li vorrei lasciare per programmare.

Con la soluzione che ti ho proposto non perdi la programmabilità della scheda tramite seriale, in alternativa puoi collegare i quattro pulsanti su A5 in modo analogico creando un partitore variabile, quando premi un pulsante hai una tensione diversa abbinato allo stesso e in questo modo li puoi distinguere.

Certamente NON può usare l'LCD su I2C; visto che occupa A4 e A5 non avrebbe sufficienti pin analogici per gli LM35.
Usandolo a 4 bit prende 6pin (diciamo dal 2 al 7)
i relé li pilota dall'8 al 12
gli LM35 da A0 a A4
restano liberi solo il 13 ed A5 e ovviamente i pin della seriale, che non deve toccare per semplificarsi la vita futura
Non c'è altra soluzione, se non vuole aggiungere/sostituire componenti, che creare un partitore resistivo con 4 resistenze da 3k3 in serie tra loro tra 5V e GND, come PENSO stiano suggerendo Niki e Astro, uno schema del genere potrebbe funzionare?

4 pulsanti su A5.png

Meglio mettere anche una resistenza di pulldown su A5

Mi sembra che questo problema sia stato già affrontato concludendo che era difficile discriminare la pressione contemporanea di pù pulsanti. O sbaglio?

Basta metterli distanti 3 metri uno dall'altro e il problema non si pone :stuck_out_tongue_closed_eyes:

PaoloP:
Mi sembra che questo problema sia stato già affrontato concludendo che era difficile discriminare la pressione contemporanea di pù pulsanti.

Se sfrutti un ladder R/2R ottieni un semplice DAC a quatto bit che ti permette di sapere quali tasti sono premuti simultaneamente in base alla tensione in ingresso al ADC.

ma l'idea è quella di usare un pulsante per volta, immagino gli serva per muoversi sul menu....
Comunque le R andrebbero da 1-2-4-8 K (relativi valori commerciali)?
Concordo poi con BUD sulla necessità di una pull-down, ma verrebbe a trovarsi in parallelo a quelle "sotto" il pulsante premuto, a questo punto forse conviene lavorare in parallelo e non in serie, tra poco posto lo schema che ho in mente....

Io ho un vecchio shield Nuelectronics con un minijoystick a 4 vie più pulsante (pressione dello stesso joystick) letto da un'unica porta analogica, con 5 resistenze.
Ecco lo schemino dello shield, al centro c'è il joystick con le sue R
http://www.nuelectronics.com/download/projects/Nokia_3310_lcd.pdf

non ho visto lo schema di Leo, intanto pubblico cosa ho pensato, poi commentiamo

EDIT: mi sembrano simili, eccetto il fatto che io uso la pull-down e quello schema la pull-up, lì ci sono valori più bassi ma non ne vedo la necessità; forse l'ho azzeccata :sweat_smile:

EDIT 2: ho modificato i valori delle R in modo che non sia possibile una sovrapposizione di valori premendo più tasti in contemporanea, in tal modo è possibile gestire via software qualsiasi combinazione di tasti.

4 pulsanti su A5_2.png

Lo schema del mitico Menn è proprio quello che intendevo.
Semplice ed economico.
Non penso che al nostro amico serva di premere simultaneamente i pulsanti.

Grazie della conferma Niki, in realtà dovevo calcolare le R come suggeriva Astro, in tal modo ogni combinazione di due o tre tasti non genererebbe mai una configurazione di un tasto solo. P.es. 1k - 2k2 - 4k7 - 10k.
Se nessuno trova obiezioni modifico lo schema precedente ad uso e consumo del Forum.

io ho usato uno schema simile...simile perchè le resistenze che ho usato non erano 2-4-8 eccetera ma tutte da 1k...(tranne quella di 0 mi pare) in ogni caso il concetto sarebbe similare (se trascuriamo la mia non possibilita di gestire doppie pressioni)...
Il problema che ho riscontrato è che la mia tastiera era (come succede frequentemente) a membrana con la gomma conduttiva a fare da contatto ...ed evidentemente non fa esattamente ed immediatamente un contatto esattamente a 0 ohm il che si traduce in valori abbastanza ampi dell'analogica... anche talune sovrapposizioni... 4 tasti in tutto ho...
Le "medie" come spesso si fa su letture analogiche su queste letture sono un po' complesse perchè bisogna escludere lo 0 e ci sono grossi problemi con la doppia pressione del tasto.
Detto questo alla fine l'ho fatto e grossomodo funziona come metodo... però consiglierei un tasto "decente" e "pochi tasti".

se hai usato R tutte uguali devi aver realizzato lo schema che ho pubblicato nella prima pagina; quest'ultimo non funzionerebbe mai con le R tutte uguali.

Chiaramente piu stai lontano con i valori resistivi meglio vai ed il fatto di averli in "potenza" di 2 ti da un vantaggio. però volevo far notare questa cosa della membrana dei tasti.

premere più di un tasto a me non serve dato che i tasti li chiamerò "su" "giu" "enter" e "return" quindi quello schema andrebbe bene. Però ho letto l'altro topic del LM35 con 10metri di filo e mi ha fatto un po pensare sui disturbi dato che anche io dovrei fare una cosa del genere, forse non 10metri ma 6 o 7 si e per ogni sensore. vedo un po come si evolve la situazione li e se vedo che la cosa si fa critica mi sa che mi tocca pensare a quelli digitali, cioè i ds18b20. con i digitali potrei fare 5 digitali per i relè + 5 per i sensori e tx e rx per la programmazione, poi A4 e A5 per l'i2c e un altro pin per i 4 bottoni per il menù, anzi potrei fare anche un pin analogico per ogni bottone

No, i DS18B20 li puoi attaccare tutti su uno stesso pin. Basta che abbiano gli indirizzi logici diversi.

vitoos:
premere più di un tasto a me non serve dato che i tasti li chiamerò "su" "giu" "enter" e "return" quindi quello schema andrebbe bene. Però ho letto l'altro topic del LM35 con 10metri di filo e mi ha fatto un po pensare sui disturbi dato che anche io dovrei fare una cosa del genere, forse non 10metri ma 6 o 7 si e per ogni sensore. vedo un po come si evolve la situazione li e se vedo che la cosa si fa critica mi sa che mi tocca pensare a quelli digitali, cioè i ds18b20. con i digitali potrei fare 5 digitali per i relè + 5 per i sensori e tx e rx per la programmazione, poi A4 e A5 per l'i2c e un altro pin per i 4 bottoni per il menù, anzi potrei fare anche un pin analogico per ogni bottone

la situazione lì, come avrai visto, la sto seguendo io molto da vicino; purtroppo gli impegni di Alberto ci impediscono di procedere celermente altrimenti avremmo già finito; se leggi con attenzione siamo abbastanza ottimisti e l'unica prova apparsa sul ds18b20 non è che abbia entusiasmato molto chi l'ha eseguita.
Comunque sulla carta il ds18b20 dovrebbe essere migliore (anche abbastanza più costoso) dell'LM35, e certamente con un solo pin puoi collegarne quanti ne vuoi in quanto ognuno è identificato da un codice univoco a 64bit; non so però se sono stati fatti test sulla distanza, però penso che il fatto che siano digitali dovrebbe aiutare.