Читаем Создаем робота-андроида своими руками полностью

Для начала посмотрим, как микроконтроллер может определить замыкание цепи. Для этой цели могут быть использованы любые из 13 шин ввод/вывод, которые работают в логике TTL. Для определения замыкания мы будем использовать эти логические уровни в соединении с выключателями (см. рис. 6.20).

Выключатели низкого уровня

На рис. 6.20 выключатель с меткой А выдает на шину ввода/вывода сигнал высокого логического уровня до момента замыкания. После замыкания шина «садится» на землю, т. е. получает сигнал низкого уровня. Когда микроконтроллер получает сигнал замыкания, он может произвести ряд операций или функций управления. В нашем случае замыкание контакта выключателя вызовет мигание светодиода. Понятно, что светодиод может быть заменен транзистором, преобразователем, электронной схемой или другим микроконтроллером или компьютером.

Рис. 6.20. Переключатели логических уровней


Программа на PICBASIC имеет следующий вид:


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

‘REM проверка выключателя низкого уровня

‘ Инициализация переменных

input 4 ‘Назначить шину PB4 для определения состояния выключателя

start:

if pin4 = 0 then blink ‘Если выключатель выдает низкий уровень – све

тодиод мигает

goto start ‘Если нет – проверить состояние выключателя

blink: ‘Процедура мигание

high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода

pause 250 ‘Задержка ј с

low 0 ‘Низкий уровень на шине RB0 для гашения светодиода

pause 250 ‘Задержка ј с

goto start ‘Проверка состояния выключателя


Программу на PICBASIC Pro можно составить следующим образом:


‘REM BASIC Pro компилятор

‘Rem проверка выключателя низкого уровня

input portb.4 ‘Назначить шину PB4 для определения состояния выключателя

start:

if port.b = 0 then blink ‘Если выключатель выдает низкий уровень – све

тодиод мигает

goto start ‘Если нет – проверить состояние выключателя

blink: ‘Процедура мигание

high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода

pause 250 ‘Задержка ј с

low 0 ‘Низкий уровень на шине RB0 для гашения светодиода

pause 250 ‘Задержка ј с

goto start ‘Проверка состояния выключателя


Схема устройства для выключателя низкого уровня приведена на рис. 6.21. Выключатель соединен с шиной ввода/вывода, помеченной RB4. Светодиод соединен с шиной RB0 через ограничительный резистор 470 Ом.

Рис. 6.21. Схема ключа низкого уровня

Выключатели высокого уровня

Программы и схемные решения для данного случая комплементарны предыдущему примеру. Посмотрим снова на рис. 6.20 – вариант В. Если переключатель с меткой В находится в положении «выключено», то шина выхода имеет низкий логический уровень. При замыкании переключателя на шину поступает сигнал высокого логического уровня.

Программа на PICBASIC имеет следующий вид:


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

‘REM проверка выключателя высокого уровня

‘ Инициализация переменных

input 4 ‘Назначить шину PB4 для определения состояния выключателя

start:

if pin4 = 1 then blink ‘Если выключатель выдает высокий уровень – све

тодиод мигает

goto start ‘Если нет – проверить состояние выключателя

blink: ‘Процедура мигание

high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода

pause 250 ‘Задержка ј с

low 0 ‘Низкий уровень на шине RB0 для гашения светодиода

pause 250 ‘Задержка ј с

goto start ‘Проверка состояния выключателя


Программу на PICBASIC Pro можно составить следующим образом:


‘REM BASIC Pro компилятор

‘Rem проверка выключателя высокого уровня

input portb.4 ‘Назначить шину PB4 для определения состояния выключателя

start:

if port.b = 0 then blink ‘Если выключатель выдает высокий уровень —

светодиод мигает

goto start ‘Если нет – проверить состояние выключателя

blink: ‘Процедура мигание

high 0 ‘Высокий уровень на шине RB0 для зажигания светодиода

pause 250 ‘Задержка ј с

low 0 ‘Низкий уровень на шине RB0 для гашения светодиода

pause 250 ‘Задержка ј с

goto start ‘Проверка состояния выключателя


Схема устройства для выключателя высокого уровня показана на рис. 6.22. Выключатель соединен с шиной ввода/вывода, обозначенной RB4. Светодиод подключен к шине RB0 через ограничительный резистор 470 Ом.

Рис. 6.22. Схема ключа высокого уровня

Считывание данных компаратора

Микроконтроллер может также считывать данные логических уровней с других микроконтроллеров, схем и ИС. В качестве примера рассмотрим схему на рис. 6.23. В этой схеме микроконтроллер считывает данные выхода компаратора. Выход компаратора LM339 построен по схеме NPN транзистора, поэтому для создания сигнала высокого уровня необходимо использовать резистор смещения. Микроконтроллер считывает данные выхода компаратора аналогично алгоритму выключателя низкого уровня.

Рис. 6.23. Схема чтения компаратора

Считывание данных резистивных датчиков

Перейти на страницу:

Похожие книги

Схватка гигантов
Схватка гигантов

Аннотация издательства : Первый том сериала "Морские битвы Первой мировой" посвящен великому противостоянию английского и немецкого линейных флотов, завершившемуся грандиозным Ютландским боем. Это сражение стало кульминацией невидимой борьбы Джона Арбетнота Фишера и Альфреда фон Тирпица – создателей Гранд Флита и Флота Открытого Моря – и адмиралов Джеллико, Битти, Шеера и Хиппера – их командующих. В книге подробно рассмотрены боевые действия крейсерских эскадр и линейных крейсеров, сражения в Северном море и, наконец, те несколько часов 31 мая 1916 года, когда исполинские флоты встретились в открытом бою.Книга снабжена большим справочным аппаратом и станет настоящим подарком для всех любителей военной истории.

Александр Геннадьевич Больных

Документальная литература / История / Технические науки / Образование и наука