Рис. 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

Сейчас мы не будем рассматривать соединение через последовательный порт; важно то, что вы получили об этом представление.

Сервомоторы

Сервомоторы представляют собой двигатели постоянного тока с редуктором, снабженные системой обратной связи, которая позволяет позиционировать положение ротора сервомотора с высокой точностью. Вал большинства сервомоторов для любительского конструирования может быть позиционирован в интервале поворота не менее 90° (±45°). Сервомотор имеет три вывода. Два вывода подключаются к источнику питания, как правило, от 4,5 до 6 В и к земляному проводу. По третьему проводу подается сигнал обратной связи, позиционирующий ротор мотора. Сигнал позиционирования представляет собой цепочку импульсов переменной длительности. Обычно длительность импульсов варьирует в интервале от 1 до 2 мс. Своей длительностью импульсы управляют положением вала сервомотора.

Команда pulsout генерирует на заданной шине импульс заданной длительности с шагом 10 мкс. Таким образом, команда pulseout 1, 150 будет выдавать импульсы длиной 1,5 мс на шине 1. Импульс длиной 1,5 мс повернет вал сервомотора в среднее положение.

Программа качания сервомотора

Демонстрационная программа будет качать вал сервомотора из левого положения в правое и обратно аналогично качанию параболической антенны радара. Схема устройства приведена на рис. 6.26.

Рис. 6.26. Схема включения сервомотора

Ниже приведена программа для компилятора PICBASIC:

‘Программа качания сервомотора

‘Компилятор PICBASIC

‘Программа осуществляет качание из левого положения в правое и обратно

b0 = 100 ‘Инициализация левого положения

sweep: ‘Процедура прямого прохода

pulsout 0,b0 ‘Посылка импульса в сервомотор

pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)

b0 = b0 + 1 ‘Увеличение длины импульса

if b0 > 200 then sweepback ‘Конец прямого хода?

goto sweep ‘Нет, продолжение прямого прохода

sweepback: ‘Процедура обратного прохода

b0 = b0 – 1 ‘Уменьшение длины импульса

pulsout 0,b0 ‘Посылка импульса в сервомотор

pause 18 ‘Ожидание 18 мс (от 50 до 60 Гц)

if b0 < 100 then sweep ‘Конец обратного хода?

goto sweepback ‘Нет

Программа для компилятора PICBASIC Pro:

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату