Датчик температуры lm335 подключение к ардуино

RoboCraft

9. Аналоговый датчик температуры – LM335

Варианты измерения температуры:
1. термопара
2. терморезистор
3. аналоговый термодатчик
4. цифровой термодатчик

подробнее можно почитать здесь

Вариант использования терморезистора мы мельком рассмотрели здесь.
Сейчас же рассмотрим, как работать с аналоговыми датчиками температуры, на примере LM335.

LM335 – это недорогой (

40 рублей) температурный чувствительный элемент с диапазоном от -40 °C до +100°C и точностью в 1°C.

Даташит (datasheet – документация на элемент) на LM335 можно посмотреть здесь

Фактически, LM335 — это стабилитрон с нормированным Температурным Коэффициентом Напряжения (ТКU =10 мВ/K).

Т.е. изменение температуры датчика на 1 градус ведёт к изменению напряжения на 10mV.

Схема включения (соответствует типовой схеме включения стабилитрона):

Задавая ток через датчик в диапазоне от 0.45mA до 5mA (резистором R1), получаем напряжение на датчике, которое в десятках mV представляет абсолютную температуру в градусах Кельвина.

Как видим, используются только вторая и третья ножки датчика (если повернуть датчик к себе плоской стороной – то нумерация ножек будет идти слева-направо)

То есть, схему можно представить так:

Сопоставим напряжение на датчике и температуру, припоминая, что
0С = 273.15К
На датчике, при этом будет напряжение 2.7315V

ТКU =10 мВ/K => в 1V будет 100K

-40С = 233.15К
на датчике будет 2.3315V
+100С = 373.15К
на датчике будет 3.7315V

Получается – нам нужно только снять это напряжение на аналоговом входе (например, analog input 0) 🙂
Однако, функция analogRead, возвращает значение от 0 до 1023, причём 1023 соответствует величине Опорного Напряжения, задаваемого функцией analogReference и по умолчанию, составляющего 5V.
Т.о., чтобы узнать какое напряжение поступило к нам на вход – нужно выполнить простое преобразование:

, где val – величина, полученная от analogRead
Далее остаётся только перевести это напряжение в градусы, а потом привести из градусов Кельвина в более привычные градусы Цельсия:

в температуру переводим – просто умножая на 100

В последнем столбце вывода получаем заветную температуру в градусах Цельсия 🙂

Источник

Датчики температуры LM335 и DHT-11. Личные доводы и ничего более [Обзор]

В этом посту не будет программ, а будет краткая характеристика датчиков температуры LM335 и DHT-11 (Аналоговый и цифровой).
Пока писался заголовок, было написано пару демонстрационных программ для работы с датчиками. И нелепый вывод по их работе.
Добро пожаловать ниже
Первым в руки попадает датчик DHT-11. Цифровой 16 разрядный датчик. В каждых 8ми битах содержится число для температуры и для влажности.
Сам датчик очень стабильный, качественно исполнен. И стоимость датчика всего 30 гривен

$1.20. Существуют версии датчиков DHT-22 и DHT-21.

Если Вам интересны внутренности датчика, так вот они на рисунке ниже.

Углубляться в физический принцип измерения не будем. Сразу к датчику.
В моем случае был приобретен датчик температуры и влажности DHT-11 без обвеса который тянет на целый $1 доллар сверху стоимости.

Для быстрого подключения датчика температуры и влажности к Ардуино необходимо припаять к второму пину датчика, а именно линии данных «DATA» резистор 10кОм — 5кОм, если есть под рукой то резистор в исполнении SMD отлично подойдет. В моем случае его не было, на работу это не повлияет.

Некоторые данные: В режиме измерения датчик DHT-11 потребляет 35 миллиампер, а в режиме покоя 1 миллиампер.
У датчика DHT -цифровой сигнал.
Если есть желание подключать датчик на расстоянии 15 и более метров используйте резистор номиналом 5кОм.

На счет вывода №3 на датчике скажу следующее — не спешите его отламывать. Он используется для установки датчика в режим считывания данных или покоя. По дурости я согнул ногу, а когда понадобилось разогнуть — она отвалилась. Если планируете создавать энергоэффективные проекты то задумайтесь.

Ниже приведен рабочий код программы для считывания данных. Просто пробежавшись глазами все становится понятно. Если не понятно, то можно задать вопрос с комментариях.

Совсем забыл о том что для датчика DHT-11 необходимо 2 файла библиотеки.
Скачать библиотеку для DHT1-11
В архиве находятся 2 файла которые необходимо поместить в папку с кодом програмы для DHT-11

Источник

Guide for LM35, LM335 and LM34 Temperature Sensors with Arduino

This guide shows how to use the LM35 (LM35DZ), LM335 and LM34 temperature sensors with the Arduino board. We’ll show you how to wire the sensors and write the code to get temperature readings. Lastly, we’ll build a project example to display the sensor readings on an OLED display.

Introducing LM35, LM335 and LM34 Temperature Sensors

The LM35, LM335 and LM34 are linear temperature sensors that output a voltage proportional to the temperature value.

Temperature Sensor Output Voltage Linearity
LM35 (LM35DZ) proportional to temperature in Celsius (ºC) 10mV/ºC
LM335 proportional to temperature in Kelvin (ºK) 10mV/ºK
LM34 proportional to temperature in Fahrenheit (ºF) 10mV/ºF

These sensors work in a similar way, but are calibrated differently to output a voltage proportional to the different temperature units.

