Sommario:

Convertitore da analogico a digitale semplice ed economico: 5 passaggi
Convertitore da analogico a digitale semplice ed economico: 5 passaggi

Video: Convertitore da analogico a digitale semplice ed economico: 5 passaggi

Video: Convertitore da analogico a digitale semplice ed economico: 5 passaggi
Video: Come convertire VIDEOCASSETTE in DIGITALE in modo SEMPLICE ed ECONOMICO 2024, Novembre
Anonim
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico
Convertitore da analogico a digitale semplice ed economico

Dai tempi in cui gli ADC erano costosi e rari, arriva una soluzione hardware-software per l'acquisizione dei dati per PC. Basata sulla vecchia porta Joystick dell'IBM compatibile, una tecnica per attivare un multivibratore monostabile un trasduttore resistivo (termistore, fotocellula, estensimetro, ecc.) e quindi contare quanti cicli passa prima che l'uscita del multivibratore si alzi è abbastanza semplice da implementare sulla maggior parte delle piattaforme PC e sulla maggior parte delle lingue. Vengono mostrati i file di esempio VisualBasic e Qbasic.

Passaggio 1: la porta del joystick

La porta del joystick
La porta del joystick

Per anni molti PC domestici compatibili con IBM sono stati dotati di una porta Joystick con pin di segnale dell'asse X, dell'asse Y, dei pulsanti A e B. È possibile accedere al piccolo connettore DB-15 all'indirizzo 200h e 201h. Il joystick stesso era composto solo da due potenziometri e due pulsanti. All'interno della scheda madre del PC, erano posizionati due multivibratori monostabili riattivabili (RMM in breve) con condensatori fissi e pin IN/OUT. La costante di tempo RC è stata impostata dai potenziometri e dai condensatori. Per avviare la conversione del segnale, eseguire una SCRITTURA sull'indirizzo della porta 200h e quindi iniziare a contare fino a ottenere un po' ALTO eseguendo una LETTURA sull'indirizzo della porta 200h. Questo potrebbe essere implementato in qualsiasi lingua (base, pascal, c).

Passaggio 2: porta joystick in VB

Porta joystick in VB
Porta joystick in VB

Questo è un codice di esempio che ho usato per testare il mio joystick della discarica: Private Sub Timer1_Timer() Dim V, H As Integer Out &H201, &HFF For H = 1 To 3000 If (Inp(&H201) And &H1) / &H1 = 0 Then Exit For Next H Horizontal. Text = H Out &H201, &HFF For V = da 1 a 3000 If (Inp(&H201) And &H2) / &H2 = 0 Then Exit For Next V Vertical. Text = V If (Inp(&H201) And &H10) / &H10 = 0 Allora Shape1. FillColor = &HFF If (Inp(&H201) And &H20) / &H10 = 0 Allora Shape2. FillColor = &HFF If (Inp(&H201) And &H10) / &H10 = 1 Allora Shape1. FillColor = &HC0C0C0 If (Inp (&H201) And &H20) / &H20 = 1 Allora Shape2. FillColor = &HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Il programma funziona solo se hai un vero joystick collegato al tuo PC. Le caselle di testo orizzontale e verticale mostreranno un valore relativo ai movimenti X e Y del tuo stick. Inoltre, un quadrato si sposterà all'interno di una casella più grande per rappresentare i tuoi movimenti. Premendo i pulsanti A e B si accenderanno i cerchi grigi. Il file EXE compilato di esempio, il codice sorgente e la libreria INPOUT32. DLL si trovano nel file. RAR.

Passaggio 3: implementalo utilizzando la porta parallela in DOS

Implementalo usando la porta parallela sotto DOS
Implementalo usando la porta parallela sotto DOS

Il 74 LS 123 è quello che ho usato per ottenere lo stesso sistema della porta del joystick. Ha due RMM. Nel file PDF puoi vedere la scheda tecnica e un semplice circuito da collegare alla tua porta parallela. Sono un fan di Qbasic (perché è ampiamente disponibile), quindi il codice è scritto al suo interno. La procedura è la stessa dell'esempio VB: LPTdata = &H378 LPTstatus = LPTdata + 1: LPTcontrol = LPTdata + 2YMAXX = 500SCREEN 2LINE (9, 1)-(630, 170),, B, &H3333VIEW (10, 2)- (629, 169)WINDOW (0, YMAXX)-(620, 0)MAXX = 620DIM D(MAXX)WHILE INKEY$ = "" OUT LPTcontrol, &H1 OUT LPTcontrol, &H0 FOR Y = 1 TO YMAXX IF (INP(LPTstatus) AND &H10) / &H10 = 1 THEN EXIT FOR NEXT Y LOCATE 23, 1 PRINT USANDO "####"; LINEA Y (0, 0)-(MAXX, YMAXX), 0, BF PER I = 1 A LINEA MAXX (I, D(I - 1))-(I, D(I)) D(I - 1) = D(I) NEXT ID(MAXX) = YWEND Un pin di output viene utilizzato per attivare l'MMR e un pin di input per leggerne l'output.

Passaggio 4: collegamento del circuito a LPT

Collegamento del circuito a LPT
Collegamento del circuito a LPT
Collegamento del circuito a LPT
Collegamento del circuito a LPT
Collegamento del circuito a LPT
Collegamento del circuito a LPT

Il sistema è implementato per metà hardware e per metà software. La conversione di una resistenza variabile in un ritardo viene quindi utilizzata per contare gli impulsi e questo conteggio è il nostro valore desiderato.

Passaggio 5: usalo

Questo è un IC comune ma possono essere utilizzati anche altri monostabili. Molte persone che vivono in luoghi in cui l'ADC è difficile da trovare, potrebbero voler usare questo circuito come progetto scolastico per tracciare la temperatura o qualsiasi altra cosa, purché tu possa fare in modo che l'MMR cambi il suo ritardo quando lo fa il tuo sensore.

Consigliato: