Не выводиться температура на индикатор

Используется -- arduino uno(Atmega 328P), четырёхразрядный 7-сегментный LED индикатор, температурный датчик, пьезопищалка.
Проблема -- Не выводится температура с температурного датчика. Для этого используется функция Indikator(), но всё равно не выводит. Прошу, помогите пожалуйста. (Используется C++)

#define buzer A0
int tmp = A1;
float voltage;
int SegPin[7] = {6, 7, 8, 9, 10, 12, 13};
int DigPin[4] = {2, 3, 4, 5};
boolean Num[10] [7] =
{ {1, 1, 1, 0, 1, 1, 1}, //0
  {0, 0, 1, 0, 1, 0, 0}, //1
  {1, 0, 1, 1, 0, 1, 1}, //2
  {1, 0, 1, 1, 1, 1, 0}, //3
  {0, 1, 1, 1, 1, 0, 0}, //4
  {1, 1, 0, 1, 1, 1, 0}, //5
  {1, 1, 0, 1, 1, 1, 1}, //6
  {1, 0, 1, 0, 1, 0, 0}, //7
  {1, 1, 1, 1, 1, 1, 1}, //8
  {1, 1, 1, 1, 1, 1, 0} //9
}; //минус мои нервы
int Dot = 11;
int Razryad [4];
int i, j, state = 0, val, temp;

void setup()
{
  for (i = 0; i < 7; ++i)
  {
    pinMode(SegPin[i], OUTPUT);
  }

  for (i = 0; i < 4; ++i)
  {
    pinMode(DigPin[i], OUTPUT);
  }

  pinMode(Dot, OUTPUT);
  pinMode(buzer, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  val = analogRead(tmp);
  voltage = val * 5.0 / 1023;
  temp = voltage * 100 - 273.15;
  if (temp > 24)
  {
    tone(buzer, 1000, 500);
  }
  Indikator(temp, 1);
  Serial.println(temp);
  delay(1000);
}

void Indikator(double chislo, int Razr)
{
  chislo = chislo * pow(10, Razr);
  if (chislo>=10000) {chislo=9999;}
  Razryad[3] = chislo / 1000;
  Razryad[2] = (chislo-Razryad[3]*1000)/100;
  Razryad[1] = (chislo-Razryad[3]*1000-Razryad[2]-100)/10;
  Razryad[0] = (chislo-Razryad[3]*1000-Razryad[2]*100-Razryad[1]*10);
  for (j = 0; j < 4; j++)
  {
    if (Razr == j)
    {
      digitalWrite(Dot, HIGH);
    }
    for (i = 0; i < 7; i++)
    {
      digitalWrite(SegPin[i], Num[Razryad[j]] [i]);
    }
  }
  digitalWrite(DigPin[j], HIGH);
  delay(1);
  digitalWrite(DigPin[j], LOW);
  digitalWrite(Dot, LOW);
}

Ответы (0 шт):