The LM35 outputs 10 mV per degrees Celsius rise in temperature. In a similar way, the LM335 outputs 10 mV per degrees Kelvin rise in temperature and the LM34 outputs 10 mV per degrees Fahrenheit rise in temperature.

For example, if the LM35 outputs a voltage of 345 mV, that means we have a temperature value of 34.5ºC.

For more information about these sensors, you can consult their datasheet:

Where to Buy?

You can go to Maker Advisor to find the Temperature sensors’ best price at different stores:

LM35 (LM35DZ) Pinout

The LM35 has only three pins, VCC , Vout and GND .

Here’s the connections you need to make between the LM35 and the Arduino:

LM35 / LM34 Arduino
VCC 5V
Vout Any Analog Pin
GND GND

Note: if you’re using an LM34 temperature sensor, the pinout is the same of the LM35.

LM335 Pinout

The pinout of the LM335 temperature sensor is slightly different.

LM335 Arduino
Adj Don’t connect
Vout Any Analog Pin (pull up with 2k Ohm resistor)
GND GND

The adj pin can be used to calibrate the sensor and obtain more accurate temperature readings. We won’t use that pin in this tutorial, so it should be left unconnected.

Schematic Diagram

You should follow the same schematic diagram whether you’re using an LM35 or LM34 temperature sensor. You should follow a slightly different diagram if you’re using the LM335.

LM35 and LM34 with Arduino

LM335 with Arduino

Code – Read Temperature

The following code reads the temperature from the LM35 sensor and displays the readings in the Serial Monitor. This code is also compatible with LM335 and LM34 – you just need to uncomment some lines in the code to use the right sensor.

How the Code Works

You start by defining the pin that is connected to the sensor output. It must be an analog pin. We’re using pin A0 , but you can use any other analog pin.

Define a variable that will hold the analog value read from the sensor:

The voltageOut variable will store the actual voltage output value coming from the sensor.

Then, create variables that will store the temperature value. Here, we create a temperatureC and a temperatureF variables to hold the temperature in Celsius and Fahrenheit, respectively.

If you’re using the LM335 sensor, you also need a variable to hold the temperature in Kelvin. So, if you’re using that sensor you need to uncomment the following line:

In the setup() , declare the sensorPin as an input:

Initialize a serial communication at a baud rate of 9600. You need to initialize the serial communication so that you can display the readings on the Serial Monitor:

In the loop() , read the value coming from you sensor and save it in voltageOut variable. To read an analog value with Arduino you just need to use analogRead() function and pass the pin you want to read as an argument.

As mentioned previously, these sensors output a voltage value that is proportional to the temperature.

The analog values read from the Arduino may have a value between 0 and 1024, in which 0 corresponds to 0V and 1024 to 5V. So, we can easily get the output voltage of the sensor in mV.

In case of the LM35 sensor, we’ve seen that 10mV corresponds to a Celsius degree rise in temperature. So, the temperature in Celsius corresponds to the voltage read from the sensor in mV divided by 10mV.

To get the temperature in Fahrenheit, we just need to use the Celsius -> Fahrenheit conversion:

If you’re using an LM335 or an LM34, you use the same calculations to get the temperature. You just need to keep in mind that the LM335 returns the temperature in Kelvin degrees and the LM34 in Fahrenheit degrees. Then, you can convert the values to other units if needed.

Finally, print the sensors readings to the Serial Monitor both in Celsius and Fahrenheit degrees.

For debugging purposes, we also print the voltage.

The loop() is repeated every second.

Demonstration

Upload the code to your Arduino IDE. Don’t forget to select the right board and COM port in the Tools menu.

After that, open the Serial Monitor at a baud rate of 9600. You should get new temperature readings every second. You can cover the sensor with your finger to see the temperature values increasing.

Temperature Readings in OLED Display

In this section we’ll show you how to display your sensor readings in an OLED display.

For an in-depth tutorial on how to use the OLED display with the Arduino, follow the next guide:

Parts Required

For this project, you’ll need the following parts:

You can use the preceding links or go directly to MakerAdvisor.com/tools to find all the parts for your projects at the best price!

Schematic Diagram

Wire all the components as shown in the next schematic diagram:

Installing OLED Libraries

To control the OLED display you need the adafruit_SSD1306.h and the adafruit_GFX.h libraries. Follow the next instructions to install those libraries.

1. Open your Arduino IDE and go to Sketch > Include Library > Manage Libraries. The Library Manager should open.

2. Type “SSD1306” in the search box and install the SSD1306 library from Adafruit.

3. After installing the SSD1306 library from Adafruit, type “GFX” in the search box and install the library.

4. After installing the libraries, restart your Arduino IDE.

Code – Display Readings on OLED

After wiring the circuit and installing the required libraries, upload the following code to your Arduino board.

Demonstration

Congratulations! You’ve completed the project. Now, you can check the sensor readings in the OLED display. New temperature readings are displayed every second.

Wrapping Up

The LM35, LM335 and LM34 are linear temperature sensors that output a voltage proportional to the temperature value. They can be powered by the Arduino 5V pin, and to read the voltage, you use an analog pin.

Reading the voltage from the sensor is as easy as using the analogRead() function on the sensor pin. Then, you just need to make a simple calculation to get the temperature in your desired unit.

We hope you’ve found this guide useful. We have other guides about Arduino sensors and modules that you may like:

If you like Arduino, you’ll also like our Arduino Course: Arduino Step-by-step Projects

Источник

Adblock
detector