Температура повышается сама по себе
Что используется: 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);
}