Pages: [1] 2 3   Go Down
Author Topic: mi servirebbe un pin in più!  (Read 1848 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vi illustro il mio progetto. Vorrei realizzare un termocontrollore con Arduino uno che legga 5 sensori di temperatura LM35, che visualizzi tutte e 5 le temperature su un display LCD, che ci sia un menù per modificare le 5 soglie di temperatura per aprire e chiudere 5 relè. Facendo i calcoli mi manca un pin analogico collegando LCD con l'i2c e più di uno collegando LCD direttamente ai pin digitali, avete idee a riguardo per recuperare qualche pin? Io avevo pensato per gestire il menú di usare 4 pulsanti da collegare a 4 pin digitali
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9633
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Complessivamente Arduino dispone di 20 pin di cui 6 sono utilizzabili sia come ingressi ADC che come normali GPIO.
Facendo due conti:
Display 6 pin (4 dati e 2 di gestione)
Relè 5 pin
Pulsanti 4 pin
Ingressi LM35  5 pin
-----------------------
Totale  20 pin

In pratica basta che usi un ingresso analogico, p.e. A5, come ingresso per un pulsante (pull up attiva e pulsante che chiude verso GND) e sei a posto, se usi i pin 0 e 1 anche loro per i pulsanti non perdi la possibilità di poter programmare Arduino da USB anche quando tutto è collegato.
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Però perderebbe la possibilità di scaricare informazioni via seriale durante l'esecuzione del programma.

Potrebbe collegare tutti i pulsanti sull'ultimo pin analogico rimasto utilizzando una rete di resistenze.

Potrebbe essere sufficientemente preciso l'adc a 10 bit per solo 4 valori.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9633
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Però perderebbe la possibilità di scaricare informazioni via seriale durante l'esecuzione del programma.

No se non ci sono pulsanti premuti, il fatto di collegarne due a A0 e A1 non blocca la seriale, ovviamente è necessario prevedere una procedura che consente di passare dalla seriale a GPIO a comando, p.e. tenendo premuto il pulsante 4 per due secondi disattiva la seriale e consente l'uso dei pulsanti 1 e 2, poi dopo 10 secondi, o tot tempo a piacere, che non viene premuto nessun pulsante la seriale torna attiva.

Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 114
Posts: 7178
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2276
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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ì? smiley-wink
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9633
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12625
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 (7.88 KB, 525x425 - viewed 25 times.)
« Last Edit: January 04, 2013, 11:25:19 am by Michele Menniti » Logged


Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2276
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

.... uno schema del genere potrebbe funzionare?

Meglio mettere anche una resistenza di pulldown su A5
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 114
Posts: 7178
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2276
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Basta metterli distanti 3 metri uno dall'altro e il problema non si pone smiley-yell
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9633
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12625
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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....
Logged


Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 333
Posts: 22923
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


Pages: [1] 2 3   Go Up
Jump to: