NTC Thermistor
An NTC (negative temperature coefficient) thermistor is a resistor whose resistance decreases with increasing temperature. They are low cost and fairly accurate, and can be read by a simple analogue input.
Adafruit include a thermistor on their Circuit Playground Express [1] and Circuit Playground Bluefruit [2].
The thermistor is usually connected in a voltage divider arrangement with a fixed resistor:

With this configuration the resistance of the thermistor is defined as follows, where reading is the 10-bit ADC reading, from 0 to 1023, and series-res is the series resistance, 10kΩ:
The following program reads the thermistor and returns the temperature in °C. It uses the following parameters:
| Parameter | Typical value | Description |
| pin | 23 | The ADC pin |
| series-res | 10000 | The series resistor |
| nom-res | 10000 | The resistance of the thermistor at the nominal temperature |
| nom-temp | 25 | The nominal temperature in °C |
| b-coeff | 3380 | The B coefficient of the thermistor, from the datasheet |
The values above are suitable for the thermistor used in Adafruit's Circuit Playground.
(defun temperature (pin series-res nom-res nom-temp b-coeff)
(analogreference :ar-vdd4)
(-
(/
(+
(/ (+ nom-temp 273.15))
(/
(log (/ (* series-res (1- (/ 1023 (analogread pin)))) nom-res))
b-coeff)))
273.15))
For example, with the Circuit Playground Bluefruit you can read the temperature with:
> (temperature 23 10000 10000 25 3380) 20.3813
- ^ Circuit Playground Express on Adafruit.
- ^ Circuit Playground Bluefruit on Adafruit.
