Температура повышается сама по себе

Что используется: Arduino Uno(Atmega 328P), бузер, четырёхразрядный 7-сегментный индикатор, температурный датчик. Дело в том, что ошибок как таковых нет. Код работает, но когда я добавляю слегка температуру, он начинает увеличивать температуру до 48 и прыгает от 40 до 46. Код я проверял в Tinkercad и там всё работает как надо. А в реале я сменил один темп. датчик.

#define buzer A0
int tmp = A1;
float voltage;
int val;
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 temp;
int i, j;
int chislo;
int temper = 0;
boolean state = 0;

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);
  randomSeed(analogRead(A5));

  Serial.begin(9600);
}

void indikator(int nomer)
{
  for (i = 0; i < 7; i++)
  {
  digitalWrite(SegPin[i], Num[nomer] [i]);
  }
}

void loop()
{
  val = analogRead(tmp);
  voltage = (val*5.0/1023);
  temp = voltage*100-273.15;
  temper = (voltage*100-273.15) / 5;
  digitalWrite(DigPin[0], HIGH);
  indikator(temper);
  if (temp > 25)
  {
    tone(buzer, 1000, 500);
  }
  delay(1000);
  Serial.println(temp);
}

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