problema numero in/out digitali

Ciao a tutti...

fino adesso io ho giocato molto con microcontrollori atmega328 programmandoli con arduino ed esportandoli (fisicamente)nei miei progetti

ora nella mia mente girava un idea di un progetto un attimo piu complesso che richiede un numero superiore di in/out di quelli offerti da atmega328...

ora il mio dubbio come posso fare?

devo passare al atmega 2560? o in qualche modo (non saprei come) posso usare due atmega328?

il mio problema è che realizzo pcb in casa, metodo p'n'p.... ora mi sto attrezzando con sistema bromografo artigianale... il mio dubbio resta però sulla qualità dei pin del atmega2560 e delle difficoltà che potrei incontrare con la relativa saldatura...

consigli?

stai facendo tutto da solo, ci vorrebbe la palla di Uwe, se non dici cosa devi realizzare come si fa a risponderti sulla possibilità di usare due 328P? cosa che si fa senza particolari problemi, ma a patto di poter separare le funzioni del circuito.

eheh hai ragione... ero preso dall'entusiasmo :stuck_out_tongue:

allora semplicemente si tratta di una scheda di di prototipazione (a scopo di puro e semplice divertimento) nella quale dovrò pilotare:

  • lcd 16x2
  • modulo xbee
  • transistor usati come interruttori (uscite che attivano relé)
  • rilevamento temperatura
  • rilevamento luce
  • pulsanti vari
  • led

L'idea sarebbe di realizzare una scheda multi uso, di conseguenza non ottimizzata per un particolare compito... i pulsanti mi servono per modificare "impostazioni" mediante un output l'lcd... il modulo xbee ovviamente utilizzato per comunicare con moduli esterni, ecc...

Per temperatura e lcd puoi usare I2C, con solo 2 pin hai il controllo completo di entrambi. (per ll'LCD ti servira una schedina aggiuntiva credo)
Per i led usa uno shift register e salvi altri pin; forse anche per il relè puoi fare una cosa del genere.
Per i pulsanti usa un multiplexer come questo --> Tastierino 16 tasti con DM74150N - Arduino, esperimenti e progetti in italiano - Sisuino blogArduino, esperimenti e progetti in italiano – Sisuino blog
Ricorda che i pin analogici li puoi usare come digitali: te ne servirà solo uno per la fotoresistenza.
L'Xbee non so come caspita si colleghi. :fearful:

tanto per cominciare puoi gestire il display con un micro e fare il resto con l'altro, se ti fai bastare 12 porte digitali e 6 analogiche o 14 digitali e 4 analogiche, considerando che le analogiche possono essere usate come digitali.
La differenza tra le due configurazioni consiste nella scelta di comunicazione tra i due micro: nel primo caso usi la seriale classica, nel secondo caso l'I2C

Ringrazio delle preziosissime risposte...

io per quanto riguarda lcd pensavo di usare questo per ridurre i pin:

non ho mai lavorato con multiplexer... e l'dea di PaoloP mi piace assai.. dato che questo progetto serve a me per imparare non per qualcosa di specifico accetto la sfida e mi sa che seguirò questi passi iniziando a rispolverare il buon vecchio millman...

il tipo di comunicazione i2c non sono molto pratico... penso opterò per la seriale...

quindi dite che per il tipo di progetto posso stare benissimo su 2 atmega328 anzichè su di un atmega 2560?
al di là della scelta... per saldare mcu come il 2560 la pcb fatta con p'n'p è impossibile vero? (o comunque fabbricata in casa)

Io credo che per quello che hai elencato un solo Atmega328 basta e avanza. Devi ottimizzare bene il codice. :smiley:

per i transistor puoi usare degli shift level

chiedo scusa per la mia ignoranza....

effettivamente utilizzando i shift register andrei ad utilizzare solo 3 pin pilotando (ipoteticamente) 16 uscite.... con altri 3 pin e l'hef4094 risolvo con lcd...

temperatura uso lm35 e per la luce fotoresistenza....

xbee necessita di tx/rx e 1-2 input digitali quindi direi che con solo un atmega 328 dovrei farcela alla grande...

e soprattutto la cosa più importante ho modo di imparare a lavorare con questi shift register....

vi ringrazio...

per l'xbee puoi usare anche solo tx e rx, poi non conosco il tuo progetto e magari dico baggianate

Un solo consiglio aggiuntivo, prendi i 74HC/HCT4094 e non i CD/HEF4094. I primi hanno segnali TTL puri mentre i secondi sono dei CMOS, con livelli logici differenti da quelli di Arduino, inoltre i primi lavorano a svariate decine di MHz di clock, i secondi non superano i 3-4MHz. In linea teorica non dovresti avere problemi, ma visto che il costo è lì meglio andare sul sicuro :wink:

Per i pulsanti puoi fare così http://www.instructables.com/id/Arduino-3-wire-Matrix-Keypad/step2/Wiring-up-the-resistors/ serve solo alimentazione e un pin analogico