Buongiorno a tutti e scusate il titolo del topic, ma al momento non avevo niente di meglio...
Ora io ho questo tipo di necessità: ho un sensore collegato tramite un jack 3.5mm ad un input di Arduino, gnd e 5V. Quello che vorrei fare è poter estendere questa gamma di sensori ed averne due o anche tre. Se uno di questi rileva un cambiamento di stato, voglio che vengano eseguite le operazioni di conseguenza. Questo significa che almeno da come la penso io, per quanto riguarda il segnale, posso andare a sdoppiare il jack con un cavo a Y per avere due ingressi. Se a questo cavo a Y, collego altri due cavi a Y, arrivo a 4 ingressi (sensori). E' possibile una cosa del genere? Come si comporta il tutto, visto che l'alimentazione viene presa dai 5V di Arduino? Ci sono problemi ad avere i 4 sensori collegati ad un'unica porta Jack?
In seconda battuta, vorrei poter far si che questi sensori possano lavorare tra di loro in cascata. Ossia, se viene attivato il sensore A, vedere se viene attivato anche il sensore B ed eseguire operazioni di conseguenza. Ma se viene attivato prima B, non fare nulla. Questo a livello di codice come potrebbe tradursi?
In ultimo, vorrei poter far si che se i due vengono attivati nello stesso identico istante, vengano eseguite le operazioni dovute alla loro attivazione.
se usi uno spippiatore a Y, semplicemente i segnali si vanno a sdoppiare. quindi sì, li leggerai, ma non saprai a chi appartengono.
io direi che la via migliore è un jack per ogni segnale, e la storia della cascata la programmi.
per l'identico istante... non è possibile, ma arduino lavora a velocità nell'ordine dei microsecondi (miglioni di operazioni al secondo), e quindi direi che non hai problemi, sopratutto se impari l'uso degli interrupt
Sarebbe troppo chiedere che sensori stai usando? Ad esempio se usi dei sensori di temperatura LM35DZ è sufficiente cambiarli con dei sensori DS18S20 che usano il protocollo ONE WIRE e ti basta un pin digitale per tutti...
Chiedo scusa. Sono dei sensori barriera ir cinesi che più cinesi non si può. Costano 11$ e arrivano ad una distanza di 8mt. 0V quando sono interrotti e 5V quando si 'vedono'.
Per ora sarebbe già interessante poterli alimentare tutti da un unico jack e chi viene interrotto non è molto importante. Questa cosa è già interessante per me.
Per il segnale in cascata mi son lasciato un jack libero collegato ad un altro pin. E' a livello di codice che non riesco bene a comprendere la cosa... O forse la comprendo, ma non capisco la velocità di reazione che ho da parte di arduino.
L'uso degli interrupt è interessante, ho visto qualcosa solo nei tutorial ma non mi ci sono mai mai messo...
Comunque già sapere delle due cose di cui sopra che sembrano facilmente realizzabili, mi conforta.
Detto che nel primo caso a me non interessa in alcun modo sapere quale dei sensori viene interrotto ma mi basta sapere che una delle 4 barriere è stata interrotta, quale vantaggio avrei utilizzando uno shift register?
uno shift register serve per aumentare il numero di porte se non ne hai abbastanza, lascia stare queste complicazioni.
se ti server sapere se una barriera è stata interrita llora il metodo dell'Y è valido, leggerai dall'ingresso sempre 1 a meno che uno dei led viene interrotto
lesto:
uno shift register serve per aumentare il numero di porte se non ne hai abbastanza, lascia stare queste complicazioni.
se ti server sapere se una barriera è stata interrita llora il metodo dell'Y è valido, leggerai dall'ingresso sempre 1 a meno che uno dei led viene interrotto
No no, io di ingressi ne ho, non devo aumentarli
Ti ringrazio volevo solo una rassicurazione: i 5V che vengono poi usati da tre o quattro sensori sul cavo a Y... Questo può causare problemi secondo te o no?
Ciao, il concetto di quello che vuoi fare non è proprio chiarissimo. Principalmente una singola barriera ir è composta da 2 parti RX e TX.
Detto questo, parli di 4 sensori 2 TX e 2 RX? di 4 barriere quindi 8 sensori 4TX e 4 RX? Tensione di alimentazione di queste barriere? di norma sono tensioni standard a 12v, comunque non lo hai specificato.
Sembra che tu voglia fare un piccolo impianto di allarme con 4 coppie ir (Cinesi) correggimi se sbaglio.
una cosa così http://www.elkron.it/EN/catalogo/prodotto.asp?prod=684&fam=2&liv1=3&liv2=181 programmabile in 3 modi diversi
allarme con interruzione di un singolo fascio
allarme con interruzione di 2 fasci contemporaneamente, in realtà e tarato a (200ms minimo - 400 ms massimo)
allarme con interruzione dei fasci a X
nel tuo caso se vuoi un segnale quando anche solo una viene interrotta le metti in serie
se vuoi un segnale quando entrambe vengono interrotte nello stesso momento le metti in parallelo
Funzioni AND o OR.
I tuoi sensori a singolo fascio hanno una morsettiera su RX immagino di questo tipo[+ - C NC] forse per 11 dollari non hanno messo neanche il tamper e il TX solo morsetti + e -. Se è così, questi cosi vanno alimentati permanentemente , non capisco cosa vuoi fare con i 5v dei pin, non vorrai mica alimentare le barriere impostando le output in HIGH, alimentare questi sensori con arduino significa fondere il chip. Usa un 7805 - 7812 ci metti un attimo a farlo sono 3 componenti.
La ricevente RX avrà un contatto di uscita dato da un piccolo relè' o un open-collector, che è quello che ti interessa da inserire in arduino.
Per quanto riguarda l'attivazione nel medesimo istante, è impossibile che 2 sensori separati con circuiti indipendenti l'uno dall'altro partano contemporaneamente, solo il tempo di reazione di 2 relè identici variano i comportamenti. (infatti nelle normali centrali a programmazione si impostano i tempi AND a 20-50-100 ms) tradotto sarebbe se A si apre controlla B se anche B si apre entro xx millisecondi invia ciclo allarme, altrimenti ritorna a riposo- ciclo di reset dei parametri).
In conclusione specifica:
Cosa vuoi fare
Morsettiere o cosa esce dalle cinesate (un jack a 3 contatti? 2 contatti?)
Io vorrei poter usare almeno tre barriere. Quindi un totale di 3RX e 3TX. Ma anche 2 andrebbero già bene. Quindi 2RX e 2TX.
Sono sensori fatti appositamente per arduino. Danno 0V quando sono interrotte e 5V quando RX e TX si vedono.
L'RX non ha alcuna morsettiera. Le morsettiere sono solitamente nei sensori di un certo costo. Queste per 11$ hanno un cavo con tre fili: 5V, GND e Segnale.
Per riassumere. Cosa voglio fare: poter avere due barriere (A e B - entrambi con RX/TX), quando una delle due viene interrotta accendere un led. Oppure quando viene interrotto prima A e poi B accendere un led. Oppure quando vengono interrotti sia A che B per quanto possibile 'contemporaneamente', accendere un led.
Cosa esce dalle cinesate: un cavo con all'estremo tre fili: 5V, GND, Segnale nel caso dell'RX. 5V e GND nel caso del TX.
Tensioni di alimentazione: 5V per l'RX e 5V per il TX.
capito, bhe resta sempre il fatto dei 5v, non so, io non li prenderei da +5 e gnd di arduino specie se non sai quanto assorbono, se poi ce ne vuoi mettere ancora dovrai comunque staccarti da quell'alimentazione, ti basta anche un alimentatore universale, lo imposti a 5v e sei ok, ricorda solo di collegare i 2 negativi insieme. Poi prendi le uscite degli rx e le metti su 2 porte di arduino (fine della parte hardware)
Ma secondo te, se gestissi due di questi sensori (quindi per essere chiari 2Rx e 2TX), uno su un pin ed uno su un altro e poi via software gestissi la lettura dei due stati e sempre via software andassi a gestire l'attivazione A->B etc.
E' una cosa fattibile o avrei dei tempi di latenza tra una lettura e l'altra tanto da rendere inutile anche pensare di andare avanti per questa strada e quindi l'unica sarebbe gestire la cosa a livello hardware 'buttando via' questi sensori e pensando ad altro?
(a quel punto mi subentrerebbe il problema di cos'altro, visto che di elettronica so poco se non per schemi che utilizzo, ma da li a progettare...).
Ciao. Questo posto i 40mA che ogni pin riesce ad erogare corretto? Cioè, come faccio a capire questa cosa?
Grazie.
questo se prendessi l'alimentazione dai piedini del micro, ma l'alimentazione la stai prendendo dal 5v, quindi dal regolatore di tensione. 250mA dall'USB, o qualcosa di più usando un trasformatore esterno (ovvio che il trasformatore deve reggere).