Отредактировать код для работы таймера

Добрый день! Имеется такой код:

Timer t; //создание объекта Timer
long number = 0;
int first_digit = 0;
int second_digit = 0;
int third_digit = 0;
int fourth_digit = 0;
int timer_event = 0;
int CA_1 = 12;
int CA_2 = 11;
int CA_3 = 10;
int CA_4 = 9;
int clk = 6;
int latch = 5;
int data = 4;
int count = 0;
int digits[4] ;
int CAS[4] = {9, 10, 11, 12};
byte numbers[10] {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; // 0 – 9
	
void setup() {
  
  Serial.begin(9600); //открываем порт
  pinMode(CA_1, OUTPUT);
  pinMode(CA_2, OUTPUT);
  pinMode(CA_3, OUTPUT);
  pinMode(CA_4, OUTPUT);
  pinMode(clk, OUTPUT);
  pinMode(latch, OUTPUT);
  pinMode(data, OUTPUT);
  digitalWrite(CA_1, HIGH);
  digitalWrite(CA_2, HIGH);
  digitalWrite(CA_3, HIGH);
  digitalWrite(CA_4, HIGH);
  Serial.println("Введите значение от 0 до 9999: ");
}

void loop() {
  t.update();
  if (Serial.available()) { 
    t.stop(timer_event); 
    cathode_high();
    String s = Serial.readString(); 
    number = (long)s.toInt();
    if (number > 9999) {
      Serial.println("Значение должно быть от 0 до 9999!");
    } else {
      break_number(number);
      timer_event = t.every(1, display_number);
    }
  }
}

void break_number(long num) { // деление на разряды

  first_digit = num / 1000;
  digits[0] = first_digit;

  int first_left = num - (first_digit * 1000);
  second_digit = first_left / 100;
  digits[1] = second_digit;
  int second_left = first_left - (second_digit * 100);
  third_digit = second_left / 10;
  digits[2] = third_digit;
  fourth_digit = second_left - (third_digit * 10);
  digits[3] = fourth_digit;
}

void display_number() {
  cathode_high();
  digitalWrite(latch, LOW);
  shiftOut(data, clk, LSBFIRST, numbers[digits[count]]); //передаем данные
  digitalWrite(CAS[count], LOW);
  digitalWrite(latch, HIGH);
  count++;
  if (count == 4) {
    count = 0;
  }
}

void cathode_high() {
  digitalWrite(CA_1, HIGH);
  digitalWrite(CA_2, HIGH);
  digitalWrite(CA_3, HIGH);
  digitalWrite(CA_4, HIGH);
}```
Нужно переделать так, чтобы переменная, отвечающая за время, каждую секунду изменялась на -1. Благодарю заранее!

Ой. А какая переменная отвечает за время?

3000р.

2 лайка

переменная Number

херасе!

Дед, это похоже на часовой механизм, так что цена занижена :face_with_hand_over_mouth:

1 лайк

Нужно - переделывайте. Нам то зачем об этом сообщили?

1 лайк

Тебя чё, Бармалей покусал? Или это белорусские рубли? Ну, даже если и так - это 83 штуки наших - не маловато?

1 лайк

Перенесу ка я тему в “Ищу исполнителя”. Если кто против, сами “взад” перенесёте.

1 лайк

Ну я могу совсем дёшево сделать. Если вы не против.
barmaley2m@yandex.ru
А Деда я не кусал. Он сам.