Читайте также: |
|
Микроконтроллер может непосредственно считывать данные резистивных датчиков в диапазоне от 5 до 50 кОм. К микроконтроллеру может быть подсоединен резистивный датчик любого типа: фоторезистор (элемент на основе сульфида кадмия CdS), термистор с положительным или отрицательным ТК, датчик наличия ядовитого газа, датчик изгиба или влажности. Микроконтроллер измеряет сопротивления по времени разряда конденсатора в RC цепочке (см. рис. 6.24).
Рис. 6.24. Схема команды РОТ
Командой для чтения данных резистивного датчика является:
Pot pin, scale, var
Pot представляет собой имя команды, а pin – номер шины, к которой подключен датчик. Переменная scale используется для задания времени RC цепочки. При большом времени RC цепочки значение scale должно быть низким, а для малого времени RC цепочки scale должно быть установлено на максимальное значение, составляющее 225. Если значение scale установлено правильно, то значение переменной var будет близким к нулю при минимальном сопротивлении и достигать 225 – при максимальном.
Значение переменной scale может быть определено экспериментально. Для того чтобы найти подходящее значение scale, необходимо определить максимальное рабочее сопротивление датчика и считать показания var при установке параметра scale равным 225. При этом условии значение переменной var будет представлять собой хорошее приближение значения scale.
Основная схема изображена на рис. 6.25. Для имитации резистивного датчика в схему включен переменный резистор 50 кОм. При изменении сопротивления переменного резистора в зависимости от значения переменной В0 будет загораться один из двух светодиодов. Если значение сопротивления превысит 125 – загорится светодиод 1, в противном случае будет гореть светодиод 2.
Рис. 6.25. Схема команды РОТ
Программа на PICBASIC имеет следующий вид:
‘Компилятор PICBASIC ** считывание данных резистивных датчиков **
‘Тест программа для фотосопротивлений
‘Установка
start:
pot 2,255,b0 ‘Считать показания датчика на шине RB2
if b0 > 125 then l1 ‘Если значение больше 100, включить светодиод 1
if b0 <= 125 then l2 ‘Если значение меньше 100, включить светодиод 2
l1: ‘Процедура включения светодиода 1
high 0 ‘Включить светодиод 1
low 1 ‘Выключить светодиод 2
goto start ‘Повторение
l2: Процедура включения светодиода 2
high 1 ‘Включить светодиод 2
low 0 ‘Выключить светодиод 1
goto start ‘Повторение
Программу для компилятора PICBASIC Pro можно составить следующим образом:
‘Компилятор PICBASIC Pro ** считывание данных резистивных датчиков **
‘Тест программа для фотосопротивлений
‘Установка
output portb.0 ‘Установка шины RB0 как выходной
output portb.1 ‘Установка шины RB1 как выходной
b0 var byte
start:
portb.2,255,b0 ‘Считать показания датчика на шине RB2
if b0 > 125 then l1 ‘Если значение больше 100, включить светодиод 1
if b0 <= 125 then l2 ‘Если значение меньше 100, включить светодиод 2
l1: ‘Процедура включения светодиода 1
high 0 ‘Включить светодиод 1
low 1 ‘Выключить светодиод 2
goto start ‘Повторение
l2: Процедура включения светодиода 2
high 1 ‘Включить светодиод 2
low 0 ‘Выключить светодиод 1
goto start ‘Повторение
Можно сделать демонстрацию более интересной, заменив переменное сопротивление фоторезистором на основе CdS. При правильном подборе резистора, темновое сопротивление которого составляет от 50 до 100 кОм и сопротивление светового насыщения порядка 10 кОм или ниже, при закрывании резистора или в темноте будет зажигаться светодиод 1. На ярком свете будет гореть светодиод 2.
Возможен последовательный вывод численного значения переменной pot на ЖК дисплей, соединенный с микроконтроллером через последовательный порт, или в ПК через последовательный порт RS232. Для организации последовательного порта необходима команда:
Serout Pin, Mode, Var
Сейчас мы не будем рассматривать соединение через последовательный порт; важно то, что вы получили об этом представление.
Дата добавления: 2015-08-17; просмотров: 95 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Считывание данных компаратора | | | Программа качания сервомотора |