Дубликатор домофоных ключей, допилить код

Тема в разделе "Arduino & Shields", создана пользователем An4ous, 15 фев 2021.

  1. An4ous

    An4ous Нерд

    Доброго времени суток. повторил проэкт МЕХАТРОНА . собрал копировальщик домофонных ключей, все завелось и заработало без танцев с бубном. но хотелось бы немного модернезировать- а именно добавить функцию добавления ключей через сериал порт.
    на странице проэка написали коментарий с куском кода который нужно воткнуть в скетч, если правильно понял то отсутствует функция "nibble2c" которая должна была прилагаться с куском кода

    кусок кода:
    Код (C++):
    // вставить в loop после echo = Serial.read();
    // и загружайте ключи через serial
    if (echo == ‘w’){
    String keyId = Serial.readStringUntil(‘\n’);
    if (keyId.length() == 16 && keyId[0]==keyId[1] && (keyId[0] == ‘f’ || keyId[0] == ‘F’)){
    Serial.print(F(«Key is «) ); Serial.println(keyId);
    // convert keyID from HEX
    for (byte i = 0; i < 8; i++)
    {
    keyID[i] = nibble2c(keyId[i*2]) *16 + nibble2c(keyId[i*2 +1]);
    }
    }

    // OLED_printKey(keyID);
    if (EPPROM_AddKey(keyID)) {
    OLED_printError(F("The key saved"), false);
    Sd_ReadOK();
    //delay(1000);
    }
    else { Sd_ErrorBeep();
    }
    OLED_printKey(keyID);
    }
     
    сслылка на гитхаб, скетч большой и не влезает на форуме
    https://github.com/AlexMalov/EasyKeyDublicatorRFID_OLED
    На 904й строке есть закомментированная строка позволяющая вручную вписывать код, но это очень не удобно, и нужна постоянная прошивка с каждым новым кодом ключа.

    Надеюсь что кто-нибудь поможет с кодом, символическую оплату труда никто не отменял)
     
  2. b707

    b707 Гуру

    С 6-ти летним стажем на форуме должно быть стыдно просить подобный элементарный код.
    Попробуйте додумать сами. Что нужно сделать - перевести символ в цифру , по типу
    '0' -> 0
    '1' -> 1
    .....
    'A' -> 10
    'B' -> 11
    ....
    'F' -> 15

    Для такого кода вариантов просто масса - можно через switch-case, можно через табличку, через вычитание символов и тд...
    Дерзайте
     
  3. An4ous

    An4ous Нерд

    Стаж это всего лишь цифра не имеющая отношения к опыту. Программированием года 3 уже не занимался, уже забыл даже все элементарное
     
  4. b707

    b707 Гуру

    отличный повод вспомнить, Задачка как раз для этого - совсем несложная.
     
    Airbus нравится это.