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


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

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

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

Микроконтроллер на борту нашего конструктора имеет встроенную Flash память, куда можно загружать различные файлы, в том числе библиотеки.

Сначала загрузи библиотеку для работы с дисплеем к себе на компьютер.

В архиве ты обнаружишь два файла:

  • lcd_api.py
  • esp8266_i2c_lcd.py

Это и есть файлы библиотеки для управления дисплеем LCD 1602. Распакуй их из архива в какую либо папку на компьютере. Эти файлы необходимо загрузить в память микроконтроллера. Для этого нужно открыть файловый менеджер. От крывается с помощью пункта меню Device Filemanager или кнопкой

Откроется окно файловго менеджера:

Здесь можно увидеть какие файлы уже загружены. Файл boot.py — это системный файл, его код исполняется сразу после загрузки микроконтроллера. Файл init.py — содержит код функции _init(), которую мы вызываем в каждом эксперименте.

Сюда же нужно загрузить файлы библиотеки. Для этого служит кнопка Upload…. После ее нажатия открывается стандартное диалоговое окно выбора файла. После выбора файла он загружается. Так выглядит файловый менеджер после загрузки файлов библиотеки:

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

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

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

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

Exp29.py
  1. from machine import I2C, Pin
  2. from esp8266_i2c_lcd import I2cLcd
  3. _init()
  4.  
  5. DEFAULT_I2C_ADDR = 0x3F
  6.  
  7. i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000)
  8. lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
  9. lcd.backlight_on()
  10. lcd.putstr("Hello, World!\nSecond Line")

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

  • Попробуй