Рассматриваются схема подключения и принцип работы энкодера. Разрабатываем алгоритм управления устройствами с помощью энкодера.
Собираем схему бегущих огней с управлением энкодером. Приведены принципиальные электрические схемы и фотографии прототипов экспериментальной установки. Рассчитано на детей 7+, делающих первые шаги в освоении электроники.
Цель занятия:
- Знакомство с принципом работы энкодера.
- Приобретение детьми навыка проектирования алгоритма работы программы.
- Закрепление детьми навыка сборки электрической цепи по принципиальной электрической схеме.
- Проектирование полезных конструкций с использованием энкодера.
Оборудование и пособия.
- Макетная плата
- Блок питания 4,5 Вольт.
- Провод монтажный.
- Модуль Arduino NANO
- Резистор 130 Ом 8 шт.
- Светодиоды d5 мм 8 шт.
- Энкодер
План занятия.
- Что мы уже должны знать.
- Теоретическая часть. Знакомство с принципом работы энкодера.
- Разработка алгоритма работы программы для устройств с энкодером.
- Практическая часть. Сборка электронной схемы с Ардуино и энкодером.
- Проектирование полезных конструкций с энкодером.
- Проверка полученных знаний.
Что нам необходимо знать?
На этом занятии мы будем использовать макетную плату, модуль Arduino, резисторы, светодиоды и монтажные провода. С этими деталями мы с вами уже знакомы по предыдущим занятиям.
Мы будем составлять алгоритм работы программы для устройств с энкодером. Вспомните какую функцию описывают в алгоритмах прямоугольники, ромбы и стрелки. Вспомните, что такое переменная и как она используется в программе.
Вспомните, что в программе для Arduino, как правило, присутствуют три блока:
Объявление переменных.
Определение функции void setup().
Определение функции void loop().
Не забывайте, неправильно поданное напряжение питания на электронную схему может вывести электронную схему из строя, Будьте особо внимательны с Arduino модулем.
Теоретическая часть.
Энкодер рис. 1 — электромеханическое устройство (в простейшем случае). Энкодер — датчик, преобразующий угол поворота в электрические сигналы. Энкодер, так же, позволяет определить направление вращения.
Рис. 1. Энкодер.
Внешний вид, внутреннее устройство и простейшая схема подключения энкодера представлены на рис. 1. На вращающейся ручке энкодера закреплен контактный диск. Средний вывод энкодера соединен с вращающимся диском, а два крайних вывода скользят по краю диска. На краю диска, в зоне действия контактов крайних выводов расположены прорези, таким образом, что пара крайних контактов может замыкаться на диск одновременно, по очереди или совсем не контактировать с диском.
Обычно, средний вывод подключают к - источника, а крайние выводы, через резисторы, подключают к + источника тока, как показано на рис. 1. На выходах энкодера, подключенного по этой схеме, в процессе работы, поочередно возникают 4 комбинации логических уровней сигналов.
Рис. 2. Диаграммы иллюстрирующие принцип работы энкодера.
Рис. 3. Упрощенные принципиальные электрические схема подключения энкодера.
На схеме рис. 3 а) используются только крайние выводы энкодера. Соединение левых на рисунке контактов кнопок выполняет диск внутри энкодера. Цепь на этой схеме замыкается только тогда, когда оба контакта энкодера одновременно замыкаются на диск.
На схеме рис. 3 б) мы, медленно вращая ручку энкодера, можем наблюдать порядок замыкания контактов. Обратите внимание, что порядок замыкания контактов энкодера изменится если мы начнём вращать ручку энкодера в другом направлении.
Задание 2. По очереди, соберите на макетной плате схемуы с энкодером по принципиальным схемам изображенным на рис. 3.
Задание 3. Соберите на макетной плате схему с энкодером по принципиальной схеме изображенной на рис. 3 б), используя вместо светодиодов LD1 и LD2 красный и синий светодиод RGB светодиода.
Примечание: Использовать в схеме изображённой на рис. 3 б) трёхцветный светодиод предложил Коля 7 лет.
Вращение против часовой стрелки | Вращение по часовой стрелкe |
---|---|
Выключено | |
Выключено | |
Рис. 4. Таблица, демонстрирующая разницу в порядке замыкания контактов энкодера при вращении ручки энкодера в разных направлениях.
Рис. 5. Принципиальная электрическая схема подключения энкодера к Arduino NANO.
Задание 5. Нарисуйте в тетради схематическое изображение энкодера, как изображено в правом верхнем углу на схеме рис. 5.
Рис. 6. Алгоритм работы программы использующей показания энкодера.
Практическая часть.
Задание 6. Нарисуйте в тетради алгоритм работы бегущего огня управляемого энкодером изображенный на рис. 5.
Задание 7. Соберите на макетной плате схему бегущего огня с энкодером по принципиальной схеме изображенной на рис. 5.
Рис. 7. Макет схемы подключения энкодера к Arduino NANO.
Программу, функционирующую в соответствии с алгоритмом изображенным на рис. 6, для микроконтроллера на плате Arduino удобнее всего написать в среде Arduino на языке Си.
#include <Encoder.h>
Encoder myEnc(9, 10);
long oldPosition = 0;
void setup() {
DDRD = 0b11111111;
PORTD = 0b00001000;
}
void loop() {
long newPosition = myEnc.read();
if (newPosition > oldPosition) {
PORTD = ((PORTD << 1) | (PORTD >> 7));
}
if (newPosition < oldPosition) {
PORTD = ((PORTD >> 1) | (PORTD << 7));
}
oldPosition = newPosition;
}
Лист. 1. программa для испытаний энкодера.
#include <BasicEncoder.h>
BasicEncoder myEnc(9, 10);
long oldPosition = 0;
void setup() {
DDRD = 0b11111111;
PORTD = 0b11110111;
}
void loop() {
myEnc.service();
long newPosition = myEnc.get_count();
if (newPosition > oldPosition) {
PORTD = PORTD >> 1 | PORTD << 7;
}
if (newPosition < oldPosition) {
PORTD = PORTD << 1 | PORTD >> 7;
}
oldPosition = newPosition;
}
Лист. 2. программa для испытаний энкодера.
Работа над проектами.
Задание №8. Придумайте и нарисуйте полезные устройства с применением микроконтроллера и энкодера.
Например, энкодер можно использовать в Дарвиновском музее в интерактивном экспонате для выбора меню. Мы можем сделать экспонат с голосами птиц, а выбор дорожки воспроизведения можно осуществлять с помощью энкодера.
Ефим предложил использовать энкодер в погодной станции. На ось энкодера можно установить флюгер и измерять направление ветра, а пропеллер флюгера можно установить на второй энкодер и по его сигналам измерять скорость ветра.
Александр предложил использовать энкодер для корректировки показаний электронных часов.
Так же, Александр предложил использовать энкодер для определения угла вектора направления на интерактивных картах.
Дима предложил с помощью энкодера выбирать точку на логистической цепочке курьерских доставок.
Сергей 11 лет предложил на петли в сенях в деревенском доме устанавливать энкодер, чтобы в зимнее время следить за тем, чтобы входные двери не держали долго открытыми.
Выводы:
Анализируя логические сигналы на выходах энкодера можно определить угол поворота, направление и скорость вращения ручки энкодера.
Контрольные вопросы.
В чем принципиальное отличие схем изображенных на рис. 3?
Литература.
www.adior.ru
Wikipedia
Библиотека для энкодера https://www.arduinolibraries.info/libraries/encoder
Библиотека для энкодера https://www.arduinolibraries.info/libraries/basic-encoder