Arduino:Примеры/Пример подключения температурного датчика TMP36

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Cat poo.png Черновик


Пример подключения температурного датчика TMP36

Данный пример демонстрирует подключение температурного датчика TMP36 к Arduino Uno. В зависимости от измеренной температуры, RGB-светодиод будет гореть либо красным(очень жарко), зеленым(комфортная температура) или синим цветом(холодно).

С помощью температурного датчика TMP36 легко преобразовать выходной уровень напряжения в температуру в градусах Цельсия. Каждые 10 мВ равный 1 градусу Цельсия.

Формула перевода мВ в градусы Цельсия:

  • T = (Uвых - 500) / 10

Примечание: Смещение 500 мВ необходимо для минусовых температур.

Необходимые компоненты

  • Одна плата Arduino Uno
  • Одна макетная плата
  • Один температурный датчик TMP36
  • 3 резистора на 220 Ом
  • Провода-перемычки

Схема

Соберите схему согласно рисунку. Соедините 1, 3 и 4 контакты RGB-светодиода с 11, 10 и 9 цифровыми контактами Arduino через резисторы на 220 Ом, а 2 контакт RGB-светодиода соедините с землей(GND). Крайний левый контакт температурного датчика TMP36 соедините с контактом 5V Arduino, крайний левый с землей(контакт GND на Arduino), а средний контакт соедините с 0-ым аналоговым входом Arduino.

Tmp36 arduino uno 1.png

Код

#define BLED 9                                         //9 контакт для синего вывода RGB-светодиода
#define GLED 10                                        //10 контакт для зеленого вывода RGB-светодиода
#define RLED 11                                        //11 контакт для красного вывода RGB-светодиода
#define BUTTON 2                                       //2 контакт для кнопки
#define TEMP 0                                         //0-ой контакт(А0) температурного датчика TMP36

const int LOWER_BOUND=139;                             //Нижний порог
const int UPPER_BOUND=147;                             //Верхний порог

int val = 0;                                           //переменная для хранения, считываемого значения с температурного датчика TMP36

void setup()
{
  pinMode (BLED, OUTPUT);                              //Устанавливаем контакт BLED(Blue LED, т.е 9 контакт) как выход
  pinMode (GLED, OUTPUT);                              //Устанавливаем контакт GLED(Green LED, т.е 9 контакт) как выход
  pinMode (RLED, OUTPUT);                              //Устанавливаем контакт RLED(Red LED, т.е 9 контакт) как выход
}

void loop()
{
  val = analogRead(TEMP);                              //Чтение значения с 0-го контакта и сохранение в переменной
 
  if (val < LOWER_BOUND)                               //Если значение меньше нижнего порога, то устанавливаем синий цвет
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, HIGH);
  }
  else if (val > UPPER_BOUND)                          //Если значение выше верхнего порога, то устанавливаем красный цвет
  {
    digitalWrite(RLED, HIGH);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
  else                                                 //Если значение находится между нижним и средним порогом, то устанавливаем зеленый цвет
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, HIGH);
    digitalWrite(BLED, LOW);
  }
}
  • Примечение: Вы можете установить нижний(LOWER_BOUND) и верхний порог(UPPER_BOUND) на приемлемый для вас температурный диапазон(формула для расчета указана вверху).

См.также

Внешние ссылки