Інтерфейси аналогових сигналів
Більшість вимірювань фізичних величин оперують з аналоговими, тобто безперервного ними сигналами, що змінюються в часі. Для обробки таких сигналів в комп’ютері необхідно перетворити їх у цифрову форму. Цей процес називається аналого цифро вим перетворенням, і він є своєрідним мостом між «аналоговим» физиче ським світом і цифровим світом комп’ютерів. Для перетворення використовуються спеціаль ні мікросхеми аналого цифрових перетворювачів. Ми розглянемо декілька простих реалізацій аналого цифрових перетворень, в яких дані будуть прийматися через паралельний порт персонального комп’ютера, що працює під управлінням операційної них систем 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 с.: Іл.
Сподобалася стаття? Натисни "+1"! :
Ще статті:
- Вольтметр мережевої напруги з розтягнутою шкалою і світловою сигналізацією (0)
- Робимо геймпад для PC (0)
- Кварцованний ЧМ передавач (0)
- Застосування комп'ютерних блоків живлення (0)
- Блокіратор "піратського" телефону (0)
- Перетворювач напруги 12-вольтового автоаккумулятора в мережеве 220 В 50 Гц (0)
- Кодовий замок підвищеної секретності (0)
Ваш відгук