Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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

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


Ambox content.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

Код

  1. #define BLED 9                                         //9 контакт для синего вывода RGB-светодиода
  2. #define GLED 10                                        //10 контакт для зеленого вывода RGB-светодиода
  3. #define RLED 11                                        //11 контакт для красного вывода RGB-светодиода
  4. #define BUTTON 2                                       //2 контакт для кнопки
  5. #define TEMP 0                                         //0-ой контакт(А0) температурного датчика TMP36
  6.  
  7. const int LOWER_BOUND=139;                             //Нижний порог
  8. const int UPPER_BOUND=147;                             //Верхний порог
  9.  
  10. int val = 0;                                           //переменная для хранения, считываемого значения с температурного датчика TMP36
  11.  
  12. void setup()
  13. {
  14.   pinMode (BLED, OUTPUT);                              //Устанавливаем контакт BLED(Blue LED, т.е 9 контакт) как выход
  15.   pinMode (GLED, OUTPUT);                              //Устанавливаем контакт GLED(Green LED, т.е 9 контакт) как выход
  16.   pinMode (RLED, OUTPUT);                              //Устанавливаем контакт RLED(Red LED, т.е 9 контакт) как выход
  17. }
  18.  
  19. void loop()
  20. {
  21.   val = analogRead(TEMP);                              //Чтение значения с 0-го контакта и сохранение в переменной
  22.  
  23.   if (val < LOWER_BOUND)                               //Если значение меньше нижнего порога, то устанавливаем синий цвет
  24.   {
  25.     digitalWrite(RLED, LOW);
  26.     digitalWrite(GLED, LOW);
  27.     digitalWrite(BLED, HIGH);
  28.   }
  29.   else if (val > UPPER_BOUND)                          //Если значение выше верхнего порога, то устанавливаем красный цвет
  30.   {
  31.     digitalWrite(RLED, HIGH);
  32.     digitalWrite(GLED, LOW);
  33.     digitalWrite(BLED, LOW);
  34.   }
  35.   else                                                 //Если значение находится между нижним и средним порогом, то устанавливаем зеленый цвет
  36.   {
  37.     digitalWrite(RLED, LOW);
  38.     digitalWrite(GLED, HIGH);
  39.     digitalWrite(BLED, LOW);
  40.   }
  41. }
  • Примечение: Вы можете установить нижний(LOWER_BOUND) и верхний порог(UPPER_BOUND) на приемлемый для вас температурный диапазон(формула для расчета указана вверху).

См.также

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