INPUT_PULLDOWN_16

User avatar
vajera
Posts: 7289
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Taki mały drobiazg dotyczący biblioteki SuplaDevice - w sumie nic odkrywczego, ale może przyda się początkującym ;)

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);
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277

Return to “Arduino IDE”