/*
 * Данный скетч выполняет преобразование температуры
 * для температурных датчиков 5306НТ015В/С
 * АО «Дизайн Центр «Союз»
 * 13.08.2024г.
 */

/* ---------- Распиновка микросхемы ---------
 * 1,3 - NC; 2 - DQ; 4,5 - GND; 6 - VDD
 * линию DQ подтянуть к VDD резистором 4.7кОм
 * объединить GND микросхемы и GND Arduino
 */

#include <OneWire.h>

OneWire ds(8); //линия DQ - 8 пин Arduino, подключить к выводу 2 датчика

int T_kod;
byte bufData[9];
float temperature;


void setup() {
  Serial.begin(9600);
}

void loop() {
  ds.reset();
  ds.write(0xCC); //skip rom 
  ds.write(0x44); //convert_T

	delay(800); //ожидание преобразования температуры

  ds.reset();
  ds.write(0xCC); //skip rom
  ds.write(0xBE); //read_scratch
  
  bufData[1]=ds.read(); //младший байт температурного кода
  bufData[2]=ds.read(); //старший байт температурного кода

  T_kod = (bufData[1] | ((bufData[2]) << 8));

  float temperature = (bufData[1] | ((bufData[2]) << 8)) * 0.0625;
  Serial.print("KOD=");
  Serial.print(T_kod, BIN);
  Serial.print("\t");
  Serial.print("T=");
  Serial.println(temperature); //для просмотра результатов откройте монитор порта
 }
