Файл: Методические указания к выполнению лабораторных работ по дисциплине Основы электротехники в робототехнике.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 182
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1 Перечень необходимых средств для выполнения лабораторных работ
2.1 Как подключить светодиод к Arduino
2.3 Меняем цвет по нажатию кнопки
2.5 Классы в программах Ардуино. Кнопка как объект.
3.1 Подключение семисегментного индикатора
3.2 Подключение LED индикатора с TM1637
3.3 Подключение LCD 1602 (HD44780) к Arduino
3.4 Подключение LCD1602 по I2C к Ардуино
4.1 Подключение матричной клавиатуры к Arduino
4.2 Подключение клавиатуры 4*4 и пьезоизлучателя к Arduino
3.2 Подключение LED индикатора с TM1637
Часто проекты требуют от нас вывода данных с различных датчиков и устройств в монитор порта или же на дисплей, например, для вывода данных с датчика температуры. Многие из вас уже знакомы с бюджетным дисплеем LCD 1602, подключаемым с помощью i2c интерфейса.
Но существуют также и LED дисплеи. С их помощью можно выводить те же данные, но в более удобном формате: за счет большего размера дисплея данные легче считывать, а еще с их помощью можно создать проект наподобие настоящих часов!
В данном задании разберем устройство LED индикатора TM1637, научимся подключать его к Arduino и писать программный код для работы с ним!
Для реализации проекта потребуются следующие компоненты:
-
Arduino Uno R3 -
Семисегментный индикатор TM1637 -
Макетная плата на 400 точек -
Набор макетных проводов “папа-мама”
ОБЗОР МОДУЛЯ
Модуль представляет собой небольшую плату, на которой установлен LED 4-х разрядный семисегментный дисплей на основе одноименного i2c драйвера TM1637.
Внешне конструкция довольно простая, и на этом останавливаться сильно не будем. Разве что, можно отметить, что продается модуль иногда и в качестве 8-разрядной версии, которая будет занимать больше выводов для подключения к Arduino.
Также на некоторых дисплеях, например от RobotDyn, на дисплее имеется также и часовой разделитель в виде двоеточия. Именно поэтому очень широкое применение индикатор TM1637 нашел в DIY часах на Arduino.
Схема подключения
Благодаря наличию i2c интерфейса на борту, подключается модуль очень просто – с помощью четырех контактов. Два из них отвечают за питание и подключаются к выводам 5V и Gnd на панели Power нашего контроллера; два других, называются они CLK и DIO, подключатся к цифровым выводам, например 3 и 2, соответственно.
Визуальная схема подключения, для вашего удобства, изображена на картинке справа:
Подключение в arduino ide
Перед тем, как начинать писать программный код, а затем уже и ломать голову над более сложными проектами, необходимо загрузить специализированную библиотеку для нашего дисплея – tm1637.h: СКАЧАТЬ
Одновременно с загруженной библиотекой в папке «примеры» появятся три новых кода для ознакомления и проверки работоспособности. Познакомимся с одним из них.
Приведенный ниже код выводит на дисплей любые 4 символа, которые мы пропишем перед компиляцией, а также включает и выключает часовой разделитель с задержкой в 1 секунду (1000 миллисекунд):
Код для вывода на дисплей любых 4 символов
#include "TM1637.h" // Подключаем библиотеку для работы с модулем
int8_t DispMSG[] = {1, 2, 3, 4}; // Настройка символов для последующего вывода на дислей
//Определяем пины для подключения к плате Arduino
#define CLK 3
#define DIO 2
//Создаём объект класса TM1637, в качестве параметров
//передаём номера пинов подключения
TM1637 tm1637(CLK, DIO);
void setup()
{
//Инициализация модуля
tm1637.init();
//Установка яркости горения сегментов
/*
BRIGHT_TYPICAL = 2 Средний
BRIGHT_DARKEST = 0 Тёмный
BRIGHTEST = 7 Яркий
*/
tm1637.set(BRIGHT_TYPICAL);
}
void loop()
{
//Задание на включение разделителя
tm1637.point(true);
//Выводим массив на дисплей
tm1637.display(DispMSG);
//Задержка
delay(1000);
//Задание на выключение разделителя
tm1637.point(false);
//Выводим массив на дисплей
tm1637.display(DispMSG);
//Задержка
delay(1000);
}
После загрузки и успешной компиляции данного кода, мы увидим цифры 1, 2, 3, 4 на LED экране.
3.3 Подключение LCD 1602 (HD44780) к Arduino
LCD дисплеи размерности 1602, на базе контроллера HD44780, являются одними из самых простых, доступных и востребованных дисплеев для разработки различных электронных устройств. Его можно встретить как и в устройствах собранных на коленке, так и в промышленных устройствах, таких, как например, автоматы для приготовления кофе. На базе данного дисплея собраны самые популярные модули и шилды в тематике Arduino такие как LCD I2C модуль и LCD Keypad Shield.
В данном задании мы научимся как его подключить к Arduino и вывести информацию.
Данные дисплеи имеют два исполнения: желтая подсветка с черными буквами либо, что встречается чаще, синюю подсветку с белыми буквами.
Размерность дисплеев на контроллере HD44780 может быть различной, управляться они будут одинаково. Самые распространенные размерности 16x02 (т.е. по 16 символов в двух строках) либо 20x04. Разрешение же самих символов - 5x8 точек.
Большинство дисплеев не имеют поддержку кириллицы, имеют её лишь дисплеи с маркировкой CTK.
Выводы дисплея:
На дисплее имеется 16pin разъем для подключения. Выводы промаркированы на тыльной стороне платы.
1 (VSS) - Питание контроллера (-)
2 (VDD) - Питание контроллера (+)
3 (VO) - Вывод управления контрастом
4 (RS) - Выбор регистра
5 (R/W) - Чтение/запись ( режим записи при соединении с землей)
6 (E) - Еnable (строб по спаду)
7-10 (DB0-DB3) - Младшие биты 8-битного интерфейса
11-14 (DB4-DB7) - Старшие биты интерфейса
15 (A) - Анод (+) питания подсветки
16 (K) - Катод (-) питания подсветки
Режим самотестирования:
Перед попытками подключения и вывода информации, было бы неплохо узнать рабочий дисплей или нет. Для этого необходимо подать напряжение на сам контроллер (VSS и VDD), запитать подсветку (
A и K), а также настроить контрастность.
Для настройки контрастности следует использовать потенциометр на 10 кОм. Каким он будет по форме - не важно. На крайние ноги подается +5V и GND, центральная ножка соединяется с выводом VO
После подачи питания на схему необходимо добиться правильного контраста, если он будет настроен неверно, то на экране ничего не будет отображаться. Для настройки контраста следует поиграться с потенциометром.
При правильной сборке схемы и правильной настройке контраста, на экране должна заполниться прямоугольниками верхняя строка.
Вывод информации:
Для работы дисплея используется встроенная с среду Arduino IDE библиотека LiquidCrystal.h
Функционал библиотеки
Сам же дисплей может работать в двух режимах:
• 8-битный режим - для этого используются и младшие и старшие биты (BB0- DB7)
• 4-битный режим - для этого используются и только младшие биты (BB4- DB7)
Использование 8-битного режима на данном дисплее не целесообразно. Для его работы требуется на 4 ноги больше, а выигрыша в скорости практически нет т.к. частота обновления данного дисплея упирается в предел < 10раз в секунду.
Для вывода текста необходимо подключить выводы RS, E, DB4, DB5, DB6, DB7 к выводам контроллера. Их можно подключать к любым пинам Arduino, главное в коде задать правильную последовательность.
Пример программного кода:
//Тестировалось на Arduino IDE 1.0.5
#include <LiquidCrystal.h> // Лобавляем необходимую библиотеку
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)
void setup(){
lcd.begin(16, 2); // Задаем размерность экрана