Arduino ed input digitale 1.9V

Buonasera a tutti e buona domenica.

Ho un sensore collegato ad un pin digitale di arduino. Questo sensore legge 0V quando è in ascolto, mentre appena viene attivato la tensione sale fino a 1.9V.

Credo che i valori siano troppo bassi perchè arduino capisca il cambio di stato con una digitalRead.

Presumo quindi che debba implementare un circuito in grado di mantenere i 0V quando il sensore è in attesa e farlo andare rapidamente a 5V quando viene attivato di modo che la lettura digitale di arduino dia subito un valore HIGH di 1.

Vi chiedo se la cosa vi torna ed eventualmente come potrei fare ad amplificare questo segnale?

Grazie.

Reply to
Gianpaolo
Loading thread data ...

Pu=F2 bastare un semplice transistor con R di base e poi R di pullup sul collettore che andr=E0 collegato ad Arduino. L'emettitore ovviamente a massa.

In questo modo ottieni il contrario di quello che hai chiesto (5V in standby e GND quando il sensore =E8 attivo), ma puoi gestirlo facilmente via firmware, oppure metti un altro transitor ;)

-- Elettronica Open Source

formatting link

Reply to
Emanuele

"Gianpaolo" ha scritto nel messaggio:

Ecco cosa combina Arduino, fa accostare tutti all' elettronica....................

Reply to
Diego

"Gianpaolo" ha scritto nel messaggio news:jhrcb8$jmb$ snipped-for-privacy@tdi.cu.mi.it...

Perchè piuttosto di collegarlo ad un input digitale (on

Reply to
Paolo_cnv

Il 19/02/12 22.35, Diego ha scritto:

Ti chiedo scusa. Nella vita ho preso una laurea in informatica e mi occupo di sistemi piuttosto complessi per banche, ospedali etc. reti dati, applicazioni particolari etc. Programmo correntemente in quasi tutti i linguaggi C/C++, java, php etc.

Purtroppo una laurea in elettronica non sono riuscito a prenderla.

Spero che di quanto sopra tu ne sappia parecchio, non vorrei mai che andando in un newsgroup o forum dedicato ad una tua domanda rispondessero "Ecco cosa ha combinato Windows, ha fatto accostare tutti all'informatica".

Senza polemica, non sapevo fosse un newsgroup per Ing. elettronici.

Reply to
Gianpaolo

Il 19/02/12 21.00, Emanuele ha scritto:

Grazie per la tua risposta.

Ieri sera mi sono messo con un tester a vedere quali sono le tensioni in gioco.

Questo è quello che succede: praticamente il sensore lavora tipo un pulsante tattile (al sensore è collegato anche un pulsante di prova).

Nel momento in cui il sensore è in attesa dell'evento la tensione misurata col tester è nulla. Appena premo il pulsante di test (che simula ciò che avverrebbe in caso di evento), la tensione va a circa

0.5V e poi ritorna ad essere nulla.

Tenendo premuto il pulsante di test, la tensione sale a circa 1.8/1.9V.

La condizione normale è quella sopra, ossia veloce contatto che porta la tensione a 0.5V e ritorno a valore nullo.

Se vale ancora l'uso di un transistor per gestire quanto descritto, potresti per favore indicarmene uno e relativa resistenza?

Che lavori 'al contrario' non è assolutamente un problema, come hai detto gestirò la cosa via software.

Grazie.

Reply to
Gianpaolo

Il 20/02/12 00.01, Paolo_cnv ha scritto:

Ciao Paolo.

In effetti per me la cosa sarebbe indifferente.

Ho provato a collegarlo ad un input analogico, ma i valori che rilevo dal serial monitor sono molto ballerini.

Anche attivando il sensore con il pulsante di test, non ho notato variazioni tali da permettermi una corretta lettura.

Se vedi sopra, ho descritto un po' il comportamento del sensore, praticamente lavora come un interruttore, solo che, la tensione in gioco è molto più bassa.

Grazie.

Reply to
Gianpaolo

Il 20/02/2012 08:25, Gianpaolo ha scritto:

Definisci ballerini.

Quindi dov'è il problema? :)

L'idea di utilizzare l'analogica è buona secondo me. Verifica solo l'impedenza di uscita del tuo sensore che non sia troppo alta.

Devi solamente definire delle soglie con isteresi centrate a metà delle due transizioni:

0 0.5 0.5 1.9 V

Quindi le centri a 0.25V e 1.2V con un'ampiezza sufficiente a contenere le oscillazioni che rilevi (ad esempio con ±0.1V). Leggi periodicamente l'ADC (es. ogni 20 ms) e aspetta almeno 3 letture consecutive nella stessa finestra prima di dare per buona la pressione del pulsante.

Marco

Reply to
Marco Trapanese

Il 20/02/12 08.40, Marco Trapanese ha scritto:

Da 0 passa a 230, poi 52, poi risale, riscende, torna a zero per un po' etc.

Il problema è che, anche attivando il pulsante di test, queste variazioni non sembrano risultare. Eppure col tester se misuro in condizione di attesa, la tensione è nulla. E quando premo il pulsante di test la tensione sale velocemente a circa 0.5V.

Non capisco :)

