Как использовать два независимых считывателя iButton?

Тема в разделе "Микроконтроллеры AVR", создана пользователем Vittorio, 20 апр 2015.

  1. Vittorio

    Vittorio Нуб

    Подскажите, как можно с одним контроллером использовать два считывателя iButton? Мне нужно однозначно определить к какому именно пульту (считывателю) приложен ключ. Если их подключить параллельно, этого не определить, будут только ключи различаться, а мне надо, чтобы у администратора клуба и у пользователей были разные считыватели. Значит, повесить его на другой пин. Но как указать библиотеке, что надо поочередно опрашивать эти два пина?

    Код (Text):
    #include <OneWire.h> // http://www.pjrc.com/teensy/td_libs_OneWire.html
    #define IBUTTON_PIN 9
    #define RELAY_PIN 6

    byte key[8] = {1,16,103,186,1,0,0,7};

    OneWire ds(IBUTTON_PIN);  

    void setup(void)
    {
      pinMode(RELAY_PIN, OUTPUT);
      Serial.begin(9600);
    }

    void loop()
    {
      byte addr[8];
      byte val = 0;

      if (ds.search(addr))
      {
        Serial.print("R=");
        for (byte i = 0; i < 8; i++)
        {
          Serial.print(addr[i], DEC);
          Serial.print(" ");
          if (addr[i] == key[i]) val++;
        }
        Serial.println();
        ds.reset();

        if (val == 8)
        {
          Serial.println("OPEN!");
          digitalWrite(RELAY_PIN, HIGH);
          delay(3000);
          digitalWrite(RELAY_PIN, LOW);
        }
        else
        {
          Serial.println("DENY!");
        }
        ds.reset_search();
      }
    }
     
     
  2. ANV

    ANV Гуру

    OneWire ds2(IBUTTON_PIN2); и тд по тексту.