Это старая версия документа!


Эксперимент 29. Привет, Мир! LCD

В теоретической части (перед экспериментом) мы познакомились с интерфейсами, в частности с шиной I2C. Кроме того, мы изучили способ подключения дисплея в нашем конструкторе. Разберемся с библиотекой для работы с дисплеем.

Ранее мы использовали стандартную библиотеку не замечая этого, т.к. она подключена по умолчанию. В ней определены различные функции вроде pinMode(), digitalWright() и многие другие. Теперь мы впервые столкнемся с пользовательской библиотекой. Это библиотека функций, которую написал кто-то другой или, даже ты сам, и теперь желаешь использовать для своего эксперимента. Отличие заключается в том, что стандартная библиотека является частью языка программирования, а пользовательские библиотеки перед использованием нужно загрузить в Arduino IDE.

Открыть окно «Управление библиотеками» можно с помощью Инструменты Управление библиотеками.. или кнопкой

В поле поиска введи название нужной библиотеки, в нашем случае «LiquidCrystal I2C Multilingual», ниже должно появиться название библиотеки, имя автора и номер версии. Нажми кнопку «Установить» и дождись установки библиотеки.

Когда библиотека установлена, можно приступить к сборке схемы и написанию программы.

Схема эксперимента

Вся сборка заключается в подключении двух проводов:

Рисунок 1. Монтажная схема эксперимента

Внимание! В зависимости от модели микросхемы I2C, установленной в Лаборатории IoT, адрес на шине может быть 0x3F или 0x27. Запусти данный пример с указанием адреса 0x3F или 0x27, чтобы узнать какой вариант актуален для твоей платы.

Программный код эксперимента

Exp29.ino
  1. #include <LCDI2C_Multilingual.h>
  2.  
  3. #define DEFAULT_I2C_ADDR 0x3F // Или 0x27 в зависимости от твоей платы IoT
  4.  
  5. LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2);
  6.  
  7. void setup() {
  8. lcd.init();
  9. lcd.setBacklight(0);
  10. lcd.println("Hello, World!");
  11. lcd.println("Second Line");
  12. }
  13.  
  14. void loop() {
  15. }

Сначала мы с помощью директивы #inclue подключаем библиотеку установленную библиотеку.

  1. #include <LCDI2C_Multilingual.h>

На шине I2C каждое ведомое устройство имеет адрес. Чтобы обратиться к устройству, необходимо знать его адрес. Наша микросхема, которая управляет дисплеем, имеет адрес 0x3F или 0x27. Попробуй оба варианта, чтобы понять на каком адресе находится именно твоя микросхема I2C.

Теперь настраиваем дисплей.

  1. LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2);

Создаем объект дисплея и в качестве параметров передаем адрес дисплея, количество строк дисплея и количество символов в строке, соответственно.

Теперь мы имеем объект дисплея, с которым можно работать. Сначала нам нужно его инициализировать с помощью функции init(). После чего включим подсветку, для этого используем функцию setBacklight(0):

  1. lcd.init();
  2. lcd.setBacklight(0);

Выведем текст на дисплей с помощью функции println()

  1. lcd.println("Hello, World!");
  2. lcd.println("Second Line");

В качестве параметра в функцию println() передается текст для вывода на дисплей.

Дополнительное задание

  • Попробуй выводить на дисплей различные текстовые данные
  • Мигать подсветкой дисплея 1 раз в секунду