Offline
Newbie
Karma: 0
Posts: 9
|
 |
« on: August 24, 2012, 01:16:09 pm » |
Salve a tutti. Vi espongo subito il mio problema. Stavo pensando di costruirmi un orologio a tubi Nixie con un Arduino Uno Rev3. Purtroppo, ho bisogno di 16 uscite. Ed è qui che entra in gioco l'MCP23017. Ora però, guardando il data sheet di quest'ultimo, noto che i PIN 12 e 13 sono SCL e SDA, quindi vanno collegati con i rispettivi SCL e SDA di Arduino. Però bisogna anche collegare questi due PIN ai rispetti SCL e SDA dell'RTC. Come faccio? I pin A0, A1 e A2 dell'MCP23017 sono i selettori per le uscite? Come vanno usati?Per favore siate clementi, ancora non ho potuto provare/azzardare niente con Arduino (non ho neanche la scheda e il libro dovrebbe arrivarmi a fine mese)
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #2 on: August 25, 2012, 02:16:13 am » |
Ah quindi basta che cambio il segnale in uscita? Cioè devo collegare attraverso una breadboard SCL e SDA sia all'RTC che al MCP23017? Perdona la mia ignoranza EDIT: Un'altra cosa che non capisco è questa immagine. Perchè i PIN 17, 16 e 15 sono collegati a GND se sono selettori?
|
|
|
|
« Last Edit: August 25, 2012, 02:34:44 am by Nittola »
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16440
Don't know what I do
|
 |
« Reply #3 on: August 25, 2012, 02:50:53 am » |
Ah quindi basta che cambio il segnale in uscita?
No, ogni dispositivo I2C ha un suo indirizzo stabilito in HW (si chiama ID) spesso univoco altre volte parzialmente modificabile a seconda dei segnali alto o basso che presenti su alcuni dei sui pin (es. i chip EEPROM). Devi controllare sul datasheet gli ID di entrambi i dispositivi. Cioè devo collegare attraverso una breadboard SCL e SDA sia all'RTC che al MCP23017? Perdona la mia ignoranza
Sì, tutti i pin SCL e SDA devono essere collegati fra loro, e le linee portate poi ai pin I2C dell'Arduino. Ricordati le resistenze di pull-up da mettere sulle linee, con alimentazione a 5V usa resistenze con valore compreso fra 1,5K e 2,2K. EDIT: Un'altra cosa che non capisco è questa immagine. Perchè i PIN 17, 16 e 15 sono collegati a GND se sono selettori? Si torna a ciò che ti ho detto prima, dando un segnale alto o basso ad un pin (alto = collegato a Vcc, basso = collegato a GND) imposti il pin a 1 oppure 0 (rispettivamente per alto e basso), modificando così l'ID del chip.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #4 on: August 25, 2012, 03:32:14 am » |
Si torna a ciò che ti ho detto prima, dando un segnale alto o basso ad un pin (alto = collegato a Vcc, basso = collegato a GND) imposti il pin a 1 oppure 0 (rispettivamente per alto e basso), modificando così l'ID del chip.
Quindi posso collegarlo anche ad altri pin? Basta che imposto l'uscita in HIGH e LOW?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16440
Don't know what I do
|
 |
