Obsługa przycisku – IoT
Podstawową rzeczą, w jakimkolwiek urządzeniu, jest przycisk. Jest to najprostszy interfejs do komunikacji z wszelkiej maści ustrojstwami. Czy można sobie wyobrazić działania którejkolwiek z maszyn, bez guzików? Można, tylko po co? Zatem poniżej przedstawię jak wygląda podpięcie i obsługa przycisku.
Podłączenie
Do aktualnego ćwiczenia będzie potrzebne:
- Mikrokontoller
- Dioda LED
- Rezystor 220 omów
- Przycisk
- Kabelki/zworki
- Płytka stykowa
W moim przykładzie chcę podpiąć przycisk podpiąć pod PIN D3(0), a diodę pod D2(4). Przykład na zdjęciach:
Kod
Poniższy fragment aplikacji dzieli się na dwa kluczowe segmenty: setup oraz loop. W setupie ustawiam w jakim trybie poszczególne piny powinny pracować, oraz upewniam się, że dioda na jest wyłączona.
Następnie czytam stan guzika sprawdzam, czy nastąpiła zmiana ze stanu LOW na HIGH. Jeżeli tak to znaczy, że przycisk został zwolniony i chcę zminić stan diody.
#include
#define LED 04
#define BUTTON_TOP 0
bool previousButtonState;
bool ledState = LOW;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BUTTON_TOP, INPUT);
digitalWrite(LED, ledState);
}
void loop()
{
bool buttonState = digitalRead(BUTTON_TOP);
if(previousButtonState == LOW && buttonState == HIGH)
{
ledState = !ledState;
digitalWrite(LED, ledState);
}
previousButtonState = buttonState;
}
Bouncing
Na pierwszy rzut oka kod wydaje się być w porządku. Jednak ma on wadę, a mianowicie brakuje mu zabezpieczenia przed bouncingiem. Co to jest bouncing i jak się go pozbyć. Już wkrótce.
0 Komentarzy