Дубликат ключа от домофона.

Nick23
Offline
Зарегистрирован: 23.10.2014

Всем привет. Решил сделать дубликат ключей от домофона (DS1990). Код был взят отсюда: https://geektimes.ru/post/258786/

Сам скетч: 

#include <OneWire.h>

#define pin 10

byte key_to_write[] = { 0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1 };

OneWire  ds(pin);  // pin 10 is 1-Wire interface pin now

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  byte i;
  byte data[8];

  delay(1000); // 1 sec
  
  ds.reset();
  delay(50);
  ds.write(0x33); // "READ" command
  
  ds.read_bytes(data, 8);

  Serial.print("KEY ");
  for( i = 0; i < 8; i++) {
    Serial.print(data[i], HEX);
    if (i != 7) Serial.print(":");
  }

  // Check if FF:FF:FF:FF:FF:FF:FF:FF
  // If your button is really programmed with FF:FF:FF:FF:FF:FF:FF:FF, then remove this check
  if (data[0] & data[1] & data[2] & data[3] & data[4] & data[5] & data[6] & data[7] == 0xFF)
  {
    Serial.println("...nothing found!"); 
    return;
  }

  return; // remove when ready to programm

  // Check if read key is equal to the one to be programmed
  for (i = 0; i < 8; i++)
    if (data[i] != key_to_write[i])
      break;
    else
      if (i == 7)
      {
        Serial.println("...already programmed!");
        return;
      }

  Serial.println();
  Serial.print("Programming new key...");
  
  for (uint8_t i = 0; i < 8; i++)
  {
    ds.reset();
    data[0] = 0x3C; // "WRITE" command
    data[1] = i; // programming i-th byte
    data[2] = 0;
    data[3] = key_to_write[i];
    ds.write_bytes(data, 4);
    Serial.print(".");
  
    uint8_t crc = ds.read();
    
    if (OneWire::crc8(data, 4) != crc) {
        Serial.print("error!\r\n");
        return;
    }
    else
      Serial.print(".");
    
    send_programming_impulse();
  }
  
  Serial.println("done!");
}

void send_programming_impulse()
{
  pinMode(pin, OUTPUT);
  digitalWrite(pin, HIGH); 
  delay(60);
  digitalWrite(pin, LOW); 
  delay(5);
  digitalWrite(pin, HIGH); 
  delay(50); 
}

Код своего ключика переписал в: в массив key_to_write

Никак не пойму как убирать помеченный коментарием return. Помогите.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Nick23 пишет:

Никак не пойму как убирать помеченный коментарием return. Помогите.

1. Ставите курсор в самое начало строки и два раза давите на кнопку "/".

или

2. Ставите курсор в самое начало строки и давите кнопку Del до тех пор, пока return весь не уберётся.

А проще, идёте на курсы "пользователя компьютера" при любом местном ВУЗе. Там девочки - студентки Вам всё объяснят, заодно и пофлиртуете.

Nick23
Offline
Зарегистрирован: 23.10.2014

какой строки? мне надо убрать коммент. я просто не пойму где начало, а где конец.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015
Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Nick23 пишет:

мне надо убрать коммент. я просто не пойму где начало, а где конец.

Фейспалм...

Начало комента - две косые черты ( // ), конец комента - последнее слово в строке

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Nick23 пишет:

Никак не пойму как убирать помеченный коментарием return. 

Nick23 пишет:

мне надо убрать коммент. 

Ну, Вы бы как-нибудь определились, что Вам нужно убрать return или коммент.

Nick23 пишет:

я просто не пойму где начало, а где конец.

Начало строки, обычно слева, а конец - справа.

Или Вы не можете понять, "где начало того конца, которым оканчивается начало?"

 

Nick23
Offline
Зарегистрирован: 23.10.2014

Вот так написано с статье: Убираем помеченный коментарием return

Вот как это понять?

 

Nick23
Offline
Зарегистрирован: 23.10.2014

Скопируйте мне из кода, что надо стереть? Ну не понимает человек. И Вы меня не можете понять.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Nick23 пишет:

Вот так написано с статье: Убираем помеченный коментарием return

Вот как это понять?

Блин, Вы что и впрямь не шутите и не троллите?

Строку 39 удаляем нахрен (можно и ещё дальше). Никак по-другому это понять невозможно.

Nick23
Offline
Зарегистрирован: 23.10.2014

Нет, здесь нет никакого троллинга. Просто мне не понятно, что надо было удалять. Либо с 36 по 39, либо одну из строк. Спасибо за помощь. И не надо нервничать, надо спокойно относиться в таким вопросам.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Nick23 пишет:

надо спокойно относиться в таким вопросам.

Кому надо? Вам? Ну, так относитесь.

Или Вы решили поучить меня как мне относиться к вопросам? Напрасно, найдите более благодарный объект для своих педагогических экспериментов.

b707
Offline
Зарегистрирован: 26.05.2017

Nick23 пишет:

Нет, здесь нет никакого троллинга. Просто мне не понятно, что надо было удалять. Либо с 36 по 39, либо одну из строк. Спасибо за помощь.

Вы логику программы понимаете? или просто копируете непонятные буковки. найденные в инете? :)

Return в 39 строчке стоит,  как предохранитель, чтобы программа не испортила приложенный к считывателю ключ. Убирать его стоит, только если Вы АБСОЛЮТНО УВЕРЕНЫ в том что делаете. А пока у меня такое ощущение, что для вас этот код - темный лес.

Кстати, по-моему этот код работать не будет, так как хотя и написано, что он копирует болванки RW1990. алгоритм записи в нем от ключей TM2004

cat5130
Offline
Зарегистрирован: 14.02.2017

Nick23 пишет:

 Код был взят отсюда: https://geektimes.ru/post/258786/

В источнике действительно говорится о ключах ТМ2004.

nik182
Offline
Зарегистрирован: 04.05.2015

Код то не настоящий!

Из приведённой статьи:"Во-вторых, я всё-таки намеренно упустил несколько довольно принципиальных вопросов, которые помешают новичку запустить устройство. "

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:

Код то не настоящий!

Но он, тем не менее, показывает основные принципы.

А вообще, в интернете он не единственый. Ищите. Я тоже ардуино начинал не с блинка, а с чтения домофонных ключиков...

nik182
Offline
Зарегистрирован: 04.05.2015

Это я к тому, что код для начинающих специально сделан нерабочим. У меня сделано это - пока все ключи отлично откопировались,

http://sun-student.ru/hard/rw1990/manufacture_duplicator.html

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Щас бы в 2k17 домофоны на Dallas ставить... RFId рулит.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Voodoo Doll пишет:

Щас бы в 2k17 домофоны на Dallas ставить... RFId рулит.

Да, ладно Вам - отличная вещь. Многофункциональная!!! Сам видел как бомжара от подъездного "замка" мобильник подзаряжал. Слабо такое с рфид проделать?

b707
Offline
Зарегистрирован: 26.05.2017

Voodoo Doll пишет:

Щас бы в 2k17 домофоны на Dallas ставить... RFId рулит.

Новые может и не ставят, а вот старых -полно. По моим прикидкам, в москве две трети домофонов - до сих пор на Далласе и аналогах.