Запись значения на 7-сегментный дисплей max7219
Я новичок в arduino и пытаюсь создать интерфейс для своего авиасимулятора. Я использую плагин для программного обеспечения симулятора, который возвращает переменную с плавающей запятой на мой Arduino, которую я затем хочу отобразить на серии 7-сегментных дисплеев. Я подключил три модуля max7219, каждый по 8 цифр.
Я нашел библиотеку LedControl, которую мне удалось отобразить на моих модулях следующим образом:
#include <LedControl.h>
// входы: контакт DIN, контакт CLK, контакт LOAD. количество фишек
LedControl mydisplay = LedControl(48, 44, 46, 3);
void setup() {
mydisplay.shutdown(0, false); // включает дисплей
mydisplay.shutdown(1, false); // включает дисплей
mydisplay.setIntensity(0, 7); // 15 = самый яркий
mydisplay.setDigit(0, 0, 9, false);
mydisplay.setDigit(0, 1, 8, false);
mydisplay.setDigit(0, 2, 7, false);
mydisplay.setDigit(0, 3, 6, false);
mydisplay.setDigit(0, 4, 5, true);
mydisplay.setDigit(0, 5, 4, false);
mydisplay.setDigit(0, 6, 3, false);
mydisplay.setDigit(0, 7, 2, false);
mydisplay.setDigit(1, 0, 9, false);
mydisplay.setDigit(1, 1, 8, false);
mydisplay.setDigit(1, 2, 7, false);
mydisplay.setDigit(1, 3, 6, false);
mydisplay.setDigit(1, 4, 5, true);
mydisplay.setDigit(1, 5, 4, false);
mydisplay.setDigit(1, 6, 3, false);
mydisplay.setDigit(1, 7, 2, false);
}
void loop() {
}
Однако код Arduino для плагина, который я использую, имеет следующую функцию:
void ProgOut(byte id, float val) {
if (id == 1)
{
// напечатайте это для отображения
}
}
Итак, мой вопрос: прямо сейчас, основываясь на тестовом скетче LedControl, я должен отображать каждый отдельный символ один за другим, но я получаю переменную с плавающей запятой.. так как я могу просто сделать что-то вроде "mydisplay.set(floatvariable )"?
@Bruno, 👍-1
Обсуждение1 ответ
как я могу просто сделать что-то вроде "mydisplay.set(floatvariable)"?
напишите свой собственный код.
Допустим, вы хотите отобразить до двух знаков после запятой. Умножьте число с плавающей запятой на 100, сохраните его в переменную типа int и используйте существующий код для отображения этой целочисленной переменной + десятичной точки в нужной цифре.
- Я пытаюсь сделать что то вроде видеоигры с Arduino UNO
- Печать string and integer LCD
- Ошибка: "'lcd' does not name a type" при использовании библиотеки LiquidCrystal.
- Wemos: дисплей 16x2 ничего не показывает
- Как сделать динамическое меню с подменю ( Arduino mega или Arduino Uno)
- Как подключить этот последовательный дисплей SPI к Arduino?
- Заготовка ЖК-дисплея 16 X 2 с Arduino Uno
- Два Arduino управляют ЖК-дисплеем
Почему бы не использовать библиотеку, которая поддерживает это напрямую? https://github.com/mikaelpatel/Arduino-LCD. Затем вы можете написать код типа "led.print(3.1415, 4)", т.е. использовать тот же интерфейс, что и Serial., @Mikael Patel
Я не знал об этой библиотеке. Я проверю это, спасибо., @Bruno