TM1637 Десятичные точки
Я использую следующую плату TM1637 с клоном Arduino Pro Micro.
Я пытаюсь использовать "библиотеку TM1637Display", написанную Авишаем Орпазом, но не могу найти способ использовать четыре десятичных точки на этом дисплее (в отличие от двоеточия, которое появляется на многих 4-разрядных дисплеях). Есть ли способ использовать этот драйвер для вывода одной из десятичных точек на дисплей? Если нет, то какой драйвер 1637 позволит мне выводить десятичную точку? Я собираюсь считывать напряжения на нескольких аналоговых входах Arduino и выводить их на дисплей последовательно.
@LesRhorer, 👍2
Обсуждение2 ответа
В примере библиотеки TM1637Display Авишая Орпаза есть следующее:
// Проходим по всем точкам
for(k=0; k <= 4; k++) {
display.showNumberDecEx(0, (0x80 >> k), true);
delay(TEST_DELAY); // показать точку
}
Если вы используете display.setSegments
и кодируете сегменты в скетче, точка — это 8 бит в байте, кодирующем сегменты цифры.
displayData[i] = display.encodeDigit(digit[i])
displayData[i] |= 0x80; // показать точку
из [TM1631Display.h](https://github.com/avishorp/TM1637/blob/master/TM1637Display.h#L84-L107) метод showNumberDecEx()
поддерживает включение точки, и это не совсем старший бит для управления точкой, а маска сдвига битов, зависящая от того, точку какой цифры следует включить., @hcheung
@hcheung да. как и говорится в ответе, @Juraj
Упс! Я писал свой ответ, когда вы опубликовали свой. Спасибо., @LesRhorer
Я нашел это (отредактировано для релевантности)
#include <Arduino.h>
#include <TM1637Display.h>
// Контакты подключения модуля (цифровые контакты)
#define CLK 4
#define DIO 3
// Создаем новый экземпляр класса TM1637Display
TM1637Display display(CLK, DIO);
// Количество времени (в миллисекундах) между тестами
#define TEST_DELAY 2000
void setup() {};
void loop()
{
int k;
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff }; // Создаем массив, который включает все сегменты
uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 }; // Создаем массив, который отключает все сегменты
display.setBrightness(0x0f);
// Все сегменты включены
display.setSegments(data);
delay(TEST_DELAY);
// Проходим по всем точкам
for(k=0; k <= 4; k++) {
display.showNumberDecEx(0, (0x80 >> k), true);
delay(TEST_DELAY);
}
}
- Почему у меня 7 сегмент не обновляется каждую секунду как в программе?
- 4-Значный 7-сегментный дисплей мигает
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- Arduino Pro Micro, получить данные с контакта Tx?
- Как отобразить символ º на ЖК-дисплее?
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Путаница между SPI и I2C для SSD1306 OLED
- Распиновка аналога Arduino Pro Micro
Продавец не предоставил никакой документации, даже распиновки. Не покупайте продукты без документации. Теперь ваш единственный вариант — экспериментировать и выяснить, можно ли вообще использовать десятичные точки. В качестве альтернативы вы можете вернуть дисплеи, оставить предупреждение для других в отзывах и купить те, которые включают документацию., @StarCat
Кроме того, вы можете поискать и просмотреть лист данных дисплея, чтобы найти штифт для десятичной точки. Затем вам нужно перепроектировать плату дисплея и проверить, управляет ли ее логика управления этим штифтом вообще. Если повезет, то она это делает., @the busybee
@StarCat и busybee. TM1637 — это ИС драйвера светодиодного дисплея и клавиатуры с техническим описанием. Никакой специальной распиновки, только данные и часы, а библиотека TM1637Display работает для OP., @Juraj
@Juraj На модуле четыре контакта без какой-либо очевидной маркировки контактов (вы бы хотя бы хотели знать, куда подключать Vcc, Gnd, SDA и SCL), а в описании продукта ничего не говорится о I2C. В любом случае, это был просто пример того, что это модуль, который не поддерживается его продавцом, и когда вы покупаете его, вы сами по себе., @StarCat
@StarCat извините, это не I2C, а похожий двухпроводной протокол. Я отредактировал комментарий. У TM1637 IC есть даташит, @Juraj
ОК, это определенно работает. Я нашел тестовый скетч, который отображает все четыре десятичных знака. Смотрите мой ответ. Эти платы чрезвычайно распространены, доступны на ebay, Amazon и в других местах., @LesRhorer