Io preferirei decisamente una lettura digitale. Più veloce e meno codice da gestire.

20ms ad ogni lettura sono un'eternità per quello che devo farci e anche dover fare tre letture consecutive per definire se è avvenuta un'attivazione. Impossibile a livello progettuale fare una cosa del genere.

E' chiaro quanto mi hai esposto, quello che non è chiaro al momento è come posso 'stabilizzare' la lettura analogica che effettuo.

Non so, forse mettendo una resistenza tra il pin di arduino e gnd rendo più stabile la lettura?

Ecco, purtroppo queste cose non le so :( Sono qui appunto per chiedere.

Grazie per l'aiuto.

Reply to
Gianpaolo

Il 20/02/2012 09:08, Gianpaolo ha scritto:

Verifica con un oscilloscopio se queste oscillazioni sono davvero presenti o è un problema di lettura con l'ADC.

Di che sensore stiamo parlando?

Hai detto che *anche* attivando il sensore con il pulsante di test,

*non* hai notato variazioni tali da permetterti una corretta lettura.

Detta così non ha molto senso, IMHO: le variazioni della tensione dovrebbero portarti a una lettura scorretta. Sempre che per variazioni tu intendi i disturbi...

Ma più hardware esterno.

Tu non hai detto cosa ci devi fare. Hai parlato di pulsante tattile. Spiega meglio quale è l'applicazione e che sensore stai utilizzando (datasheet).

Prima devi verificare se davvero è instabile e perché.

Però devi fornire più dettagli, le soluzioni non sono generali ma dipendono dal contesto.

Marco

Reply to
Marco Trapanese

Il 20/02/12 09.47, Marco Trapanese ha scritto:

Marco intanto grazie per la pazienza ed il supporto.

Magari avere un oscilloscopio (e saperlo usare ovviamente).

Non è un vero e proprio sensore. Praticamente è un ricevitore wifi che si utilizza per altri scopi. Questo ricevitore ha un jack di output al quale solitamente va collegato un flash fotografico via cavo pc-sync. Facendolo attivare, il flash può essere fatto scattare da remoto.

Visto che il gestire questa chiusura di contatto potrebbe essermi utile non solo per comandare un flash da remoto, ma anche per altro, sfruttando quello che già ho, ho pensato di cercare di capire come gestire questo segnale con arduino. Quindi avere un TX/RX wifi collegato ad arduino per remotarlo ed eseguire qualcosa a seguito di una trasmissione.

Se collego i due fili che escono dal jack di cui sopra, uno a massa ed uno ad un pin analogico di arduino, nel momento in cui eseguo la lettura con arduino e visualizzo i valori sul serial monitor, sembra che, tra premere il pulsante di test o lasciare il RX collegato e basta non cambi nulla.

Vero. Ma per certi versi preferisco avere un valore HIGH o LOW piuttosto che una serie di valori da gestire con un analogRead. Nel primo caso ho si più hardware esterno ma la stessa porta oltre che usarla per questo tipo di cosa, la uso senza dover cambiare il codice anche per sensori che già possiedo e che funzionano in quel modo.

In pratica è il contrario: ho già dei sensori che funzionano correttamente HIGH/LOW con del codice scritto in grado di gestire questo cambio di stato.

Se avessi un altro sensore in grado di funzionare in questo modo in pratica non farei altro che attaccarlo senza mettere mano al codice.

Non esiste un datasheet. Se vuoi quello che posso fare è linkarti il manuale del prodotto:

formatting link

Praticamente la porta di output indicata è la porta chiamata FLASH.

Non è altro che la chiusura di un contatto. So che non è facile spiegarlo a chi non conosce l'argomento, ma un flash ha una porta pc-sync. Collegando l'apposito cavetto, se all'estremità metto in corto i due fili, il flash scatta.

Questo trasmettitore attraverso la porta FLASH fa la stessa cosa. Mette in corto i due fili.

Marco spero che quanto sopra possa farti capire qualcosa di più.

Grazie.

Reply to
Gianpaolo

Il 20/02/12 10.22, Gianpaolo ha scritto:

Marco scusa pensavo ad una cosa... Ma non è che questo 'contatto' potrei gestirlo come se fosse un pulsante?

Perchè alla fine è quello di cui si tratta... Se ai due fili del caso pc-sync collegassi un pulsante nel mezzo, nel momento in cui chiudo il contatto il flash scatta e qui sarebbe la stessa identica cosa.

Secondo te sbaglio?

Reply to
Gianpaolo

La prima soluzione a transistor fa esattamente questo: il transistor simula un pulsante che chiude a massa.

Per quanto riguarda l'affermazione di Diego,

"Ecco cosa combina Arduino, fa accostare tutti all' elettronica.................."

la questione =E8 abbastanza seria!

Fermo restando che trovo positivo che Arduino faccia accostare tutti all'elettronica, bisogna per=F2 ricordare quanto affermato dallo stesso Banzi: "It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. "

Ho approfondito la questione in questo articolo.

formatting link
ora

-- Elettronica Open Source /Arduino

formatting link

Reply to
Emanuele

Il 20/02/12 10.53, Emanuele ha scritto:

Perfetto Emanuele, ora è chiaro.

Mi puoi suggerire un transistor da usare? Oppure trattando la cosa come un pulsante, posso trattare il mio trasmettitore come se lo fosse e quindi andare da un estremo a VCC e all'altro a GND con una resistenza da 10K?

Emanuele appena ho tempo leggo il tuo articolo e ti assicuro lo leggerò con molto interesse.

Quanto afferma Banzi credo, senza ragione di essere smentito, che possa includermi.

Un artista non è necessariamente un Ing. Elettronico, un designers nemmeno, un hobbysta neanche.

Io so di avere molte lacune in elettronica, più che lacune direi dei veri e propri solchi... Dopotutto faccio un altro lavoro.

Non per questo, se qualcuno mi fa una domanda di informatica dove penso di poter dire la mia, rispondo "Ah maledetto il giorno in cui han fatto un mac o un pc windows e la gente ha cominciato ad usare i computer".

:)

