Модули MicroPython для управления сегментными дисплеями на основе MAX7219, VK16K33, WeActStudio.DigitalTubeModule 0.8 inch на основе TM1652.
Это модуль, состоящий из 8 отдельных 7-сегментных индикаторов с десятичной точкой (DP), управляемых микросхемой MAX7219 по шине SPI.
Напряжений питания этого дисплея +5 Вольт, которое нужно подать на вывод VCC. Предусмотрите электролитический конденсатор емкостью 10 мкФ и параллельно ему керамический конденсатор емкостью 1 нФ, подключенные близко к выводам VCC и GND платы дисплея.
Подключается к микроконтроллеру тремя проводами: ~SS, DIN, CLK. Для работы с 3.3 Вольт логикой обязательно требует модуль преобразования уровней!
* низкая цена
* 8 символов
* встроенный режим проверки сегментов (тест)
* регулируется яркость
* необходимость использования дополнительного модуля преобразования уровней
* малый размер символа, 0.36"
* малое количество сегментов (узнаваемо отображает цифры и некоторые буквы)
ESP32C3 | Raspberry PI Pico RP2040 | Преобразователь уровня | MAX7219 8 bit Digital LED Display Module |
---|---|---|---|
+5V | +5V | HV | VCC |
+3.3 V | +3.3 V | LV | |
GND | GND | GND | GND |
MOSI (GPIO6) | MOSI (GPIO19) | LV1(MCU)<->HV1(Display) | DIN |
SS (выбор пользователя) | (выбор пользователя) | LV2(MCU)<->HV2(Display) | CS |
SCLK (GPIO4) | SCLK (GPIO18) | LV3(MCU)<->HV3(Display) | CLK |
Это модуль, состоящий из 4 отдельных 14-сегментных индикаторов с десятичной точкой (DP), управляемых микросхемой VK16K33 по шине I2C.
Напряжений питания у этого дисплея два. На вывод Vi2c нужно подать напряжение питания интерфейса, в нашем случае это +3.3 Вольта! На вывод VСС нужно подать напряжение +5 Вольт для других узлов дисплея. Предусмотрите электролитический конденсатор емкостью 10 мкФ и параллельно ему керамический конденсатор емкостью 1 нФ, подключенные близко к выводам VCC(+5 V) и GND платы дисплея.
Подключается к микроконтроллеру двумя проводами: SCL, SDA. Не требует для работы отдельный модуль преобразования уровней! Диапазон адресов на шине: 0x70..0x77.
* Относительно большой размер символа, 0.54"
* Хорошая яркость
* Совместим с 3.3 В. логикой (если вы правильно его подключите)
* до восьми адресов на шине I2C (8x4=32 символа, лучше на отдельной шине I2C)
* Для отображения доступны все прописные буквы английского алфавита
* яркость регулируется
* сравнительно дорог
* только 4 символа на модуль дисплея
* встроенный тест отсутствует
Загрузите прошивку micropython на плату PyBoard (ESP и т. д.), а затем файлы: 7seg_demo.py, 14seg_demo.py, tm1652_demo.py, seg_displ_utils.py, папки sensor_pack_2, lib_displays полностью! Затем откройте tm1652_demo.py, 7seg_demo.py или 14seg_demo.py, в зависимости какой дисплей вы используете, в своей IDE и запустите/выполните его.
Имя дисплея | Файл демонстрации работы |
---|---|
WeActStudio.DigitalTubeModule 8.8.8.8 | tm1652_demo.py |
HT16K33 0.54" 4 Bit Meter Digital Tube Module | 14seg_demo.py |
MAX7219 8 bit Digital LED Display Module | seven_seg_demo.py |
74HC595 4 bit Digital LED Display Module | a74hc595_demo.py |
Если у вас несколько устройств подключено к шине, желательно чтобы для них была только одна пара подтягивающих (линии SCL и SDA к VCC) резисторов, сопротивлением 3.3-4.3 КОм. Для более подробной информации читайте Texas Instruments "I2C Bus Pull-Up Resistor Calculation" (SLVA689).
SS (Slave Select), MISO (Master In Slave Out), MOSI (Master Out Slave In) - это сигнальные линии интерфейса SPI (Serial Peripheral Interface), который используется для синхронной последовательной передачи данных между ведущим (master) и ведомым (slave) устройствами.
* SS (Slave Select) - линия используется для выбора конкретного ведомого устройства, с которым будет производиться обмен данными.
Ведущее устройство активирует(0) или деактивирует(1) эту линию для управления сеансами обмена.
* MISO (Master In Slave Out) - линия предназначена для передачи данных от ведомого устройства к ведущему.
В терминологии SPI "Master In" означает, что ведущее устройство "принимает" данные по этой линии,
а "Slave Out" означает, что ведомое устройство "передает" данные по этой линии.
* MOSI (Master Out Slave In) - линия используется для передачи данных от ведущего устройства к ведомому.
"Master Out" означает, что ведущее устройство "передает" данные, а "Slave In" означает,
что ведомое устройство "принимает" данные.
В дополнение к этим линиям, SPI также использует сигнал SCK (Serial Clock), который генерируется ведущим устройством для синхронизации передачи данных. SPI является полнодуплексным интерфейсом, что означает, что данные могут передаваться одновременно в обоих(!) направлениях.
Общепринятой стандартизированной раскраски проводов линий SPI не существует, однако на практике для удобства и единообразия часто используют следующие цветовые соглашения:
SCLK (Serial Clock) — обычно жёлтый или оранжевый
MOSI (Master Out Slave In) — зелёный
MISO (Master In Slave Out) — синий
SS (Slave Select) или CS (Chip Select) — красный
Эти цвета широко встречаются в наборах проводов, учебных схемах и платах Arduino и совместимых контроллерах. Однако это скорее сделано для удобства, так как у разных производителей цвета могут отличаться.
Не все символы могут быть отображены 14-ти сегментным дисплеем, не говоря о 7-ми сегментном. Для отображения таких символов в классе char_display_mod.BaseCharDisplay и его потомках есть пара методов (set_non_printable, get_non_printable).
Для отображения десятичной точки на дисплее, просто добавьте ее после символа, правее и ниже которого она должна гореть, например, для числа Пи этим символом будет тройка - 3.1415.
Алфавит (RU или EN) дисплея, на основе VK16K33, можно переключить изменив значение переменной lang в файле 14seg_demo.py с 'ru' на 'en' или наоборот.
Для дисплея на основе MAX7219 смотрите код метода CharDisplay.get_segments_of_symbol(...) в файле char_display_mod.py. Для дисплея на основе VK16K33 смотрите код метода VK16K33Display.get_segments_of_symbol(...) в файле vk16k33display.py.
Это модуль, состоящий из 4 7-сегментных индикаторов с десятичной точкой (DP) и классическим символов хода секунд в середине, управляемых микросхемой TM1652 по RS-232 (UART порт). https://github.com/WeActStudio/WeActStudio.DigitalTubeModule
Напряжений питания этого дисплея +5 Вольт, которое нужно подать на вывод VCC. Предусмотрите электролитический конденсатор емкостью 10 мкФ и параллельно ему керамический конденсатор емкостью 1 нФ, подключенные близко к выводам VCC и GND платы дисплея.
Подключается к микроконтроллеру одним проводом SDA(со стороны дисплея). К контакту SDA вы должны подключить выход TX, UART порта вашей платы. Преобразователь уровня не нужен!!
* одна линия управления
* самые большой размер символов 0.8"
* удобен для отображения времени
* цена
* один производитель
* малое количество сегментов (узнаваемо отображает цифры и некоторые буквы)
* нет регулировки яркости
Это модуль, состоящий из 4 7-сегментных индикаторов с десятичной точкой (DP) каждый, управляемых микросхемой 74HC595 по SPI-образному интерфейсу.
Напряжений питания этого дисплея +5 Вольт, которое нужно подать на вывод VCC. Предусмотрите электролитический конденсатор емкостью 10 мкФ и параллельно ему керамический конденсатор емкостью 1 нФ, подключенные близко к выводам VCC и GND платы дисплея.
Управляющая плата: https://www.waveshare.com/wiki/RP2040-Zero
Вывод модуля дисплея | RP2040-Zero |
---|---|
VCC (+5 V) | +5V |
GND | GND |
SDI (данные последовательные от SPI, зеленый) | GP7 (SPI1 TX/MOSI) |
SCLK (тактирование от SPI, желтый) | GP8 (SPI1 SCK) |
LOAD (выгрузка на выход, цифровой выход, синий) | GP6 |
Нумерация по изображению с официальной страницы!
Почему нумерация выводов на официальной странице платы не совпадает с MicroPython нумерацией, спросишь ты!? Возможно, потому что моя RP2040-Zero не оригинал.
* Самый дешевый
* Статичное изображение не мучает ваши глаза (динамическая индикация отсутствует)
* Преобразователь уровня не нужен!!
* Можно сделать в домашних условиях
* Можно каскадировать
* Не хватает сигналов ~OE и ~MR
* нет регулировки яркости
Дисплей на основе MAX7219: https://rutube.ru/video/private/c39765b5ce80ed672d8cccee684aeb68/?p=pLJFA6RPWNpP_sEJxQqijA
Дисплей на основе VK16K33: https://rutube.ru/video/private/4e737ac08f4bf688abb5ccf0d974171f/?p=VN9UxtkRwHMe8T0dQDiNEQ
Дисплей от WeAct: https://rutube.ru/video/private/beff4f547bcf0e9ba98ac70453018699/?p=z-bdspx0EQVujMN2ptn24g
Дисплей на основе 74HC595: https://rutube.ru/video/private/fd5a4cfd000cc02b3a60238e633a904e/?p=78Y942upqucuklc3LFPvJg