Найти в Дзене
Паяльник и код

Управление 14-сегментным дисплеем 0.54 дюйма с ESP32-C3 PRO

С помощью такого дисплея можно выводить буквы, а не только цифры

Дисплей 0.54″ 14-segment LED HT16K33 представляет собой четырехразрядный 14 сегментный (15 сегмент — точка на каждом разряде) индикатор, которым управляет светодиодный драйвер HT16K33. Напряжение питания от 4.5 до 5.5 В, ток потребления в активном режиме до 2 мА, а режиме ожидания до 10 мкА. Уровни интерфейса связи с микроконтроллером – 5 В, не совместимы с 3.3 В. Управление осуществляется посредством интерфейса I2C на скорости до 400кГц

Купить можно на Али

aliexpress.ru

Цена в пределах 300 рублей

Первое, что выделяется, это размер

Отличие от стандартного 7-сегментного дисплея
Отличие от стандартного 7-сегментного дисплея

Подключать буду к ESP32-C3 PRO

-3

Схема подключения

VCC —> +5 В
GND —> GND
SDA —> 8 пин
SCL —> 9 пин
UI2C —> +5 В

Чтобы управлять дисплеем написал библиотеку

14segment.zip — Яндекс Диск

Функции библиотеки:

init(bool STANDBY) // включение и выключение режима STANDBY
1 >> ON
0 >> STANDBY

brightness(byte b) // управление яркостью свечения индикаторов
0…15

mode(byte m) // управление режимами работы драйвера
0 >> DISPLAY_OFF
1 >> DISPLAY_ON
2 >> BLINK_ON_0.5HZ
3 >> BLINK_ON_1HZ
4 >> BLINK_ON_2HZ

clear() // очистка дисплея

fourSymbol(String s) // вывод четырёх символов

runSymbol(String s,int speed) //вывод бегущей строки с заданной скоростью

Символы заданы в строке

String lineSymbol = " 0123456789ZYXWVUTSRQPONMLKJIHGFEDCBA-*+АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ!?=";

Отображение каждого символа храниться в массиве

bool ArraysSymbol[75][15]

-4

1 – загорается, 0 - нет. Например, Z задаётся

{1,0,0,0,1,0,0,0,0, 1, 0, 0, 0, 1, 0}

Пример программы для Arduino IDE

Выводим «05.21»

#include <Wire.h>
#include "4x14LED.h"
HT4x14LED led;
void setup() {
Wire.begin();
Serial.begin(115200);
led.init(1);
led.brightness(10);
led.mode(1);
led.clear();
}
void loop() {
led.clear();
led.fourSymbol("05.21");
delay(2000);
}
-5

Бегущий текст

led.runSymbol("ПРИВЕТ МИР!",500);
-6
led.runSymbol("HELLO WORLD!",500);
-7

А теперь из статьи

Выведем на экран уровень сигнала WiFi

led.fourSymbol(String(WiFi.RSSI()));
-8

Дисплей очень понравился и размером, и функциями. Осталось найти ему применение. Есть какие идеи?