Кликер

Lui22
Offline
Зарегистрирован: 07.03.2016

Добрый день господа, я знаю таких проектов полно, но мне лень искать искать и править.

Имею:

Arduino 1.6.5 так как страшие версии не правильно понимают экран

FLProg на всякий случай

Arduino Nano Atmega 328

Экран 2х16 1602A подключенный через I2C, адрес 0х27

кнопка

Хочу сделать кликер/счетчик нажатия на кнопку. Работа легкая, но повторюсь лень

Lui22
Offline
Зарегистрирован: 07.03.2016

Написал скетч с помощью FLProg, но счетчик сичатает нажата кнопка или нет, а мне нужно чтобы общее количество нажатий было.


    bool _count1I = 0;
    unsigned long _count1P = 0UL;
    bool _bounseInputD12S = 0;
    bool _bounseInputD12O = 0;
    unsigned long _bounseInputD12P = 0UL;
    bool _bounseInputD13S = 0;
    bool _bounseInputD13O = 0;
    unsigned long _bounseInputD13P = 0UL;
    void setup()
    {
      Serial.begin(9600);
    pinMode(13, INPUT); //кликать суды
    pinMode(12, INPUT); //сброс

    _bounseInputD12O =  digitalRead(12);
    _bounseInputD13O =  digitalRead(13);
    }
    void loop()
    {
    bool  _bounceInputTmpD12 =  (digitalRead (12));

    if (_bounseInputD12S)
        {
         if (millis() >= (_bounseInputD12P + 40))
             {_bounseInputD12O= _bounceInputTmpD12; _bounseInputD12S=0;}
         }
    else
        {
         if (_bounceInputTmpD12 != _bounseInputD12O )
             {_bounseInputD12S=1; _bounseInputD12P = millis();}
          }
    bool  _bounceInputTmpD13 =  (digitalRead (13));

    if (_bounseInputD13S)
        {
         if (millis() >= (_bounseInputD13P + 40))
             {_bounseInputD13O= _bounceInputTmpD13; _bounseInputD13S=0;}
         }
    else
        {
         if (_bounceInputTmpD13 != _bounseInputD13O )
             {_bounseInputD13S=1; _bounseInputD13P = millis();}
          }




    if (_bounseInputD13O)
       {
       if (! _count1I) 
          {
           _count1P = _count1P+1;
           _count1I = 1;
          }
       }
    else
       {
       _count1I=0;
       }
    if (_bounseInputD12O) _count1P = 0;

      Serial.print(_count1I);;
      delay (100);


    }

P.S. Пока пишу на сериал порт, дабы не нагибаться постоянно

Lui22
Offline
Зарегистрирован: 07.03.2016

Понял, разобрался ошибка была в не той переменной

Клапауций 322
Offline
Зарегистрирован: 31.12.2015