TM1637 Десятичные точки

Я использую следующую плату TM1637 с клоном Arduino Pro Micro.

Я пытаюсь использовать "библиотеку TM1637Display", написанную Авишаем Орпазом, но не могу найти способ использовать четыре десятичных точки на этом дисплее (в отличие от двоеточия, которое появляется на многих 4-разрядных дисплеях). Есть ли способ использовать этот драйвер для вывода одной из десятичных точек на дисплей? Если нет, то какой драйвер 1637 позволит мне выводить десятичную точку? Я собираюсь считывать напряжения на нескольких аналоговых входах Arduino и выводить их на дисплей последовательно.

, 👍2


2 ответа


0

В примере библиотеки 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; // показать точку
,

1

Я нашел это (отредактировано для релевантности)

#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);
    }
}
,