|
|
|
AD-OMVORMERTJE |
|
|
|
|
doel: M'n pc moet straks het onderscheid zien tussen volgende spanningreeksen: 1) 0 - 2,25V 2) 2,25 - 4,5V 3) 4,5 - 6,75V 4) 6,75 - 9V Om dit te verwezelijken heb ik een ad-omvormer nodig. Bij de eerste reeks spanningen branden geen ledjes. Bij de 2de, brandt er eentje. Bij de derde, branden er twee en bij 6,75 - 9V branden er drie. De uitgangen worden verbonden met de poort van de pc. Een C-programma behandelt de status van de ingangspoorten en laat op het scherm zien in welke range de spanning zich bevindt.
|
|
|
|
Bovenstaande schema is de eigenlijke ad-omvormer. Nu is het praktisch zo (toch bij mij...) dat een lage uitgang op de comparator overeenkwam met een spanning van 1,7V terwijl het theoretisch nul volt diende te zijn. (de opamps worden assymetrisch gevoed tussen 9 en 0 Volt) Een hoge uitgang kwam overeen met 8V en ne sjiek...Daarom zette ik achter pin6 van de opamps 2 diodes in serie. Bij een lage uitgang is er dan zeker geen spanning genoeg om de transistor in saturatie te sturen....
|
|
|
|
Dit houdt echter wel in dat een hoge uitgang bij de comporators resulteert in gesatureerde transistors, Vce is dan laag...een inverterend effect dus...Dat gaan we straks opvangen in de software die we schrijven....
|
|
|
|
De omvormer verbinden we met 15,13,12 en grondpin 18 van de parallelle poort van ons win95-systeem. De onderste transistor met pin 15. De middelste met pin 13 en de bovenste transistor met pin 12. Het volgend 'marginaal' programma'ke leest de waarde van het register uit.
#include "stdafx.h" #include "conio.h" #include "stdio.h" #include "string.h" #include "stdlib.h" #include "iostream.h"
int main() { int a = 1; int b = 2; while ( a < b ) { cout << _inp(889) << endl; }
return 0; }
resultaten ------------
geen ledjes waarde:127 één ledje waarde:119 twee ledjes waarde:103 drie ledjes waarde:71
Hoe komt de pc aan deze waarden? Onderstaande tabel legt het u wel even uit...
|
|
waarde
|
S6
|
S5 (pin12)
|
S4 (pin13)
|
S3 (pin 15)
|
S2
|
S1
|
S0
|
nul ledjes ->127
|
64
|
32
|
16
|
8
|
4
|
2
|
1
|
1 ledje -> 119
|
64
|
32
|
16
|
0
|
4
|
2
|
1
|
2 ledjes -> 103
|
64
|
32
|
0
|
0
|
4
|
2
|
1
|
3 ledjes -> 71
|
64
|
0
|
0
|
0
|
4
|
2
|
1
|
|