Stefano Sormanni Inserito: 21 aprile 2005 Segnala Share Inserito: 21 aprile 2005 Per una applicazione vorrei realizzare una linea con una serie di pulsanti per l'accensione, lo spegnimento, e la dimmerazione delle luci con soli 2 fili (+ 2 fili per l'alimentazione). Quello che non mi riesce fare è come discriminare un interruttore dall'altro. avevo pensato di inserire sul frutto una schedina con un PIC che abbia 4 I/0 con la possibilità di usare 3 di queste per impostare l'indirizzo e l'ultima per la comunicazione.Però rimane il problema come li descrimino i vari pulsanti ?Grazie Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 21 aprile 2005 Segnala Share Inserita: 21 aprile 2005 Mi sembra di capire che vuoi realizzare un bus seriale.Per fare la discriminazione degli I/O devi assegnare ad ogni zona un indirizzo univoco , poi via software ti fai un protocollo con cui spedisci l'indirizzo + il bit del pulsante premuto.Per impostare l'indirizzo nel PIC che io sappia hai sostanzialmente 3 strade1) Usi un DIP-SWITCH da attaccare ad ogni PIC a x poli in base al N° di Nodi che ti servono2) Imposti il nodo direttamente nel software3) Siccome hai detto che hai 4 ingressi di cui 3 vanno ai pulsanti e 1 libero , potresti usare l'ingresso libero che normalmente e' alto , quando lo colleghi a massa il PIC si mette in modalita' apprendimento , quando mandi un comando di broadcast (per esempio il classico numero di nodo 255) solo quel pic processa il dato ricevuto dal server che gli imposta l'indirizzo , una volta settato apri il contattino , e tale numero di nodo lo salvi nell'EEPROMCiao Link al commento Condividi su altri siti More sharing options...
mircoelektra Inserita: 21 aprile 2005 Segnala Share Inserita: 21 aprile 2005 Io tempo fa avevo iniziato un progetto simile ... che poi non ho mai portato a termine (come del resto accade per il 99% delle mie idee ) per motivi di tempo.Comunque la mia idea era molto più semplice (... almeno dal mio punto di vista ):avevo intenzione di realizzare una rete R-2R "distribuita" ... mi spiego meglio (se riesco) ...avevo pensato a un "bus" a 3 fili (GND, Vref, segnale), che partivano dalla "centrale" (una scheda con un PIC) e andavano a tutti i pulsanti. Il vincolo è che questo "bus" non può avere derivazioni, ma deve necessariamente passare per tutti i pulsanti in sequenza (entra-esci da ogni pulsante). Ogni pulsante collega la linea "Vref" alla linea "segnale" mediante una resistenza "2R" se premuto, oppure collega la linea "Vref" alla linea "GND" (sempre tramite la resistenza) se non premuto. La linea Vref sarà poi interrotta da una resistenza "R" prima di "uscire" dal pulsante per andare al successivo (pertanto non sarebbe corretto chiamare la linea "Vref" ... ad ogni pulsante viene aggiunta in serie una resistenza "R").In conclusione, sulla linea "segnale" ottengo una tensione "analogica" uguale a:costante x (P0 2^0 + P1 2^1 + P2 2^2 + P3 2^3 + P4 2^4 + P5 2^5 + P6 2^6 + P7 2^7)(nell' ipotesi di 8 pulsanti).dove P0, P1, ecc. rappresenta lo stato (0 o 1) dei pulsanti ... in pratica è un convertitore DAC!Con il PIC posso convertire il segnale analogico in digitale ... ed ho un byte in cui ogni bit mi da lo stato di un pulsante!In tal modo posso rilevare anche la pressione contemporanea di ognuno dei pulsanti.Che ve ne pare? E' un' idiozia o può avere un senso ... ? Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 21 aprile 2005 Segnala Share Inserita: 21 aprile 2005 Secondo me un segnale analogico che gira in quel modo per la casa e' soggetto a disturbi e penso che ti dara' molti problemi , ritengo l'ipotesi di un segnale differenziale come la RS485 ottimale Ciao Link al commento Condividi su altri siti More sharing options...
mircoelektra Inserita: 21 aprile 2005 Segnala Share Inserita: 21 aprile 2005 probabilmente hai ragione ...anche se il segnale analogico non è un segnale che "trasmette dei dati" mediante modulazioni varie ... in pratica è un segnale analogico che assume livelli costanti.Certo che con 8 pulsanti si hanno 256 livelli, per cui la "distanza" tra un livello e l' altro è di Vref/256. Se Vref fosse 5 V, la distanza tra i livelli diventerebbe 19.5 mV ... un po' poco!Se i pulsanti fossero 4 si avrebbe 5/16 = 312.5 mV ... un po' meglio.Altrimenti si dovrebbe utilizzare una Vref maggiore (ma poi il convertitore del PIC non è più utilizzabile direttamente ....).Mah, forse è un' idea assurda!Comunque fai sapere come risolvi il problema che mi interessa! Link al commento Condividi su altri siti More sharing options...
Stefano Sormanni Inserita: 22 aprile 2005 Autore Segnala Share Inserita: 22 aprile 2005 Quindi in riferimento a quanto diceva ifach, dovei inviare in maniera continua un segnale di tipo '12' o '13' dove 1 è il nodo e 2 o 3 è il pulsante.Ma se io ho più accensioni contemporanee ho un intasamento sulla RS485 ?Inoltre: il mio circuito dovrà avere anche un convertitore MAX485?grazie Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 22 aprile 2005 Segnala Share Inserita: 22 aprile 2005 Ciao Stefano , in pratica se usi una configurazione master/slave devi fare il polling degli slave ogni xx ms.Il fatto di usare una transceiver RS485 e' legato al fatto che presumo i vari punti luce siano sparsi a vari metri di distanza l'uno dall'altro.Come alternativa alla RS485 potresti usare dei PIC con CAN a bordo e in quel caso puoi lavorare in multi master ossia invece di fare il polling i vari punti luce ti chiamano quando hanno delle variazioni.In ogni caso anche se usi dei moduli con can a bordo esternamente devi collegarci un transceiver.Ciao Link al commento Condividi su altri siti More sharing options...
Stefano Sormanni Inserita: 27 aprile 2005 Autore Segnala Share Inserita: 27 aprile 2005 Dato che devo lavorare con dei chip molto piccoli (6-8 pin) e questi non hanno la possbilità di avere il CAN a bordo avevo pensato di discriminare i tasti con dei treni di impulsi di diversa ampiezza: es 25, 50, 75, 100 mS e il ricevitore va a testare il periodo e quindi mi chiude un contatto piuttosto che un altro.L'unico inconveniente che mi viene in mente è che se contemporaneamente premo due pulsanti sulla stessa linea succede un casino..... Potrebbe funzionare? Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 27 aprile 2005 Segnala Share Inserita: 27 aprile 2005 Stefano , in ogni caso presumo che dovrai andare ad una certa distanza quindi dovrai mettere dei transceiver di potenza (ed e' sempre un chip a parte sia che usi una 485 che un CAN) , il fatto che mandi dei treni di impulsi in contemporanea ti dara' sicuramente dei problemi.Per quanto riguarda un esempio di rete multimaster esisteva in rete un esempio di tanzilli che si chiamava PIC NET PLUS , ora purtroppo non c'e' piu' in rete , pero' se mi mandi il tuo indirizzo e-mail in privato , ti spedisco i files che avevo scaricato tempo fa.Per il fatto che devi usare dei chip piccoli , ti posso dire che per esempio il il PIC18F2480 o il PIC18F2580 hanno 28 PIN su package QFN.Ciao Link al commento Condividi su altri siti More sharing options...
Gabriele Riva Inserita: 27 aprile 2005 Segnala Share Inserita: 27 aprile 2005 esisteva in rete un esempio di tanzilli che si chiamava PIC NET PLUSC'e' ancora qui Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 28 aprile 2005 Segnala Share Inserita: 28 aprile 2005 Bravo Gabriele , sembra che il vecchio sito di Tanzilli sia stato acquisito da altri Ciao Link al commento Condividi su altri siti More sharing options...
luciopro Inserita: 29 aprile 2005 Segnala Share Inserita: 29 aprile 2005 ciao stefano, io sto realizzando una cosa simile alla tua utilizzando il protocollo Modbus.I limiti sono le tempistiche. in quanto è un protocollo con scansione a polling......ma per fare quello che vuoi tu penso che vada + che bene.le specifiche le trovi in internet ed il protocollo è abbastanza semplice da sviluppare.se ti serve qualcosa chiedi pure Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora