Занятие 11 Силовые устройства
.docКурс «Основы робототехники». Занятие 11 Силовые устройства
Напрямую к цифровым контактам Arduino можно подключать только устройства, потребляющие небольшую мощность, например, светодиод и спикер. Для доказательства можно рассмотреть возможность подключения электромотора:
сопротивление мотора 10 Ом. При напряжении +5 В (выдаваемым пином Arduino) в соответствии с законом Ома U = I · R через мотор потечет ток
I = U / R = 5 / 10 = 0,5 А = 500 мА,
что намного больше, чем допустимый ток через цифровой контакт Arduino, равный 40 мА. Поэтому при подключении мотора к контакту Arduino в лучшем случае ничего не будет работать, в худшем – контроллер выйдет из строя.
Чтобы этого не случилось, для управления контроллером мощными приборами используются специальные устройства, называемые драйверами. В занятии рассматривается использование в качестве драйвера реле и транзисторного ключа. На следующем занятии будет рассмотрен и драйвер двигателя на микросхеме L298N
Подключение мощной нагрузки через реле
Простым вариантом управления нагрузкой является реле – переключатель, управляемый магнитным полем катушки, ток через которую управляется контроллером. Недостатком реле является невозможность управления уровнем напряжения – только включение и выключение
Практическое занятие 1. Управление реле
В используемом модуле реле имеется три силовых контакта в виде клеммников. При отсутствии управляющего напряжения на контакте In (состояние LOW на пине) средний контакт и один из крайних замкнут, а средний и другой крайний – разомкнут. При наличии +5 В на пине In модуль реле со щелчком переключается – теперь первая пара контактов разомкнута, а вторая – замкнута
-
Подключите модуль реле к контроллеру в соответствии со схемой – Gnd к Gnd, Vcc к 5V, In – к цифровому пину 13
-
Загрузите в Arduino программу Файл / Примеры / Basic / Blink и убедитесь, что зажигается/потухает светодиод L на контроллере, щелкает реле и вращается/останавливается мотор. Попробуйте изменить периоды delay и загрузить получившуюся программу
Примечание 1: обычно подобные модули реле используются для подключения нагрузки к сети ~220 В (максимально допустимые напряжения и ток написаны на корпусе реле), при этом контакты от розетки ~220 В подключаются вместо +5 В над мотором и Gnd под ним
Примечание 2: только маленькие моторы можно питать от +5 В Arduino, для более мощных необходимо использовать другой источник питания
Подключение мощной нагрузки через транзисторный ключ
В некоторых случаях использовать реле не имеет смысла, например, когда требуется управлять не сетью ~220 В, а коммутацией напряжения +5 В или +12 В, дешевле использовать транзисторный ключ. Кроме того, при использовании ШИМ (коротких импульсов с целью создать определенное напряжение, команда analogWrite) реле не будет успевать переключаться, в данном случае можно использовать только транзисторный ключ.
Используем транзисторы КТ815 или КТ817. Они имеют одинаковый корпус и близки по характеристикам, то есть взаимозаменяемы. Могут работать со сравнительно большой мощностью – небольшими электромоторами, динамиками, лампочками и т.д. Корпус и расположение выводов транзистора показано на рисунке.
Если повернуть транзистор ножками вниз надписью (типа КТ815 или 7BF7) к себе, то выводы расположены слева направо: эмиттер, коллектор, база
Примечание: в надписи наподобие 7BF7 первая цифра говорит о типе транзистора – КТ817 если 7, и КТ815, если 5 (если 4 или 6 – КТ814 и КТ816)
Практическое занятие 2. Включение/выключение мотора
Когда цифровой пин Arduino (Digital) имеет статус LOW (логический 0, напряжение 0 В), ток на базе транзистора Б отсутствует и транзистор закрыт – между ножками коллектор К и эмиттер Э имеется большое сопротивление и ток через него не идет – мотор не вращается
Когда пин Arduino Digital имеет статус HIGH (логическая 1, напряжение +5 В), ток на базе транзистора Б имеется и транзистор открыт – сопротивление между ножками коллектор К и эмиттер Э мало и ток через него идет – мотор вращается
-
Соберите на макетной плате данную схему:
-
Позовите преподавателя для проверки схемы
-
Загрузите в Arduino программу Файл / Примеры / Basic / Blink и убедитесь, что зажигается/потухает светодиод L на контроллере и вращается/останавливается мотор
Практическое занятие 3. Управление скоростью мотора с использованием ШИМ (analogWrite)
-
Добавьте в собранную ранее схему переменный резистор, которым будем управлять скоростью вращения мотора и переключите контакт базы транзистора на пин 9, поддерживающий команду analogWrite:
-
Закачайте в контроллер программу Файл / Примеры / Analog / AnalogInOutSerial и убедитесь, что при повороте резистора меняется скорость вращения мотора (можете надеть скрепку на ось мотора, чтобы лучше видеть изменение скорости вращения)
Домашнее задание
№ |
Задание |
1 |
Схема управления динамиком через транзисторный ключ. Рассчитать максимальный ток по закону Ома исходя из сопротивления динамика и убедиться, что ток не превышает допустимый уровень для питания от USB (500 мА). Командой tone позвучать динамиком (управление частотой звука переменным резистором) |
2 |
Три мотора, управляемых реле или транзисторными ключами (на выбор). Цикл: включить по очереди: первый, второй, третий. Выключить по очереди: первый, второй, третий |
3 |
Система охлаждения: датчик температуры DS18B20, транзисторный ключ, управляющий вентилятором (комп. кулер). Когда температура с датчика ниже 20 градусов – вентилятор не работает. Когда температура выше 20 градусов – вентилятор включается на половину мощности. Когда выше 25 градусов – вентилятор включается на всю мощность |
4 |
Прототип системы ориентации и измерения расстояния: ультразвуковой датчик расстояния, два мотора, две кнопки, два реле или транзисторных ключа (на выбор). Когда нажата первая кнопка, вращается первый мотор, вторая – второй мотор. Скорость вращения моторов зависит от расстояния с датчика расстояния: от 3 см (мотор стоит) до 50 см (максимальная скорость) |
5 |
Контакты In1 и In3 на роботе использовать вместо транзисторных ключей. После каждой digitalWrite задержка (delay). Цикл: digitalWrite(HIGH) на оба мотора (едет вперед), digitalWrite(HIGH) на первый мотор (поворачивает в одну сторону), digitalWrite(HIGH) на второй мотор (поворачивает другую в сторону) |
6 |
Модель системы охлаждения: датчик температуры DS18B20, транзисторный ключ, вентилятор (комп. кулер). Скорость вращения вентилятора обратно пропорциональна температуре в диапазоне от 20 градусов (вентилятор не вращается) до 36 градусов (максимальная скорость) |
7 |
Три мотора, управляемых реле или транзисторными ключами (на выбор). Цикл: включить по очереди: первый, второй, третий. Выключить по очереди: первый, второй, третий |
8 |
Два мотора, управляемых транзисторными ключами. Цикл: один мотор плавно наращивает скорость, плавно снижает. Второй мотор плавно наращивает скорость, плавно снижает. Оба мотора плавно наращивают скорость, плавно снижают |
9 |
Система охлаждения: датчик температуры DS18B20, два реле или транзисторных ключа (на выбор), управляющий каждый своим вентилятором (комп. кулер). Когда температура с датчика ниже 20 градусов – вентиляторы не работает. Когда температура выше 20 градусов – работает один из вентиляторов. Когда выше 25 градусов – включаются оба вентилятора |
10 |
Контакты In1 и In3 на роботе использовать вместо транзисторных ключей. После каждой digitalWrite задержка (delay). Цикл: digitalWrite(HIGH) на оба мотора (едет вперед), digitalWrite(HIGH) на первый мотор (поворачивает в одну сторону), digitalWrite(HIGH) на второй мотор (поворачивает в другую сторону) |
11 |
Два мотора, два переменных резистора, два транзисторных ключа. Скорость первого мотора зависит от угла поворота первого резистора, второго – второго резистора |