Painikekytkin on yksinkertainen, mutta tehokas syöttölaite, jota käytetään usein projekteissa, kuten käynnistys- tai pysäyttämisprosesseissa, LEDien hallinnassa tai tapahtumien käynnistämisessä. Tämä opetusohjelma opastaa sinut Pushon -kytkimen kytkemisen läpi Raspberry Pi: lle, johdotuksen asettamisen ja Python -komentosarjan kirjoittamisen painikkeen painikkeiden havaitsemiseksi.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- Painaton kytkin
- Leipälevy- ja hyppyjohdot
- Vastus (10 kΩ vedonlyöntiä varten)
- Python asennettu vadelmapillä
- GPIO -kirjasto Raspberry Pi: n GPIO -nastajen hallitsemiseksi
Vaihe 1: Push -painikkeen johdotus Raspberry Pi
Painikekytkin toimii joko kytkemällä GPIO -nasta korkeaan (3,3 V) tilaan painettaessa tai vetämällä se matalaan (0 V), kun sitä ei paineta. Käytämme vetovastusta varmistaaksemme, että GPIO-nasta lukee matalaa, kun painiketta ei paineta.
Push -painikkeen johdotus
Painaa painiketta | Raspberry Pi GPIO -tappi |
---|---|
Yksi nasta | GPIO17 (nasta 11) |
Muut | Maa (nasta 6) |
Yksi nasta | 10 kΩ vastus maahan |
Tässä on johdotusasetukset:
- Kytke painikkeen yksi pääte GPIO17 (Tappi 11).
- Kytke painikkeen toinen pääte Pohja (Tappi 6).
- Kytke 10 kΩ: n vastus GPIO17 ja Pohja toimia vetävänä vastuksena.
Tämä varmistaa, että kun painiketta painetaan, GPIO17 lukee korkeaa (3,3 V) ja kun sitä ei paineta, vastus vedetään GPIO17: een matalaan (0 V).
Vaihe 2: Ota GPIO -nastat käyttöön pythonissa
-
Päivitä ensin Raspberry Pi: n pakettiluettelo:
sudo apt update sudo apt upgrade -y
-
Asenna vaadittu Python GPIO -kirjasto (jos sitä ei ole vielä asennettu):
sudo apt install python3-rpi.gpio
-
Tuo kirjasto Python -komentosarjaan:
import RPi.GPIO as GPIO import time
Vaihe 3: Python -koodin kirjoittaminen
Kirjoitetaan nyt Python -komentosarja, joka havaitaan, kun painiketta painetaan ja ryhdytään toimiin vastaavasti.
Python -koodiesimerkki
import RPi.GPIO as GPIO
import time
# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM) # Use BCM numbering
button_pin = 17 # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set up pin with pull-down resistor
# Function to detect button press
def button_callback(channel):
print("Button was pressed!")
# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)
try:
print("Press the button...")
while True:
# Keep the program running to wait for button press
time.sleep(0.1)
except KeyboardInterrupt:
print("Program exited")
finally:
GPIO.cleanup() # Clean up GPIO to ensure a clean exit
Koodin selitys:
- GPIO.SETMODE (GPIO.BCM): Asettaa GPIO PIN -sovelluksen BCM (BroadCom) -tilaan.
- GPIO.SETUP (Button_Pin, GPIO.IN, Pull_Up_down = GPIO.PUD_DOWN): Määrittää painikkeen PIN-koodin syöttönä vetävällä vastuksella, mikä tarkoittaa, että se lukee matalaa, kun sitä ei paineta.
-
Gpio.add_event_detect (): GPIO -nastan nouseva reuna (painike paina) ja laukaisee takaisinsoittotoiminnon
button_callback
Kun painiketta painetaan. - aika.Sleep (0,1): Pidä komentosarja käynnissä, jolloin se voi odottaa painiketta.
- Gpio.cleanup (): Puhdistaa GPIO -asetukset, kun skripti on poistettu.
Vaihe 4: Painikkeen testaaminen
-
Suorita python -komentosarja:
python3 button.py
-
Paina painiketta ja tarkkaile viestiä “painiketta painettiin!” terminaalissa.
Vaihe 5: Sovellukset
Tässä on muutamia ideoita Push -painikkeen käytöstä projektissasi:
- Hallitse LED: tä: Vaihda LED -levy päälle ja pois päältä.
- Laukaista tapahtuma: Käynnistä tai lopeta prosessi (esim. Käynnistä moottori, kytke tuuletin päälle tai aloita komentosarja).
- Älykäs ovikello: Lähetä ilmoituksen puhelimellesi painiketta ovikellona.
- Käyttäjän syöttö: Hanki yksinkertainen käyttäjän syöttö projektillesi (kuten "kyllä/ei" -vastaus).
Vianetsintä
-
Painiketta ei havaita:
- Varmista, että painike on langallisesti oikein vetoa alas -vastuksella.
- Tarkista GPIO-nastaasennus koodiin.
-
GPIO -virhe:
- Varmista, että GPIO -kirjasto on asennettu oikein ja että skriptisi PIN -numerot ovat oikein.
-
Painike pomppia:
- Jos huomaat useiden painikkeen painikkeiden havaitsemisen, voit lisätä dieto -ajan (
bouncetime=300
komentosarjassa) väärien havaintojen välttämiseksi.
- Jos huomaat useiden painikkeen painikkeiden havaitsemisen, voit lisätä dieto -ajan (
Johtopäätös
Raspberry Pi: n painikevaihdon käyttäminen on helppo tapa lisätä syöttötoimintoja projekteihisi. Tämä yksinkertainen asennus voi olla perusta perustana monille mielenkiintoisille sovelluksille riippumatta siitä, onko kyseessä tapahtumien kytkemistä tai vuorovaikutusta muiden laitteistojen kanssa. Kokeile erilaisia GPIO -nastat ja debounce -asetukset tarpeisiisi!