« Reply #5 on: August 25, 2012, 04:41:10 am » |
Si torna a ciò che ti ho detto prima, dando un segnale alto o basso ad un pin (alto = collegato a Vcc, basso = collegato a GND) imposti il pin a 1 oppure 0 (rispettivamente per alto e basso), modificando così l'ID del chip.
Quindi posso collegarlo anche ad altri pin? Basta che imposto l'uscita in HIGH e LOW? Non capisco cosa vuoi dire. I pin per impostare la parte modificabile dell'ID del dispositivo sono prefissati, generalmente indicati con Ax (x=numero). Non puoi scegliere pin diversi. Per dare il segnale HIGH, letto come "1", colleghi a VCC, per dare LOW, letto come "0", colleghi a GND.
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #6 on: August 25, 2012, 04:45:40 am » |
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #7 on: August 25, 2012, 06:42:40 am » |
Scusate, stiamo facendo confusione per colpa mia. Sono un vero ignorante in materia, vi chiedo di essere clementi e un minimo di pazienza. Ritorniamo al problema in origine: vorrei creare un orologio a Tubi Nixie. Ogni tubo dovrebbe avere 11 Pin (0,1,2,3,4,5,6,7,8,9 e il .) + 2 di alimentazione (+ e -). Essendoci 4 tubi Nixie, per pilotarli ho bisogno di quattro 74141 ( data sheet). Per pilotare questi ultimi, le porte dell'Arduino Uno non sono sufficienti. Mi conviene usare un MCP23017 o un PCF8574? Spiegatemi il perchè e il funzionamento della vostra scelta. Grazie
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #8 on: August 25, 2012, 07:29:58 am » |
Non cambia molto. Puoi usare un MCP23017 o 2 x PCF8574 ( il PCF8574 ha solo 8 porte )
Oppure degli Shift-Register, come i 74HC595.
Edit: 7441, non 74141
|
|
|
|
« Last Edit: August 25, 2012, 08:38:00 am by brunello »
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #9 on: August 25, 2012, 09:56:54 am » |
Stavo pensando pure io di usare 2 Shift-Register, ma siccome sono registri a scorrimento, penso che possa esserci del ritardo alla lunga. Comunque io le porte del MCP23017 o dei PCF8574 li controllo con delle librerie ed eventuali comandi giusto?
|
|
|
|
« Last Edit: August 25, 2012, 10:06:40 am by Nittola »
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #10 on: August 25, 2012, 10:20:59 am » |
C'e' anche il PCF8575, che dovrebbe essere identico al PCM23017. a parte la piedinatura ( ma non l'ho mai usato e non ne sono sicuro ). Comunque io le porte del MCP23017 o dei PCF8574 li controllo con delle librerie ed eventuali comandi giusto? Giusto. e i 74hc595 con lo ShiftOut. Un sistema vale l'altro, comunque non c'e' nessunissimo problema di ritardo, io con gli Shift-Register ci faccio orologi a 10 cifre
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #11 on: August 25, 2012, 04:58:50 pm » |
Ecco qua un abbozzo. Ora devo collegare A2, A1 e A0 al GND dell'Arduino? E un'altra cosa. Quante apparecchiature posso alimentare con Arduino? Devo ancora alimentare l'MCP23017, i quattro 7441 (posso collegarli alla massa che c'è dopo le resistenze? [P.S. Dopo ogni resistenza dovrebbe esserci un LED, ma ho dimenticato di disegnarli...]) e forse un altro Shield per emettere audio
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #12 on: August 25, 2012, 05:54:46 pm » |
Bello lo schema in un foglio a quadretti... e' tanto vintage... Ma non dovevi pilotare delle Nixie ? E che ci fanno tutte quelle resistenze ( con il led che manca ) verso massa ? le uscite dei 7441 o 74141 vanno al Catodo del.... diciamo.... " Display" E non ci puoi pilotare dei Led, i 74141 non forniscono abbastanza corrente Si, i GND vanno TUTTI collegati insieme Comunque, dato che questi IC sono quasi introvabili e visto che hai a disposizione un microcontrollore, potresti anche pilotarle in multiplexing. Qui c'e' un esempio con un PIC http://www.elettronicain.it/main/elettronicainsieme/pdf/nixie.pdf, ma in rete se ne trovano a decine . Cerca " Multiplexed nixie clock " . Cavolo, hanno gia' fatto l'Arduinix
|
|
|
|
« Last Edit: August 25, 2012, 06:37:44 pm by brunello »
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #13 on: August 26, 2012, 04:14:21 am » |
Però con un Multiplexer non so se posso mettere una funzione di sveglia...
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1045
|
 |
« Reply #14 on: August 26, 2012, 04:35:18 am » |
Il multiplexer riguarda quella parte che fa' da interfaccia verso il display. E' una modalita' piu' complessa di gestione rispetto a delle decodifiche standard, pero' abbatte notevolmente i costi e riduce la complessita' del circuito.
Ai tempi delle Nixie non c'erano microcontrollori programmabili e il tutto veniva costruito con logiche TTL. Pero' a meno che tu non voglia costruire una replica in stile vintage di detto orologio ( e allora Arduino non va' usato ) tanto vale farlo sfruttando al massimo la possibilita' che ti da' la programmazione di un Chip.
Se vai sul sito di @leo72 ( poco sopra c'e' un suo post e il link lo trovi nella firma ) troverai degli esempi di gestione di un orologio in multiplexing
|
|
|
|
|
Logged
|
|
|
|
|
|