Більшість вимірювань фізичних величин оперують з аналоговими, тобто безперервного ними сигналами, що змінюються в часі. Для обробки таких сигналів в комп’ютері необхідно перетворити їх у цифрову форму. Цей процес називається аналого цифро вим перетворенням, і він є своєрідним мостом між «аналоговим» физиче ським світом і цифровим світом комп’ютерів. Для перетворення використовуються спеціаль ні мікросхеми аналого цифрових перетворювачів. Ми розглянемо декілька простих реалізацій аналого цифрових перетворень, в яких дані будуть прийматися через паралельний порт персонального комп’ютера, що працює під управлінням операційної них систем Windows.

Спочатку розробимо проект простого перетворювача, що працює на мікросхемі LTC1286 фірми Linear Technology. Це пристрій являє собою 12 бітовий преобра зователь, управління перетворенням даних в якому здійснюється за трьома сигналь ним лініях (рис. 3.7):

Рис. 3.19

Вікно конструктора програми

unit Unit1;

interface uses

Windows, Messages,  SysUtils,  Variants,  Classes,  Graphics, Controls,

Forms,

Dialogs, StdCtrls,  ComObj, ComCtrls;

type

TForm1  =  class(TForm) Button1: TButton; Edit1: TEdit; Button2: TButton; UpDown1:  TUpDown; Label1:   TLabel; Edit2: TEdit;

procedure  Button1Click(Sender:  TObject);

procedure  FormDestroy(Sender: TObject); procedure  FormCreate(Sender: TObject); procedure  Button2Click(Sender:  TObject);

private

{  Private declarations  }

public

{  Public declarations  }

end;

var

Form1: TForm1; binResult: Word; total: Real; XLApp:  variant; i1: Integer;

pos:   Byte;

implementation

{$R *.dfm}

procedure  TForm1.Button1Click(Sender:  TObject);

const

DATA  = #$378; STATUS  = #$379; begin

asm

push  ebx

mov    dx,  DATA

xor    ax,  ax or      al, pos bts     ax,  7 out   dx,  al

btr   ax,  7 out    dx,  al

mov    bx,  15

@next:

xor    ax,  ax or      al, pos mov    dx,  DATA btr    ax,  6

out    dx,  al

mov     dx,  STATUS

in      al, dx bt      ax,  3 rcl  cx,  1

mov    dx,  DATA

bts     ax,  6 out    dx,  al

dec    bx

jnz    @next

mov    dx,  DATA

bts     ax,  7 out    dx,  al

pop   ebx

and   cx,  0FFFh

mov     word ptr binResult, cx

end;

total:=  binResult*5.0 / 4096.0;

XLApp.ActiveSheet.cells.item[i1, 1].value:=  total; Inc(i1);

end;

procedure  TForm1.Button2Click(Sender:  TObject);

begin

Edit2.Text:=  IntToStr(UpDown1.Position);

pos:=  UpDown1.Position;

end;

procedure  TForm1.FormCreate(Sender:   TObject);

begin

XLApp  :=  CreateOleObject(“Excel.Application”); XLApp.Workbooks.Add;

XLApp.Visible  :=  True;

i1:=   1;

end;

procedure  TForm1.FormDestroy(Sender:  TObject);

begin

if not  VarIsEmpty(XLApp)  then begin

XLApp.DisplayAlerts  :=  False;

XLApp.Quit;

end; end; end.

Точно так само можна організувати і розподілену багатоканальну систему обробки аналогової інформації в форматі «клієнт сервер» для роботи в мережі. В цьому випадку для обробки даних з усіх 8 мі каналів можна використовувати таймер, перемикаючий через певні інтервали часу канали.

Рис. 3.20

Базова схема підключення напівпровідникового датчика LM335

Розглянемо одне з численних застосувань аналого цифрового перетворення, а саме вимір температури фізичних об’єктів. Якщо не потрібна висока точність, то в якості датчика температури можна використовувати напівпровідниковий аналоговий трехвиводной датчик типу LM335. Вихідним сигна

лом такого датчика є напруга, лінійно залежне від температури вимірюваного об’єкта в гра дусах Кельвіна з коефіцієнтом 10 мВ / Ко. Висока лінійність дозволяє обійтися без спеціальних ал горітм лінеаризації і табличних обчислень, до того ж такий датчик в найпростішої конфігурації вимагає наявності одного зовнішнього резистора.

Базова схема підключення такого датчика поки

зана на рис. 3.20.

Напруга харчування Uпит датчика може змінюватися в досить широкому діапазоні, але в багатьох додатках зручно використовувати +5 В. Для роботи датчика потрібно струм зміщення ня, який вибирають рівним порядку одиниць міліампер. У першому наближенні вели чину резистора Rf нескладно прорахувати, використовуючи значення вихідної напруги датчика при певній температурі, наприклад, при 273о К (0оС).

Наприклад, якщо вибирається струм зміщення датчика, рівний 1 мА, а напруга живлення дорівнює +5 В, то значення резистора Rf в кілоомах дорівнюватиме (5 – 2.73) В / 1мА = 2.27 К, тобто можна взяти найближчим стандартне значення, рівне 2.2 К. Тут ми використовували той факт, що при 0 оС на виході датчика LM335 буде напруга, рівне близько 10 мА · 273 = 2.73 В.

Базова схема має цілу низку недоліків, які можна звести до мінімуму, застосувавши більш складні схеми підключення датчика, але навіть у такій конфігурації можна забезпечити цілком задовільні результати вимірювань.

Подивимося, як можна реалізувати просту систему вимірювання температури, управляє мую за допомогою паралельного порту ПК. Апаратну частину такого проекту реалізувати не складно, приєднавши датчик температури LM335 в базовому включенні до входу аналого цифрового перетворювача, розглянутого на початку розділу. На рис. 3.21 показана схема вимірювання температури.

При складанні цієї схеми слід передбачити ланцюга фільтрації перешкод і можливу не стабільність джерела живлення. Найкраще для харчування датчика використовувати окреме джерело опорного струму.

Рис. 3.21

Схема вимірювання температури

Виміряне напруга аналого цифрового перетворювача буде давати значення в вольтах, тому для перекладу в градуси необхідно відкоригувати формули в соотвідповідне місцях програмного коду.

Джерело: Магда Ю. С. Комп’ютер в домашній лабораторії. – М.: ДМК Пресс, 2008. – 200 с.: Іл.