Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Практическое занятие 1. Опрос кнопки



Курс «Основы робототехники». Занятие 5. Цифровой ввод

Arduino Uno может считывать два уровня напряжения: +5 В (HIGH, логическая 1) и 0 В (LOW, логический 0) любым своим входом: как цифровыми D0…D13, так и аналоговыми A0…A5

Примечание: используя кодирование информации, можно подать на входы и более сложную информацию, например, с цифрового датчика температуры DS18B20

Для считывания уровня напряжения на пине Arduino используется команда

digitalRead(номер пина);

она выдает состояние HIGH, если на пине +5 В или состояние LOW, если на пине 0 В

Примечание: перед использованием на пине команды digitalRead обязательно нужно настроить этот пин в блоке setup как входной, используя команду pinMode(номер пина, INPUT);

Применение цифрового ввода:

· подключение к контроллеру отдельных кнопок или их набора (создание клавиатуры) для управления и ввода информации

· датчики прикосновения на роботах на основе кнопок – «усики» робота

· концевые выключатели на станках с ЧПУ и 3D принтерах, определяющие минимумы и максимумы движения рабочих инструментов по трем осям (X, Y, Z) на основе кнопок или оптических датчиков

Практическое занятие 1. Опрос кнопки

Нужные компоненты:

l кнопка

l резистор на 1 кОм

l красный провод на +5 В, синий или черный провод (GND), провод любого другого цвета – сигнальный со штырьками на обоих концах

1. схема для опроса кнопки представлена ниже. Принцип работы: когда кнопка SA1 отжата, +5 В никуда не подключен и напряжение на цифровом входе равно напряжению на Gnd (0 В, LOW). Когда кнопка SA1 нажата, +5 В через нее подключается через нее ко входу Digital и напряжение на нем тоже становится +5 В (HIGH)

2. соберите приведенную выше схему на макетной плате:

 

3.
запустите среду разработки Arduino IDE, откройте пример программы для определения состояния кнопки (нажата или отжата) Файл / Примеры / Digital / Button

4.переведем комментарии к данной программе на русский язык:

const int buttonPin = 2; // номер пина, к которому подключена кнопка const int ledPin = 13; // светодиод на плате Arduino int buttonState = 0; // переменная для хранения статуса кнопки (нажата или не нажата)   void setup() { pinMode(ledPin, OUTPUT); // пин 13 – выходной (управление светодиодом) pinMode(buttonPin, INPUT);// пин 2 – входной (чтение кнопки) }     void loop(){ buttonState = digitalRead(buttonPin); // читаем состояние кнопки и записываем в переменную buttonState   if (buttonState == HIGH) { // если в переменной buttonState высокий уровень digitalWrite(ledPin, HIGH); // зажжем светодиод } else { // иначе digitalWrite(ledPin, LOW); // погасим светодиод } }

 

1.В данной программе используется неизвестные нам ранее команды if, else (если, иначе). Они работают так:

if (условие) { // выполнить, если условие выполняется } else { // выполнить, если условие не выполняется }

Примеры условия:

· x = = 10 – выполняется, если переменная x равна 10

· x != 10 – выполняется, если переменная x не равна 10

· x > 10 – выполняется, если переменная x больше 10

5. Подключите контроллер к компьютеру, загрузите данную программу и попробуйте работу: при нажатии/отпускании кнопки светодиод L на плате Arduino должен загораться или потухать