среда, 5 сентября 2012 г.

Самый простой способ подключить датчик температуры типа DS18x20 к Arduino

Итак, нужно подключить несколько датчиков температуры по одной шине к arduino. Самый простой способ - использовать библиотеку Dallas Temperature Control Library. Поддерживаются датчики:

  • DS18B20 
  • DS1822 
  • DS18S20* 
  • DS1820
Скачиваем, извлекаем в папку libraries нашей Arduino IDE. Предполагается, что библиотека OneWire уже там =) (кстати вот тут рабочая версия для Arduino IDE 1.0 и выше).

Скетч-пример работы с библиотекой:


#include <OneWire.h>
#include <DallasTemperature.h>
// Data-нога датчика (или датчиков) к 12 пину ардуины
#define ONE_WIRE_BUS 12
// настройка oneWire для работы с любыми другими OneWire девайсами (не только Maxim/Dallas датчиками температуры)
OneWire oneWire(ONE_WIRE_BUS);
// подключаем Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  // Start up the library
  sensors.begin();
}

void loop(void)
{
  // вызов sensors.requestTemperatures() для сбора показаний
  // со всех датчиков на шине
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // запрос показаний температуры
  Serial.println("DONE");

  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0)); // первый датчик
  Serial.print("\n");
  Serial.print("Temperature for Device 2 is: ");
  Serial.print(sensors.getTempCByIndex(1)); // второй
  // если датчиков больше, то продолжаем аналогично...
  Serial.print("\n");
}
 Вот и все, осталось вживить это в основной скетч (ну не использовать же Arduino только для измерения температуры?) =))

Вики по Dallas Temperature Control Library

Сам датчик:
Пины по порядку для подключения к arduino: GND-GND, DQ-pin12, Vcc-5V.
Между pin12 и 5V рекомендуется поставить подтягивающий резистор на 4.7 кОм.

Комментариев нет:

Отправить комментарий