Подключение термометра LM35 к Arduino
Аналоговый термометр
LM35 к Arduino — питание 5 В, земля и выход на аналоговый вход. analogRead() вернёт 0–1023, градусы получаются умножением напряжения на 100.
Схема подключения термометра LM35 к Arduino
| LM35 | Arduino Uno |
|---|---|
| VOUT | A0 |
| VS | 5V |
| GND | GND |
Схема из примера «Arduino Uno: термометр LM35».
Выводы LM35
| Вывод | Назначение |
|---|---|
| VOUT | аналоговый выход, 10 мВ на градус |
| VS | питание, от 4 В (на плату — 5 В) |
| GND | общий провод |
Код для Arduino
// Термометр LM35: 10 мВ на каждый градус Цельсия.
//
// Питание от 5 В, выход - на A0. При опорном напряжении 5 В один
// отсчёт АЦП - это около 0,5 °C. Точнее можно, переключив опорное
// напряжение на встроенные 1,1 В (analogReference(INTERNAL)): шаг
// станет около 0,1 °C, но выше 110 °C шкала закончится.
const int LM35 = A0;
const float VREF = 5.0;
void setup() {
Serial.begin(9600);
}
void loop() {
long sum = 0;
for (int i = 0; i < 8; i++) {
sum += analogRead(LM35);
delay(2);
}
float volts = (sum / 8.0) * VREF / 1023.0;
float celsius = volts * 100.0;
Serial.print(volts, 3);
Serial.print(" В = ");
Serial.print(celsius, 1);
Serial.println(" °C");
delay(1000);
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на Arduino
- При опорном напряжении 5 В шаг АЦП — около 0,5 °C. Для точности выше переключите опорное напряжение на встроенное 1,1 В.
- Усредните несколько замеров: помехи на длинном проводе дают шум в десятые доли градуса.
Частые ошибки при подключении к Arduino
- Считать температуру по шкале 1023 при опорном напряжении 1,1 В, как если бы опорным было 5 В.
- Мерить температуру на плате Arduino рядом с регулятором: он греется, и датчик измеряет плату, а не комнату.
- Питание от 3,3 В: на выходе непредсказуемые значения. Датчику нужны 5 В.
- Перепутаны выводы TO-92: при обратной полярности датчик нагревается и выходит из строя.
- Без усреднения показания «дрожат» на десятые доли градуса и больше: АЦП шумит, а на один градус приходится всего 10 мВ.
- Попытка измерить температуру ниже нуля в базовой схеме: выход LM35 не уходит в отрицательную область.
Ещё по теме
Другие детали для Arduino
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637Модуль релеKY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодПолзунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2Джойстик KY-023DHT11HTU21D