Проблемы с отображением 4-значного, 14-сегментного

У меня новый 4-разрядный 14-сегментный дисплей HT16K33. Я подключил его к моему Arduino UNO, подключил и загрузил код для быстрого тестирования. Однако дисплей выглядит полностью разбитым (см. изображение ниже), горят только некоторые сегменты.

сломанный дисплей

Я припаял соединительные контакты к плате HT16K33 (см. рисунок ниже). Мой припой не самый лучший, но он не должен быть слишком плохим.

Припой

Я быстро проверил сопротивление соединительных контактов, чтобы убедиться, что контакты припаяны правильно, и они оказались в порядке. Я не слишком уверен, как проверить вывод ji2c...

multimeter_test

Вот проводка на моей макетной плате:

Подключение

Наконец, вот код, который я сейчас использую:

#include "HT16K33.h"
#include <Wire.h>
HT16K33 seg(0x070);

void setup() {
  // поместите сюда код установки для однократного запуска:
  Serial.begin(9600);
  Wire.begin();
  if(!seg.begin()){
    Serial.println("ERROR");
    while(1);
  }
  Wire.setClock(100000);

  Serial.println("displayTest()");
  seg.displayOff();
  delay(1000);

  seg.displayOn();
  seg.displayClear();
  seg.displayInt(5);
}

void loop() {
  // поместите сюда ваш основной код для многократного запуска:

}

Я немного обеспокоен и сбит с толку тем, что происходит... Буду очень признателен за помощь

, 👍1

Обсуждение

Можете дать ссылку на используемую библиотеку? Пробовали ли вы скетчи из библиотек? Показанные светодиоды загораются сразу после подачи питания или при выполнении displayInt()?, @chrisl

Вы уверены, что найденный вами пример кода соответствует модулю дисплея? Этот дисплей имеет 14 сегментов плюс десятичная точка. Сопоставление контактов HT16K33 и контактов дисплея, вероятно, не имеет определенного стандарта и может быть совершенно произвольным. Особенно странно то, что цифра «5», которую вы хотите отобразить, оказывается распределенной по нескольким цифрам. В худшем случае вам придется получить техпаспорт HT16K33 и дисплеев и проработать соединения между выводами дисплея и HT16K33., @6v6gt

Вы видите состояние «отображение выключено» в начале скетча? И вы пробовали разные значения для вывода? Возможно, вы захотите исследовать это систематически., @the busybee

@chrisl Я использую https://github.com/RobTillaart/HT16K33 и его пример demo1;, @Benjythebee


1 ответ


Лучший ответ:

3

поэтому комментарий @6v6gt заставил меня заново искать библиотеку для 14-сегментного HT16K33. Кажется, он/она был в деньгах, так как они начали работать после смены библиотеки. Хотя вчера я ничего не мог найти, сегодня я нашел эту страницу, которая охватывает 7-сегментный и 14-сегментный HT16K33: https://learn.adafruit.com/adafruit- led-рюкзак/0-54-алфавитно-цифровой?view=all#library-reference-3052482

Поэтому я перешел с библиотеки HT16K33 на "Adafruit_LEDBackpack" и "Adafruit_GFX" Библиотеки.

светодиоды работают

Код для тех, кому интересно:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"

Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();

void setup() {
Serial.begin(9600);

alpha4.begin(0x70);  // передаем адрес

alpha4.writeDigitAscii(0, 'A');
alpha4.writeDigitAscii(1, 'B');
alpha4.writeDigitAscii(2, 'C');
alpha4.writeDigitAscii(3, 'D');
alpha4.writeDisplay();
}

void loop() {
}

У меня есть один вопрос (это совершенно другая тема): как мне перейти отсюда, чтобы повернуть буквы и алфавит на 180 градусов?

,

Чтобы создать собственных персонажей, просто для начала загляните сюда: https://github.com/adafruit/Adafruit_LED_Backpack/blob/master/Adafruit_LEDBackpack.cpp. Вы увидите массив static const PROGMEM uint16_t alphafonttable[] . Сделайте локальную копию библиотеки и попробуйте изменить двоичное значение, помеченное, скажем, «A», и посмотрите, что произойдет., @6v6gt