Страницы

12 апреля 2017 г.

Код. Подключение цифрового термометра DS1620

Рассмотрен вариант подключения одного DS1620 и вариант подключения двух  DS1620 на одну линию.
Подробнее тут DS1620 Datasheet (PDF) и тут на русском
Библиотека DS1620 для Arduino IDE тут GitHub

Подключение одного датчика DS1620


Схема подключения DS1620 с использованием Arduino Nano (rev. 3.0)
Код:

//----------------------------------------------------------
// Подключение 1 (одного) датчика DS1620
//----------------------------------------------------------
//Подключаем библиотеки
#include <DS1620.h>
static const uint8_t RST_PIN = 3;  // пин 3 на DS1620
static const uint8_t CLK_PIN = 4;  // пин 2 на DS1620
static const uint8_t DQ_PIN  = 5;  // пин 1 на DS1620
DS1620 ds1620(RST_PIN, CLK_PIN, DQ_PIN);

void setup()
{
  Serial.begin(9600);
  delay(100);
  ds1620.config();
}

void loop()
{
  const float temp_c = ds1620.temp_c();
  const float temp_f = temp_c * 9 / 5.0 + 32;
  Serial.print("t1 | ");
  Serial.print(temp_f);  
  Serial.print(" Farenheit | ");
  Serial.print(temp_c);
  Serial.println(" Celsius");
}

Подключение двух датчиков DS1620 (экономим пины Arduino)

Схема подключения двух DS1620 с использованием Arduino Nano (rev. 3.0)
Код:

//-----------------------------------------------------------------------------
// Подключение 2 (двух) датчиков DS1620 на одну линию
//-----------------------------------------------------------------------------
//Подключаем библиотеки
#include <DS1620.h>
//Назначаем пины
static const uint8_t RST_PIN = 3;  // пин 3 на DS1620 первом (DS1620 в коде)
static const uint8_t CLK_PIN = 4;  // пин 2 на DS1620 (общие для первого и второго датчика)
static const uint8_t DQ_PIN  = 5;  // пин 1 на DS1620 (общие для первого и второго датчика)
static const uint8_t RST_PINI = 7;  // пин 2 на DS1620 втором (DS1620I в коде)
DS1620 ds1620(RST_PIN, CLK_PIN, DQ_PIN);
DS1620 ds1620I(RST_PINI, CLK_PIN, DQ_PIN);

void setup()
{
  Serial.begin(9600);
  delay(100);
  ds1620.config();
  delay(100);
  ds1620I.config();
}

void loop()
{
  //опрашивать датчики будем поочередно
  //сначала первый
  const float temp_c = ds1620.temp_c();
  const float temp_f = temp_c * 9 / 5.0 + 32;
  Serial.print("t1 | ");
  Serial.print(temp_f);  
  Serial.print(" Farenheit | ");
  Serial.print(temp_c);
  Serial.println(" Celsius");
  delay(5000);
  //теперь второй
  const float temp_cI = ds1620I.temp_c();
  const float temp_fI = temp_c * 9 / 5.0 + 32;
  Serial.print("t2 | ");
  Serial.print(temp_fI);  
  Serial.print(" Farenheit | ");
  Serial.print(temp_cI);
  Serial.println(" Celsius");
  delay(5000);
}

Пример вывода:
Пример вывода показаний температуры с двух датчиков в монитор Serial порта

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

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