Skip to content

octaprog7/seg_displays

Repository files navigation

Модули MicroPython для управления сегментными дисплеями на основе MAX7219, VK16K33, WeActStudio.DigitalTubeModule 0.8 inch на основе TM1652.

Дисплей на основе MAX7219

Это модуль, состоящий из 8 отдельных 7-сегментных индикаторов с десятичной точкой (DP), управляемых микросхемой MAX7219 по шине SPI.

Питание

Напряжений питания этого дисплея +5 Вольт, которое нужно подать на вывод VCC. Предусмотрите электролитический конденсатор емкостью 10 мкФ и параллельно ему керамический конденсатор емкостью 1 нФ, подключенные близко к выводам VCC и GND платы дисплея.

Подключение

Подключается к микроконтроллеру тремя проводами: ~SS, DIN, CLK. Для работы с 3.3 Вольт логикой обязательно требует модуль преобразования уровней!

Достоинства:

* низкая цена
* 8 символов
* встроенный режим проверки сегментов (тест)
* регулируется яркость

Недостатки:

* необходимость использования дополнительного модуля преобразования уровней
* малый размер символа, 0.36"
* малое количество сегментов (узнаваемо отображает цифры и некоторые буквы)

Фото

alt text alt text

Соединения

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

Дисплей на основе VK16K33

Это модуль, состоящий из 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 символа на модуль дисплея
* встроенный тест отсутствует

Фото

alt text alt text alt text

Загрузка ПО в плату

Загрузите прошивку 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

Шина I2C

Если у вас несколько устройств подключено к шине, желательно чтобы для них была только одна пара подтягивающих (линии SCL и SDA к VCC) резисторов, сопротивлением 3.3-4.3 КОм. Для более подробной информации читайте Texas Instruments "I2C Bus Pull-Up Resistor Calculation" (SLVA689).

Сигнальные линии интерфейса SPI

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

Общепринятой стандартизированной раскраски проводов линий 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.


Дисплей на основе TM1652 (WeActStudio.DigitalTubeModule)

Это модуль, состоящий из 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"
* удобен для отображения времени

Недостатки:

* цена
* один производитель
* малое количество сегментов (узнаваемо отображает цифры и некоторые буквы)
* нет регулировки яркости

Фото

alt text alt text alt text

Дисплей на основе 74HC595

Это модуль, состоящий из 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 
* нет регулировки яркости

Фото

alt text

Видео

Дисплей на основе 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

Показ атмосферного давления в мм. ртутного столба на дисплее We Act Digital Tube 8.8.8.8.

Файл air_press_show_demo.py содержит код, отображающий атмосферное давление воздуха на дисплее We Act Digital Tube 8.8.8.8. У вас должен быть правильно подключен датчик bmp180 (смотри https://github.com/octaprog7/BMP180).

Видео работы: https://rutube.ru/video/private/0e1f9d669b8ca339e360e49c84d588d8/?p=eIO0YWAa68mtneOD84nK1w

About

Модули MicroPython для управления сегментными дисплеями на основе MAX7219, VK16K33, TM1652, 74HC595. MicroPython modules for driving segment displays based on MAX7219, VK16K33, TM1652, 74HC595.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages