Table des matières:

Convertisseur analogique-numérique simple et bon marché : 5 étapes
Convertisseur analogique-numérique simple et bon marché : 5 étapes

Vidéo: Convertisseur analogique-numérique simple et bon marché : 5 étapes

Vidéo: Convertisseur analogique-numérique simple et bon marché : 5 étapes
Vidéo: Conversion analogique numérique - Terminale SSI 2024, Juillet
Anonim
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché
Convertisseur analogique-numérique simple et bon marché

De l'époque où les ADC étaient chers et rares, vient une solution matérielle-logicielle pour l'acquisition de données pour PC. Basée sur l'ancien port Joystick de la compatibilité IBM, une technique consistant à déclencher un multivibrateur monostable un transducteur résistif (thermistance, cellule photoélectrique, jauge de contrainte, etc.) simple à mettre en œuvre sur la plupart des plates-formes PC et sur la plupart des langages. Des exemples de fichiers VisualBasic et Qbasic sont affichés.

Étape 1: le port du joystick

Le port de manette de jeu
Le port de manette de jeu

Pendant des années, de nombreux PC domestiques compatibles IBM sont venus avec un port Joystick qui avait des broches de signal d'axe X, d'axe Y, A et B. Le petit connecteur DB-15 est accessible aux adresses 200h & 201h. Le joystick lui-même n'était que deux potentiomètres et deux boutons. À l'intérieur de la carte mère du PC, deux multivibrateurs monostables redéclenchables (RMM en abrégé) avec des condensateurs fixes et des broches IN/OUT étaient situés. La constante de temps RC était réglée par les potenciomètres et les condensateurs. Pour démarrer la conversion du signal, vous devez effectuer une écriture vers l'adresse de port 200h, puis commencer à compter jusqu'à ce que vous obteniez un peu de HAUT en effectuant une lecture vers l'adresse de port 200h. Cela pourrait être mis en œuvre dans n'importe quelle langue (basic, pascal, c).

Étape 2: Port du joystick en VB

Port joystick en VB
Port joystick en VB

Voici un exemple de code que j'ai utilisé pour tester mon joystick de dépotoir: 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 = 1 To 3000 If (Inp(&H201) And &H2) / &H2 = 0 Then Exit For Next V Vertical. Text = V If (Inp(&H201) And &H10) / &H10 = 0 Then Shape1. FillColor = &HFF If (Inp(&H201) And &H20) / &H10 = 0 Then Shape2. FillColor = &HFF If (Inp(&H201) And &H10) / &H10 = 1 Then Shape1. FillColor = &HC0C0C0 If (Inp (&H201) Et &H20) / &H20 = 1 Puis Shape2. FillColor = &HC0C0C0 Shape3. Left = H Shape3. Top = VEnd Sub Le programme ne fonctionne que si vous avez un vrai joystick connecté à votre PC. Les zones de texte horizontale et verticale afficheront une valeur liée aux mouvements X et Y de votre bâton. De plus, un carré se déplacera dans une boîte plus grande pour représenter vos mouvements. Appuyez sur les boutons A et B pour lire les cercles gris. L'exemple de fichier EXE compilé, le code source et la bibliothèque INPOUT32. DLL se trouvent dans le fichier. RAR.

Étape 3: Implémentez-le à l'aide du port parallèle sous DOS

Implémentez-le en utilisant le port parallèle sous DOS
Implémentez-le en utilisant le port parallèle sous DOS

Le 74 LS 123 est ce que j'ai utilisé pour obtenir le même système que le port joystick. Il a deux RMM. Dans le fichier PDF, vous pouvez voir la fiche technique et un circuit simple à connecter à votre port parallèle. Je suis un fan de Qbasic (car il est largement disponible) donc le code y est écrit. La procédure est la même que dans l'exemple 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) ET &H10) / &H10 = 1 PUIS QUITTER POUR LE SUIVANT Y LOCATE 23, 1 IMPRIMER EN UTILISANT "####"; LIGNE Y (0, 0)-(MAXX, YMAXX), 0, BF POUR I = 1 VERS LIGNE MAXX (I, D(I - 1))-(I, D(I)) D(I - 1) = D(I) NEXT ID(MAXX) = YWEND Une broche de sortie est utilisée pour déclencher le MMR et une broche d'entrée pour en lire la sortie.

Étape 4: Fixation du circuit au LPT

Raccordement du circuit au LPT
Raccordement du circuit au LPT
Raccordement du circuit au LPT
Raccordement du circuit au LPT
Raccordement du circuit au LPT
Raccordement du circuit au LPT

Le système est implémenté comme moitié matériel et moitié logiciel. La conversion d'une résistance variable en un délai est ensuite utilisée pour compter les impulsions et ce nombre est notre valeur souhaitée. Le fichier qbasic tracera pour filtrer le signal, puis le fera défiler vers la droite.

Étape 5: Utilisez-le

Il s'agit d'un circuit intégré courant, mais d'autres monostables peuvent également être utilisés. Beaucoup de gens qui vivent dans des endroits où l'ADC est difficile à trouver, pourraient utiliser ce circuit comme projet scolaire pour tracer la température ou tout autre élément tant que vous pouvez faire en sorte que le MMR modifie son délai lorsque votre capteur le fait.

Conseillé: