View Full Version : Acquisire segnali ON/OFF col pc
Ciao, ho un problema semplice semplice ma io non ho le basi per risolverlo.
Ho un segnale in tensione (chiusura apertura di un interruttore) e voglio acquisirlo con un pc sotto forma di alto/basso.
segnale -----> filtro RC -----> trigger di schmitt ------> acquisitore.
il segnale vale 5 volt (a interruttore chiuso)
Domande:
-il filtro lo voglio con costante di tempo di 1/10, come scelgo R e C? (cioè non so se prendere R=100 ohm e C=0.001 farad oppure altri valori, non so nemmeno perchè è importante sceglierli in certi modi)
-in uscita dal filtro mi serve un amplificatore a buffer per abbattere l'impedenza oppure dato che a valle c'è solo il pc non mi serve?
-come faccio ad acquisire i bit col pc, serve una scheda d'acquisizione (tipo PCI) o c'è quache altra soluzione?
vi ringrazio, anche se rispondete ad una sola di queste domande mi fate un gandissimo piacere!
prima ti chiedo a che te serve:D
dopo te chiedo da n'dove arriva sto segnale
Ti chiedo ste cose per un motivo semplice se non vuoi bruciare il pc è bene saperle
Se vai in giro su siti di elettronica dovresti trovare queste cose cmq
Una cosa semplice è usare la parallela e andarci a leggere un segnale di input qualsiasi della parallela (ps è una porta di output)
ti consiglio di usare un trasformatore di isolamento (non serve alimentarlo) oppure un optoisolatore(ci vuole corrente)
Il filtro RC che vuoi fare non so se serve forse basta solo R cmq visto che si parla di segnale tipo continua dai su 10K per R e 10 o 100uF che corrisponde a frequenza di taglio da 1Hza 10Hz così filtri i disturbi
ops cosa intendi costante 1/10 = 0.1s?
al limite si può usare la seriale (boo) come il ricevitore fai da te per i telecomandi
Originariamente inviato da Lauro
prima ti chiedo a che te serve:D
dopo te chiedo da n'dove arriva sto segnale
Ti chiedo ste cose per un motivo semplice se non vuoi bruciare il pc è bene saperle
Se vai in giro su siti di elettronica dovresti trovare queste cose cmq
Una cosa semplice è usare la parallela e andarci a leggere un segnale di input qualsiasi della parallela (ps è una porta di output)
ti consiglio di usare un trasformatore di isolamento (non serve alimentarlo) oppure un optoisolatore(ci vuole corrente)
Il filtro RC che vuoi fare non so se serve forse basta solo R cmq visto che si parla di segnale tipo continua dai su 10K per R e 10 o 100uF che corrisponde a frequenza di taglio da 1Hza 10Hz così filtri i disturbi
ops cosa intendi costante 1/10 = 0.1s?
al limite si può usare la seriale (boo) come il ricevitore fai da te per i telecomandi
ti ringrazio per le risposte.
Innanzi tutto non brucio nessun pc, è solo un esercizio scolastico!
Certo, quando vorrò costruirlo veramente ci starò attento e magari chiederò di nuovo aiuto.
Il segnale arriva dall'alimentatore del pc o da una batteria esterna.
Il mio scopo è sapere quanto tempo rimane chiuso un determinato interruttore.
per il filtro, intendo 0.1 sec, quindi una frequenza di taglio di 10 Hz, quindi prendo R=10K e C=10uF, giusto?
per la porta di ingresso, so che ci sono acquisitori che si interfacciano con la seriale del pc, usare la porta (seriale o parallela) nuda e cruda era un'idea che mi era venuta ma non sapevo se fosse realizzabile (l'importante è che sia realizzabile, anche se poi non so come farlo cerco qua e là e imparo).
il trasformatore di isolamente o l'optoisolatore a cosa servono?
trasformatore o optoisolatore servono per isolare galvanicamente il tuo segnale dal dove lo acquisisci. Se per una qualsiasi ragione porvochi un danno, dal lato del segnale , questo non si propaga dove lo leggi.In parole spicce se bruci tutto sul segnale la parallela del pc resta viva
ah, quindi se alimento il segnale con l'alimentatore del pc non serve l'optoisolatore, perchè tanto se faccio danni vuol dire che l'alimentatore (e probabilmente anche tutto il pc) è il primo ad andarsene, giusto?
giusto
L'isolamento serve quando hai due segnali provenienti da sistemi diversi. se ne può fare a meno se i segnali sono "deboli" (non 1KV o 10A )
lo abbiamo fatto anche noi a scuola e sviluppato in diversi modi... come isolamento abbiamo usato optoisolatori (CI. 3021 se ricordo bene a 6 pin (3 per lato)) il segnale proveniva da una fonte esterna... di filtri non ne abbiamo messi, lasciavamo contare al pc quanto stava alto il segnale... usavamo l'int 8 del timer interno del pc che programmavamo in pascal a intervallo di tempo regolari a secondo della risoluzione che ti interessava (centisimi di secondo... secondi... ecc ecc... se vuoi altre info vedo se a casa ho ancora gli appunti per programmare l'orologio e l'int 8 del pc...
ah, usavamo la parallela 378 mi pare, dovrei avere anche la piedinatura della parallela oggi a mezzogiorno vedo se trovo qualcosa dopo 8 anni :P (sperem)
Originariamente inviato da Kajok
lo abbiamo fatto anche noi a scuola e sviluppato in diversi modi... come isolamento abbiamo usato optoisolatori (CI. 3021 se ricordo bene a 6 pin (3 per lato)) il segnale proveniva da una fonte esterna... di filtri non ne abbiamo messi, lasciavamo contare al pc quanto stava alto il segnale... usavamo l'int 8 del timer interno del pc che programmavamo in pascal a intervallo di tempo regolari a secondo della risoluzione che ti interessava (centisimi di secondo... secondi... ecc ecc... se vuoi altre info vedo se a casa ho ancora gli appunti per programmare l'orologio e l'int 8 del pc...
ah, usavamo la parallela 378 mi pare, dovrei avere anche la piedinatura della parallela oggi a mezzogiorno vedo se trovo qualcosa dopo 8 anni :P (sperem)
:ave:
se trovi gli appunti e lo schema posso anche venire a prostrarmi di persona
in pausa pranzo non li ho trovati.... cerco ancora stasera.. scusa
ma non preoccuparti troppo, se non li trovi non importa.
anzi grazie per il tempo che hai già perso!
domani mattina alle 10 :fiufiu:
cmq le cose importanti le ho già fatte (circuito di condizionamento e automa che distinque tra segnali corti-medi-lunghi), il sistema di acquisizione vero e proprio sarebbe la ciliegina sulla torta, altrimenti me la cavo con una scheda d'acquisizione già fatta che comunque mi piace poco perchè costa.
PS: non è che devo costruirlo, ma ho il prof che controlla anche se si è badato agli aspetti economici, e quindi una soluzione gratis sarebbe perfetta.
me la potrei anche cavare con un vago "il segnale si acquisisce tramite parallela" e via...
anzi, mi potresti descrivere il funzionamento di tale programma in qualche riga? beh, se hai tempo da perdere va bene anche mezza pagina, come vuoi tu :)
E grazie ancora
stasera spero di avere tempo ihhiihhi... faccio il possible
trovati.. te li metto giu' in maniera leggibile
ecco qua
buon divertimento
ah dimenticavo, accetto correzzioni (con 2 z?) da utenti piu' esperti di me a riguardo
grazie! ora guardo e imparo!
ho guardato e ho imparato tutto ciò che mi serviva riguardo alla parallela. del resto ho capito poco :fagiano:
una domanda che dovevo farti già da tempo (qualche ora): che cos'è l'INT8?
Cmq il mio programma fa questo:
ad ogni ciclo di 0.1 sec vengono eseguiti i seguenti processi:
-lettura del bit di ingresso della parallela e relativo incremento del timer
-altri processi che non servono al conteggio (la cpu non è dedicata al conteggio, deve fare anche altro) ma di cui ho la certezza che finiscono entro gli 0.1 sec.
Noti qualche cavolata? spero di no, il segnale lo collego a un piedino di ingresso a caso (mettiamo il 10) ed è tutto a posto, vero?
thanks
Ti costruirò un altare in avorio per il tuo prezioso aiuto
in poche parole interrupt serve per mandare il pc a leggere anche se stai facendo altri processi quando non hai la certezza che il pc riesca a finire entro gli0.1sec nel tuo caso...
per quanto riguarda il pin.. ti consiglio di attaccarlo a uno che ti ho messo nel tutorial con la lettera "i" minuscola (10 12 13 15)visto che non sono negati.... se leggi 1 vuol dire che ci sono i 5 volt
altrimenti se usi i pin con "I" paiuscola sono negati e se leggi 1 ci sono 0 volt
a te la scelta...
il 10 va bene :P
Originariamente inviato da Kajok
in poche parole interrupt serve per mandare il pc a leggere anche se stai facendo altri processi quando non hai la certezza che il pc riesca a finire entro gli0.1sec nel tuo caso...
per quanto riguarda il pin.. ti consiglio di attaccarlo a uno che ti ho messo nel tutorial con la lettera "i" minuscola (10 12 13 15)visto che non sono negati.... se leggi 1 vuol dire che ci sono i 5 volt
altrimenti se usi i pin con "I" paiuscola sono negati e se leggi 1 ci sono 0 volt
a te la scelta...
il 10 va bene :P
grazie, pian piano sto capendo.
riguardo al pin da usare avevo capito bene dal tuo schema, era davvero chiaro.
per quanto riguarda l'interrupt, è esattamente quel che deve fare il mio programma (anche se io l'ho espresso in modo diverso), è solo che non capivo cosa volesse dire INT. Era troppo difficile immaginare che volesse dire INTerrupt!
grazie ancora di tutto, ho finito di imparare quel che mi serviva (per oggi, poi nella vita serve sempre imparare!)
Tutto risolto :cool:
un grazie immenso a Kajok e Lauro
funge? funziona? va bene? gira? legge? rileva? contagiusto?
dai dicci dicci.... sono ansioso...
listato programma?
imapro anche io, mica solo tu!!!
Originariamente inviato da Kajok
funge? funziona? va bene? gira? legge? rileva? contagiusto?
listato programma?
no. no. no. no. no. no. no.
non ne ho.
Sono le risposte alle tue domande! :D
non dovevo fare un programma funzionante, ma dimostrare che sapevo progettare una buona soluzione.
il mio scopo è determinare quanto rimane chiuso un interruttore (in realtà determinare se appartiene a una di tre face di possibili durate), filtrando i disturbi dovuti a rimbalzi nei contatti o fenomeni strani di brevi durate.
Il progetto si focalizzava sul circuito di condizionamento (filtro RC e trigger di Schmitt) e sulla descrizione dell'algoritmo che discrimina tra le varie durate (descrizione fatta tramite automa a pila), e naturalmente sulla descrizione generale del comportamento temporale (cioè dire che non ci sono vincoli di real-time quindi programmo senza troppi sbattimenti di interrupt, ecc)
Il contorno (come i piedini della parallela da usare e l'inidrizzo a cui andare a leggere i dati) era una aggiunta per fare un lavoro più completo.
Io sono stato felice di averlo aggiunto e il prof ha apprezzato.
E naturalmente io ho apprezzato il tuo aiuto :vicini:
che bello, di solito bazzico per "discussioni generiche" per cercare di risolvere problemi altrui, ogni tanto è bello essere dalla parte di chi riceve l'aiuto!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.