Wolf_Yout
@Wolf_Yout

Пытаюсь сделать, чтобы при нажатий на кнопку выводилось сколько раз она уже нажата, но дисплей не хочет выводить число, что делать?

Код:
byte num;
String utf8rus(String source)
{
  int i,k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };
 
  k = source.length(); i = 0;
 
  while (i < k) {
    n = source[i]; i++;
 
    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
          n = source[i]; i++;
          if (n == 0x81) { n = 0xA8; break; }
          if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
          break;
        }
        case 0xD1: {
          n = source[i]; i++;
          if (n == 0x91) { n = 0xB8; break; }
          if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
          break;
        }
      }
    }
    m[0] = n; target = target + String(m);
  }
return target;
}
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>

int pinCS = 9;
int numberOfHorizontalDisplays = 4;
int numberOfVerticalDisplays = 1;

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);


void setup() {
    matrix.setIntensity(7); // яркость от 0 до 15
    matrix.setRotation(0, 1);
    matrix.setRotation(1, 1);
    matrix.setRotation(2, 1);
    matrix.setRotation(3, 1);
    pinMode(17, INPUT_PULLUP);
    num = 0;
}

void loop() {
    /*matrix.fillScreen(0);
    matrix.setCursor(1, 0);
    matrix.print("00:01");*/
    matrix.drawChar(2, 1, num, 1, 0, 1);
    matrix.write();
    if (digitalRead(17) == 1) {
      num = num + 1;
      delay(300);
    }
    
}
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kalapanga
В функции matrix.drawChar() третий аргумент - это символ, который нужно напечатать. Один символ. Что собственно и по названию функции понятно. Ваше число нажатий отображается символами в количестве от 1 до 3. Нужно самому разобрать число на символы и каждый символ отобразить на своей матрице.
Не проверял, может в этих библиотеках уже готовые функции для этого есть, но если нет, то надо самому это делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы