Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Kiedy już przycisk działa, często chcesz wykonać jakąś akcję w oparciu o to, ile razy przycisk został naciśnięty. Aby to zrobić, musisz wiedzieć, kiedy przycisk zmienia stan z wyłączonego na włączony i policzyć, ile razy ta zmiana stanu ma miejsce. Nazywa się to wykrywaniem zmiany stanu lub wykrywaniem krawędzi. W tym samouczku dowiadujemy się, jak sprawdzić zmianę stanu, wysyłamy wiadomość do Monitora szeregowego z odpowiednią informacją i liczymy cztery zmiany stanu, aby włączyć i wyłączyć diodę LED.
Krok 1: Wymagane komponenty:
1. Arduino UNO
2. Deska do krojenia chleba
3. Przycisk
4. Rezystor
5. Przewody połączeniowe
Krok 2: Schemat obwodu:
Podłącz trzy przewody do płytki. Pierwszy biegnie od jednej nogi przycisku przez rezystor pull-down (tutaj 10k omów) do masy. Drugi biegnie od odpowiedniej nogi przycisku do zasilania 5 woltów. Trzeci łączy się z cyfrowym pinem I/O (tutaj pin 2), który odczytuje stan przycisku.
Gdy przycisk jest rozwarty (niewciśnięty) nie ma połączenia między dwoma nogami przycisku, więc pin jest podłączony do masy (poprzez rezystor pull-down) i odczytujemy LOW. Gdy przycisk jest zwarty (wciśnięty), tworzy połączenie między dwiema nóżkami, podłączając pin do napięcia, dzięki czemu odczytujemy HIGH. (Pin jest nadal podłączony do masy, ale rezystor opiera się przepływowi prądu, więc ścieżka najmniejszego oporu jest do +5V.) Jeśli odłączysz cyfrowy pin I/O od wszystkiego, dioda LED może nieregularnie migać. Dzieje się tak dlatego, że wejście jest „pływające” – to znaczy nie jest podłączone ani do napięcia, ani do masy. Zwróci mniej więcej losowo albo WYSOKI, albo NISKI. Dlatego w obwodzie potrzebny jest rezystor pull-down.
Krok 3: Kod:
Aby uzyskać więcej ciekawych projektów, łącz się ze mną na: Youtube:
Strona na Facebooku:
Instagram:
int przycisk=2;
int a, i=0; void setup() { Serial.begin(9600); pinMode(przycisk, WEJŚCIE); } void loop() { a = digitalRead(przycisk); jeśli (a==1) { i=i+1; Serial.print(" Licznik ="); Serial.println(i); } inaczej { i=0; } }