Espandere pin

Ciao ragazzi, premetto che sono nuovo ad Arduino, ma so qualcosa di programmazione.
Dunque, volevo costruire una semplice calcolatrice quindi i pezzi sarebbero:

  • 2 display (meglio anodo o catodo comune?)
  • 10 pushbutton (i numeri da 0 a 9) + 1 pushbutton per l'operazione (dovrà solo sommare)

bene, intanto vorrei sapere come faccio, avendo una arduino 2009 a collegare tutti questi oggetti (i pin sono molti)?
Grazie

Ciao

ne hai 14 digitali e penso che collegando le cifre ai pin te ne partano già 10, poi ci sn quelli delle operazioni...

invece della arduino 2009 magari ti conviene prendere la versione mega: http://www.smartprj.com/catalog/index.php?main_page=product_info&cPath=1&products_id=37

che ha molti più pin...
però non supporta lo shield ethernet...

dopo dipende cosa ci devi fare, se ti basta inviare dati con l'usb va benissimo la mega.

beh ho già la 2009, non posso in qualche modo espandere i suoi pin?

Esistono dei chip controllati via i2c che consentono di aggiungere porte I/O.

secondo me può bastare un 2009 sfruttanto i pin analogici come digitali (identificati come da 14 a 19), avresti quindi in totale 20 pin a disposizione.

premetto che non ho fatto alcuna esperienza con quanto sto per dire, quindi le cose potrebbero essere sbagliate o non del tutto esatte...provo a darti degli spunti in base a quello che mi è capitato di leggere/vedere:

  • Esistono dei decoder che interpretano il numero binario che gli dai da arduino e accendono i segmenti giusti del display....soluzione che fa risparmiare pin (ad esempio: un decoder per un singolo display occuperà solo 4 pin di arduino anzichè 7del display).
    Si chiamano decoder BCD ma non saprei quale consigliarti.

  • Potresti usare una tastiera a matrice, una 4x4 la gestisci con 8 pin e ti mette a disposizione 16 tasti

Ho fatto invece esperienze con un display lcd, occupa 7/8 pin e hai a disposizione tutti i caratteri che ti servono.

Quindi credo che riesci a stare entro la soglia dei 20 pin

Io con l'i2c, come raccontavo qualche post addietro, piloto schermi lcd, con 2 pin sul bus i2c, se puo' tornare utile. F

Grazie a tutti delle risposte, vi farò sapere. Un'altra domanda...
per ora so usare i push button collegandoi 5v, il gnd e dall'altra parte il pin così che se il pulsante non è premuto, al pin arriva il GND (LOW) altrimenti arrivano i volt (HIGH)

ora se devo collegare più button, come faccio avendo solo 3 gnd?

ho provato a mettere un GND in serie nella breadboard, ma poi quando passano i 5v da un pulsante, tramite questo arrivano anche al GND stesso (di quel pulsante) e quindi tramite i collegamenti in serie, ai GND degli altri pulsanti, quindi poi arrivo ad una situazione in cui tutti i pulsanti collegati in serie al 1° GND, ricevono i 5v.

spero di essermi spiegato bene, magari sarà un problema stupido per voi, ma io come elettronica sono agli inizi

Grazie

Gianluca

a me risulta strano, cmq:

ciao, il metodo è esattamente quello (un'estremità GND, l'altra 5V) ma con più bottoni? dovrei collegare in serie i gnd nella breadboard (così da espandere i punti dove mettere fisicamente i vari gnd) ma succede quello che ho detto sopra...

nella breadbord se porti il segnale GND a una fila verticale (una delle due per intenderci) tutto ciò che attaccherai sarà a GND...

Non so se mi sono spiegato...

Se guardi questo link vedi che il GND viene portato sulla breadbord... tutti i buchi della fila più in basso hanno GND...

Se non hai capito provo a rispiegarmi...

ciaooo

p.s. prova a guardare come sono i collegamenti della breadboard (ma credo che questo tu già lo sappia Wink)

Altrimenti guarda qui: Uso della Bread Board

si ok, però appena passano i 5v attraverso il pulsante arrivano al pin desiderato e anche al GND (poichè quando il pushbutton è on tutte le estremità sono collegate) e quindi poi tutta attraverso tutta la fila GND passerà corrente no?

partitori di tensione per i pulsanti: con 2 analogici ne leggi trnquillamante 10
poi avanzi i pin per i display sennò puoi usare dei controller tipo il hcf4511 che comandi con 4 pin mandando il binario che lui converte sul dislplay

per i pulsanti usa lo schema linkato sopra
gnd è solo il polo negatvo dell'alimentazione perciò non cambia nulla che gli colleghi un pulsante o 10000

ciao

ho provato ad usare i pulsanti senza GND, ma così quando i 5v non arrivano al pin (off del pulsante) arriva un segnale misto (es su 3 volte arriva 1-0-1 e non 0-0-0), però se collego un gnd (che a sua volta deve essere collegato con altri tramite la breadboard) quando il pulsante è in on, tutti gli altri pulsanti è come se fossero in on, poichè prima arriva 0-0-0.... (GND) poi da GND passano i 5v del primo GND(quindi 1-1-1...)
mi sono spiegato? dove sbaglio?

per i partitori di tensione, si trovano nei negozi di elettronica? sai qualche link dove posso vedere di cosa si tratta?

Ciao e scusate se rompo con cose stupide (non per me)
:slight_smile:

googla
sono particolari metodi per mettere le resistenze in modo da dare valori diversi dal Vin

per collegare a gnd metti una resistenza vero???
sennò cortocuiti tutto e la scheda va a....

si certo, anche perchè il pc mi avvisa di un sovraccarico se non la metto

sono particolari metodi per mettere le resistenze in modo da dare valori diversi dal Vin

cioè metodi per dare lo 0 (LOW) ?
scusa potresti dirmi quali keywords usare su google per trovare qualcosa di inerente? non riesco...
grazie

Ciao

partitore di tensione!!!! se preferisci in inglese "voltage divider"
E' un metodo base, partendo dalla Vin riesci ad ottenere delle tensioni inferiori con solo due resistenze.
Se di elettronica sei proprio a zero, io ti consiglio di andarti a vedere anche legge di Ohm e leggi di Kirchhoff

Ok, ho letto qualcosa sui partitori e sulle leggi, ma ho visto che serve sempre comunque la GND, per collegare il tutto....come faccio a dare un segnale LOW senza GND? (perchè altrimenti succede quello che ho detto qualche post fa)

ok ragazzi, risolto così... collego il voltaggio tramite una resistenza ad un piedino del button. Dall'altro (quello che si collega quando è in ON) ho messo il GND (collegato in serie nella breadboard) e dopo la resistenza dei 5v ho messo il pin...così OFF -> 5v, ON -> GND...ho letto in una guida che tra GND e 5v, quando è in on arriva prima GND (quindi LOW)

praticamente

GND ---> (PULSANTE ON) ---> RESISTENZA (collegata 5v) ---> PIN INPUT

grazie alla resistenza arriva prima il GND perchè è più vicino...questo perchè?