Stap 3: Code
Dit deel is ook vrij zelf verklarend. Veel van de thermistor code vandaan kwam hier. Ik heb de code om te proberen om het gemakkelijker te begrijpen gereageerd. De vette lijn geeft het invoeren van uw waarden van A, B en C voor de thermistor:#include < math.h >
int led1 = 7; De invoer pin-codes instellen
int led2 = 8;
int led3 = 9;
int led4 = 10;
int led5 = 11;
int led6 = 12;
dubbele Thermistor (int RawADC) {}
dubbele Temp;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.000760464581576 + (0.000231192417594 + (0.000000072965780 * Temp * Temp)) * Temp); Dit zal de uitgang van de temperatuur in Kelvin
Temp = Temp - 273.15; Converteren van Kelvin naar Celsius
retourneren Temp;
} / / Functie thermistor spanning om gegevens te converteren naar temperatuur in Celsius met behulp
de vergelijking Steinhart-Hart
VOID Setup {}
Serial.begin(115200);
pinMode (led1, OUTPUT); Pinnen als uitgang opgeven
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
pinMode (led6, OUTPUT);
}
void loop {}
int. Temp = Thermistor(analogRead(0)); Stel de variabele Temp gelijk is aan de lezing van analoge pin 0
int tempdata [6]; Lege array maken
for (int i = 0; ik < 6; i ++) {}
TempData [i] = (Temp >> ik) & 1;
} / / Doorlopen van het binaire getal, elke plaats op te slaan als een item in een matrix
Serial.println(int(temp)); Temperatuur in seriële monitor weergeven
Als (tempdata [0] == 1) {}
digitalWrite (led1, hoge);
} / / If/Else statements gaan door de array met de binaire cijfers en licht de LED als de vermelding = 1 en de LED dim als de vermelding = 0
else {}
digitalWrite (led1, laag);
}
Als (tempdata [1] == 1) {}
digitalWrite (led2, hoge);
}
else {}
digitalWrite (led2, laag);
}
Als (tempdata [2] == 1) {}
digitalWrite (led3, hoge);
}
else {}
digitalWrite (led3, laag);
}
Als (tempdata [3] == 1) {}
digitalWrite (led4, hoge);
}
else {}
digitalWrite (led4, laag);
}
Als (tempdata [4] == 1) {}
digitalWrite (led5, hoge);
}
else {}
digitalWrite (led5, laag);
}
Als (tempdata [5] == 1) {}
digitalWrite (led6, hoge);
}
else {}
digitalWrite (led6, laag);
}
delay(100); 100 milliseconden wacht
}