Klasa Button pozwala na ustawienie parametru pullup, który włącza lub wyłącza wewnętrzny rezystor podciągający dla danego wejścia (GPIO).
W zależności od tego czy ten parametr jest ustawiony na true bądź false metoda onInit() tej klasy wywołuje funkcję pinMode z parametrem INPUT_PULLUP bądź INPUT, co pozwala na obsługę GPIO0-GPIO15.
GPIO16 nie ma natomiast wewnętrznego rezystora, więc parametr pullup nic nie zmieni.
W tym przypadku trzeba podciągnąć VCC do pinu przez zewnętrzny rezystor albo włączyć wewnętrzny PULLDOWN, który ten pin jako jedyny posiada. Wtedy efekt naciśnięcia przycisku uzyskujemy zwierając go do VCC a nie do GND.
Niestety klasa Button nie pozwala zrobić tego bezpośrednio, więc najlepiej wstawić poniższą linijkę kodu do metody setup() - koniecznie po wywołaniu SuplaDevice.begin(...).
Code: Select all
Supla::Io::pinMode(16,INPUT_PULLDOWN_16);