Кодовый замок

Тема в разделе "Arduino & Shields", создана пользователем Рокки1945, 14 май 2016.

  1. Рокки1945

    Рокки1945 Гуру

    Как реализовать выполнение действия не одной цифрой а несколькими , мучаюсь с сенсорной клавиатурой
    Скетч:
    #include <TTP229.h>
    const int SCL_PIN = 2; // The pin number of the clock pin.
    const int SDO_PIN = 3; // The pin number of the data pin.
    TTP229 ttp229(SCL_PIN, SDO_PIN); // TTP229(sclPin, sdoPin)

    void setup()
    {
    Serial.begin(9600);
    //Serial.println("Start !");
    pinMode(13, OUTPUT);
    }
    void loop()
    {
    uint8_t key = ttp229.ReadKey16(); // Blocking
    if (key==2) {
    digitalWrite(13,HIGH);
    }

    }
     
  2. ostrov

    ostrov Гуру

    Библиотека поддерживает мультитач?
     
  3. Рокки1945

    Рокки1945 Гуру

  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    а зачем там мультитач? Просто последовательное заполнение и проверка массива.
    Код (C++):
    #include <TTP229.h>
    const byte SCL_PIN = 2; // The pin number of the clock pin.
    const byte SDO_PIN = 3; // The pin number of the data pin.
    TTP229 ttp229(SCL_PIN, SDO_PIN); // TTP229(sclPin, sdoPin)
    const byte numberKeys = 4;                      // количество цифр в пароле
    const byte password[numberKeys] = {2, 2, 1, 4}; // пароль

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

    void loop()
    {
      // вводим пароль
      byte key[numberKeys];
      for (byte i = 0; i < numberKeys; i++) key[i] = ttp229.ReadKey16(); // Blocking

      // проверяем пароль
      byte errorCounter = 0;
      for (byte i = 0; i < numberKeys; i++) if (key[i] != password[i]) errorCounter++;

      // если пароль верный
      if (errorCounter == 0) digitalWrite(BUILTIN_LED, HIGH);
    }
     
    Рокки1945 нравится это.
  5. Рокки1945

    Рокки1945 Гуру

    не работает
     
  6. Benny_Ray

    Benny_Ray Нерд

    не работает вообще или не работает если неправильно введете чтото?
     
  7. Рокки1945

    Рокки1945 Гуру

    Залил скетч , набрал код , не в serial нигде ничего
     
  8. Benny_Ray

    Benny_Ray Нерд

    Так если код Tomasina в чистом виде то в serial он ничего и не будет писать насколько я вижу, там не хватает вывода в порт, допишите и проверьте.
     
  9. Рокки1945

    Рокки1945 Гуру

    привет сразу дописал - не идет
     
  10. Benny_Ray

    Benny_Ray Нерд

    Код (C++):
    for (byte i = 0; i < numberKeys; i++) {
        key[i] = ttp229.ReadKey16();
        Serial.print(key[i]);
    }
    и смотрим читает ли оно вообще что нибудь
     
  11. Рокки1945

    Рокки1945 Гуру

    #include <TTP229.h>
    const byte SCL_PIN =2;// The pin number of the clock pin.
    const byte SDO_PIN =3;// The pin number of the data pin.
    TTP229 ttp229(SCL_PIN, SDO_PIN);// TTP229(sclPin, sdoPin)
    const byte numberKeys =4; // количество цифр в пароле
    const byte password[numberKeys]={2, 2, 1, 4};// пароль

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

    void loop()
    {
    // вводим пароль
    byte key[numberKeys];
    for(byte i =0; i < numberKeys; i++) key= ttp229.ReadKey16();// Blocking

    // проверяем пароль
    byte errorCounter =0;
    for(byte i =0; i < numberKeys; i++)if(key!= password) errorCounter++;

    // если пароль верный
    if(errorCounter ==0) digitalWrite(13, HIGH);
    }
     
  12. Benny_Ray

    Benny_Ray Нерд

    это работать точно не будет, сравните свой код с тем который Вам привели.
     
  13. Рокки1945

    Рокки1945 Гуру

    почему то после 2 сразу 0 и так со всеми
     
  14. Рокки1945

    Рокки1945 Гуру

    а что я не написал
     
  15. Рокки1945

    Рокки1945 Гуру

    BUILTIN_LED вместо него 13 выход дописал
     
  16. Benny_Ray

    Benny_Ray Нерд

    это массив

    а дальше

    Вы проверяете просто байт, а не массив, странно как он вообще 1 цифру выдает.
     
  17. Рокки1945

    Рокки1945 Гуру

    202014030140
     
  18. Benny_Ray

    Benny_Ray Нерд

    а нажимаете какие кнопки то?
     
  19. Рокки1945

    Рокки1945 Гуру

  20. Рокки1945

    Рокки1945 Гуру

    #include <TTP229.h>
    const byte SCL_PIN = 2; // The pin number of the clock pin.
    const byte SDO_PIN = 3; // The pin number of the data pin.
    TTP229 ttp229(SCL_PIN, SDO_PIN); // TTP229(sclPin, sdoPin)
    const byte numberKeys = 4; // количество цифр в пароле
    const byte password[numberKeys] = {2, 2, 1, 4}; // пароль

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

    void loop()
    {
    // вводим пароль
    byte key[numberKeys];
    for (byte i = 0; i < numberKeys; i++) {
    key = ttp229.ReadKey16();
    Serial.print(key);
    }

    // проверяем пароль
    byte errorCounter = 0;
    for (byte i = 0; i < numberKeys; i++) if (key != password) errorCounter++;

    // если пароль верный
    if (errorCounter == 0) digitalWrite(13, HIGH);
    }