Загрузка данных


#include <OneWire.h>

// Сигнальный провод подключен к 2 пину Arduino
OneWire ds(2); 

void setup() {
  Serial.begin(9600);
  Serial.println("Система готова. Приложите ключ iButton...");
}

void loop() {
  byte addr[8];
  
  // Ищем устройство на линии
  if (!ds.search(addr)) {
    ds.reset_search();
    delay(250);
    return;
  }
  
  // Проверяем контрольную сумму (CRC)
  if (OneWire::crc8(addr, 7) != addr[7]) {
    Serial.println("Ошибка: неверный CRC!");
    return;
  }

  // Если всё ок, выводим код в консоль
  Serial.print("Код ключа успешно считан: ");
  for(int i = 0; i < 8; i++) {
    if (addr[i] < 16) Serial.print("0");
    Serial.print(addr[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
  
  delay(1000); // Пауза, чтобы не спамить в порт
}