Патрик Гёлль - Как превратить персональный компьютер в измерительный комплекс
80 FOR T=0 TO 500: NEXT T
84 GOSUB 1000
85 GOSUB 300
90 GOTO 200
100 OUT B+4,0: D=0: REM ACQUISITION
105 OUT B+4,2: OUT B+4,0
110 FOR F=0 TO N-1
120 OUT B+4,2
130 E=INP(B+6) AND 16
140 OUT B+4,0
150 IF E=16 THEN D=D+2^(N-1-F)
160 NEXT F
170 D=5*D/(2^N-1)
180 OUT B+4,1: RETURN
200 REM — VDIRECT —
210 GOSUB 100: GOSUB 1090
220 FOR G=1 TO 639
230 GOSUB 100
240 Y=D: GOSUB 500
241 GOSUB 1090
242 Y=Q: GOSUB 600
250 FOR T=0 TO 2000: NEXT T: REM развертка
260 NEXT G
270 END
300 REM — VGA —
310 SCREEN 9
320 KEY OFF: CLS
330 LINE(0,0)-(0,349),2
340 TOR Y=0 TO 349 STEP 35
350 LINE(0,Y)-(639,Y),2,&HCCCC
360 NEXT Y
370 FOR X=0 TO 639 STEP 32
380 LINE(X,0)-(X,349),2,&HCCCC
390 NEXT X
400 LINE(639,0)-(639,349),2
410 LINE(0,349)-(639,349),2,&HCCCC
415 X=0: RETURN
500 Y=349-INT(Y*349/5)
502 PSET(X,V)
505 V=Y
510 LINE-(X,V),12
520 X=X+1
530 RETURN
600 Y=349-INT(Y*349/5)
602 PSET(X,W)
605 W=Y
610 LINE-(X,W),14
630 RETURN
1000 REM 12BITS
1010 KEY OFF: CLS
1020 C=&H2F8: REM COM2:
1030 M=12: REM число разрядов
1040 OUT C+4,1
1050 FOR T=0 TO 100:NEXT T
1060 OUT C+3,64
1070 FOR T=0 TO 500:NEXT T
1080 RETURN
1090 OUT C+4,0: Q=0: REM ACQUISITION
1100 OUT C+4,2: OUT C+4,0
1110 OUT C+4,2: OUT C+4,0
1120 OUT C+4,2: OUT C+4,0
1130 FOR F=0 TO M-1
1140 OUT C+4,2
1150 E=INP(C+6) AND 16
1160 OUT C+4,0
1170 IF E=16 THEN Q=Q+2^(M-1-F)
1180 NEXT F
1190 Q=5*Q/(2^M-1)
1200 OUT C+4,1: RETURN
1210 REM (c) 1997 Patrick GUEULLE
Программа BICOURBE.BAS не должна рассматриваться только как иллюстрация того, что можно получить при комбинировании программных модулей, приведенных в данной книге. Это образец подхода, называемого англоговорящими программистами quick and dirty («быстро и грязно»), т. е. здесь отсутствует всякое стремление к структурированию и четкости. Программа работает, и это главное!
В частности, неоднократно применялась функция RENUM языка BASIC для переопределения в разных местах той или другой подпрограммы.
В том виде, в каком она приведена, программа управляет сразу двумя 12-разрядными АЦП — одним на базе МАХ 1241 и другим на базе LTC 1286. Для каждого из них определен один из каналов двухлучевого осциллографа (рис 5.14), в котором разные цвета лучей позволяют без проблем отличать один АЦП от другого.
Действительно, язык BASIC легко позволяет задавать атрибуты, определяющие цвет того или иного графического элемента, лишь бы его поддерживал графический экран. Ниже приведены коды цветов.
0 черный
1 синий
2 зеленый
3 голубой
4 красный
5 пурпурный
6 коричневый
7 белый (цвет по умолчанию)
8 серый
9 светло-синий
10 светло-зеленый
11 светло-голубой
12 светло-красный
13 светло-пурпурный
14 желтый
15 ярко-белый
Рис. 5.14. Пример работы виртуального двухлучевого осциллографа
6. ДАТЧИКИ И ПРИНАДЛЕЖНОСТИ
Аналого-цифровые преобразователи, которые рассматриваются на страницах этой книги, способны обработать любое напряжение в диапазоне от 0 до +5 В, но они рассчитаны и на более широкое использование, так как могут работать с датчиками или устройствами нормирования сигналов, зачастую самыми простыми. При этом с их помощью можно измерять большинство основных физических величин, даже такие напряжения и токи, которые никак не соответствуют рабочему диапазону АЦП.
ВХОДНОЙ УСИЛИТЕЛЬ
При помощи небольшого устройства, которое будет описано ниже, могут быть легко сняты два основных ограничения, присущих простейшим АЦП: входной диапазон от 0 до +5 В и неспособность работать с переменными напряжениями без постоянной составляющей.
Например, устройство смещения нуля и усилитель с переключаемыми коэффициентами усиления 1, 10 и даже 100 сильно расширят область применения АЦП ADC 10 и того мощного программного обеспечения, которое к нему прилагается. Этот АЦП можно будет использовать даже для оцифровки звука!
Следует учесть, что подача переменного напряжения с нулевым средним значением (иными словами, без постоянной составляющей) на вход аналого- цифрового преобразователя с входным диапазоном 0–5 В приводит к эффекту однополупериодного выпрямления. Результаты измерений, выполненных без учета этого обстоятельства, конечно, окажутся неверными. Данная ситуация аналогична той, когда луч обычного осциллографа расположен у нижнего края экрана, а не в середине, или когда перо регистратора установлено на один из краев бумаги.
В обоих случаях регулировка положения луча или установки нуля позволяет решить проблему путем добавления регулируемого постоянного напряжения смещения к входному сигналу.
Хотя входной диапазон 0–5 В и подходит для решения многих задач, при измерениях с помощью 8-разрядного АЦП все же желательно использовать максимально возможное количество из 256 уровней, т. е. необходимо уложиться в последнюю треть шкалы.
К примеру, входное напряжение, изменяющееся в пределах от 0 до 500 мВ, при преобразовании займет всего 25 уровней, что соответствует точности 4 %, тогда как АЦП наверняка имеет точность не ниже 1 %!
12-разрядные АЦП решают эту проблему, однако же не снимают проблему обработки сигналов переменного тока. Входное сопротивление большинства микросхем АЦП значительно меньше 1 МОм, и из-за этого обычный делитель 1/10 будет слишком сильно подавлять сигналы, амплитуда которых лишь немногим больше уровня 5 В.
Предварительный усилитель с коэффициентом усиления 10 позволит измерять напряжения с уровнем до 500 мВ с такой же точностью, с которой сам АЦП оцифровывает напряжения с уровнем до 5 В. При входном сопротивлении 1 МОм предусилитель с единичным усилением позволит работать на пределе измерения «50 В» с использованием обычного делителя 1/10.
С учетом простоты схем описываемых АЦП был разработан самый простой усилитель. Действительно, не нужны ни широкая полоса (достаточно нескольких килогерц), ни высокая точность (достаточно 1 %), ни смещение нуля на уровне микровольт, поскольку 8-разрядный АЦП с трудом определяет разницу между величинами 0 В и 20 мВ.
Не надо рассматривать схему, приведенную на рис. 6.1, как образец высокоточного прибора — это небольшое, но полезное устройство, предоставляющее немалые возможности.
Рис. 6.1. Принципиальная схема входного усилителя
Главный компонент схемы — сдвоенный операционный усилитель LM358, разработанный очень давно и широко распространенный. Он может работать с напряжениями, очень близкими к нулю, даже без двухполярного питания. Простой девятивольтовой гальванической батарейки вполне хватит для питания описываемого устройства, которое потребляет ток не более одного миллиампера (500 часов непрерывной работы с новой щелочной батареей).
Из напряжения питания +9 В микросхемой TLE2425 производства компании Texas Instruments формируется стабильное напряжение 2,5 В. Обычно эта микросхема используется в устройствах для получения «виртуальной земли».
Хотя напряжения 2,5 В даже при единичном усилении вполне достаточно для сдвига нуля в середину рабочего диапазона 0–5 В, при отсутствии микросхемы TLE2425 допустимо применение интегрального стабилизатора 78L05. При этом параметры будут менее стабильны, а потребление тока увеличится. Расположение выводов обеих микросхем одинаково.
Многооборотный потенциометр R9 с сопротивлением 10 кОм служит для подачи части выходного напряжения микросхемы TLE2425 на резисторный сумматор. На этот же сумматор поступает и входное напряжение, которое может подаваться напрямую (разъем DC — открытый вход) или через разделительный конденсатор Сехt (разъем АС — закрытый вход), как и у обычных осциллографов.
Использование входа АС позволяет убрать из входного сигнала постоянную составляющую (обычно присутствующую), а затем при помощи потенциометра R9 подобрать такую ее величину, которая максимально упростит проведение измерений. Емкость неэлектролитического конденсатора Сeхt (желательно, чтобы он был рассчитан на напряжение 400 В) будет зависеть от условий измерений: величина 1 мкФ позволяет работать на очень низких частотах, а величины 0,1 мкФ достаточно для работы в звуковом диапазоне.
Номиналы резисторов (с точностью 1 %) были рассчитаны таким образом, чтобы первый каскад имел единичное усиление, а входное сопротивление составляло 1 МОм. Резистор с сопротивлением 500 кОм можно получить, соединив параллельно два резистора по 1 МОм каждый.
Второй каскад имеет переключаемый коэффициент усиления 1, 10,100, а многооборотный потенциометр R10 22 кОм позволяет либо точно откалибровать усиление при настройке, либо регулировать его плавно — так же, как это можно проделать при помощи обычного осциллографа, вращая ручку «Усиление плавно».