Как управлять сегментами с помощью библиотеки SevSeg
В библиотеке SevSeg Дина Ридинга есть ключевое слово для управления отдельными сегментами на SSD. Я использую четыре одноразрядных дисплея с общим катодом. Кто-нибудь знает, как программировать отдельные сегменты?
#include "SevSeg.h";
SevSeg sevseg;
void setup() {
// поместите сюда код установки для однократного запуска:
byte numDigits = 4;
byte digitPins[] = {2, 3, 4, 5};
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
bool resistorsOnSegments = false; // 'false' означает, что резисторы находятся на цифровых выводах
byte hardwareConfig = COMMON_CATHODE; // См. README.md для опций
bool updateWithDelays = false; // Рекомендуется значение по умолчанию false
bool leadingZeros = false; // Используйте 'true', если хотите сохранить ведущие нули
bool disableDecPoint = false; // Используйте 'true', если ваша десятичная точка не существует или не связана. Затем вам нужно указать только 7 segmentPins[]
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins,
resistorsOnSegments,
updateWithDelays, leadingZeros, disableDecPoint);
}
void loop() {
// поместите сюда ваш основной код для многократного запуска:
sevseg.setSegments();
//sevseg.setNumber(1234,0);
//sevseg.setChars("");
//sevseg.blank();
sevseg.refreshDisplay();
}
@BobaJFET, 👍0
Обсуждение1 ответ
Лучший ответ:
Вы не можете с этой библиотекой. Автор не предоставил общедоступных методов, которые выполняли бы эту работу.
Существуют закрытые методы (segmentOn
и segmentOff
), которые можно использовать, но для доступа к ним вам потребуется изменить библиотеку.
Являются ли 4 и 2 просто произвольными числами, которые вы выбрали?, @BobaJFET
Да. Это номер сегмента, который вы хотите включить или выключить., @Majenko
Как бы вы определили, какая цифра?, @BobaJFET
Возможно с другими номерами. Поэкспериментируйте и узнайте., @Majenko
Последний вопрос. Где эти функции должны быть размещены в коде? Я получаю «частное в этом контексте»., @BobaJFET
На самом деле, похоже, что это может быть так. Я никогда не использовал эту библиотеку, поэтому просто читал исходный код. Похоже, что фактический ответ может быть «Вы не можете с этой библиотекой». Проклятие., @Majenko
Простой ответ, вероятно, заключается в использовании другой библиотеки., @Majenko
Интересно, почему тогда он включил функцию setSegment(). И да, использование другой библиотеки тоже не кажется плохой идеей., @BobaJFET
Он, вероятно, использует его внутренне., @Majenko
- Запуск 7-контактного OLED-дисплея с 4 контактами (I2C)
- Нужна помощь с библиотекой U8GLIB
- Альтернативы дисплею Nextion
- Легкая библиотека Arduino OLED, которая поддерживает текст и растровые изображения
- В Adafruit ImageReader Library 2.3.5 добавлено несколько зависимостей библиотек.
- Артефакты на lcd при добавлении, казалось бы, не связанного кода
- Возникли проблемы с пониманием того, что делает "#define GET_STATUS"
- Как получить исходные файлы для библиотек Arduino?
почему вы не добавили параметр в вызов функции
setSegments()
?, @jsotolaПотому что я еще не знаю, какой параметр поставить или как использовать функцию., @BobaJFET
попробовал это. показывает кучу бреда., @BobaJFET
Это всегда одно и то же, если вы просто вводите 1, или 2, или 25 и т. д. Я не думаю, что функция работает так. Однако отображение чисел с помощью функции setNumber работает отлично, поэтому мои дисплеи подключены правильно., @BobaJFET
что здесь непонятно https://github.com/DeanIsMe/SevSeg/blob/9cdc6d03d820ffbc18174921fb7bd0a3d030fd8b/SevSeg.cpp#L435, @Juraj