Reply to
Gianpaolo

Il 20/02/2012 10:22, Gianpaolo ha scritto:

Wifi? Direi wireless ;)

Ok. Quindi quando il ricevitore viene attivato pilota il flash tramite l'uscita sul jack.

Ok.

Molto probabilmente è un fotoaccoppiatore. Prova semplicemente ad attivare il pull-up interno e fai sapere.

Come sopra: è facile che sia un fotoaccoppiatore con il collettore "appeso" (cioè non collegato). Qundi è naturale che tu non veda una tensione ma solo gli zero volt (quando è attivo).

Attiva il pull-up interno, mettici una R esterna da qualche kohm verso l'alimentazione dell'AVR.

Marco

Reply to
Marco Trapanese

Il 20/02/2012 11:35, Marco Trapanese ha scritto:

Mi è rimasta nella tastiera una "o":

Marco

Reply to
Marco Trapanese

Il 20/02/12 11.36, Marco Trapanese ha scritto:

Ciao Marco. Cosa ne dici di (qui dovrei dimensionare le R):

formatting link

oppure:

formatting link

?

Grazie.

Reply to
Gianpaolo

Il 20/02/2012 11:43, Gianpaolo ha scritto:

ehm... hai letto il mio messaggio?

Marco

Reply to
Marco Trapanese

Il 20/02/12 11.45, Marco Trapanese ha scritto:

Si l'ho letto. Ma senza uno schema capisco poco purtroppo :(

Reply to
Gianpaolo

Il 20/02/2012 11:49, Gianpaolo ha scritto:

Non c'è schema alcuno. Ho suggerito come prima prova di attivare il pull-up *interno* al micro. Nella documentazione di Arduino è spiegato come impostarlo.

Ciao Marco

Reply to
Marco Trapanese

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.