﻿#include <OneWire.h>
OneWire ds(10);// Определяем пин подключения к ключу
byte aaa[8] = {0x01,0x3D,0x0D,0x63,0x14,0x00,0x00,0xBA};// Массив известного ключа
byte addr[8]; // Обозначаем массив для чтения ключа из 8 байт
void setup() {
Serial.begin(9600);}// Запускаем порт
void loop() {
if (ds.search(addr)){// Если устройство подключено - считываем
if(aaa[0] == addr[0] && aaa[1] == addr[1] && aaa[2] == addr[2] // Сравниваем побайтно массивы
&& aaa[3] == addr[3] && aaa[4] == addr[4] && aaa[5] == addr[5] // Да, это черезчур громоздко,
&& aaa[6] == addr[6] && aaa[7] == addr[7]){                    // зато просто "как кувалда".
      Serial.println("OK");}// Если код совпал пишем ОК!
      else {Serial.println("NO!");}// Если несовпадение пишем NO!
for(int i=7; i>-1; i--){// Запускаем цикл печати данных из массива
Serial.print(addr[i], HEX);// Печатаем нужный байт в шестнадцатиричном виде
Serial.print(" ");}// Печатаем пробел
Serial.println();// В конце цикла переводим строку
ds.reset_search();}} // Сбрасываем устройство
