Welkom op Codingkids

Programmeren voor kinderen

GPIO button input met Python

Je hebt nodig: een breadboard, male to female jumper wires, en een button.

breadboard

Breadboard

kabeltjes

Male to Female jumper wires

button

Drukknop

Button aansluiten

We gaan pin 9 (Ground) en pin 3 (GPIO2) gebruiken om de button aan te sluiten. Kijk nog eens goed naar onderstaande afbeelding voor de pinnummering:



Een kabeltje wordt aangesloten op pin 9 Ground (aarde). Een kabeltje wordt aangesloten op GPIO2. In het voorbeeld hieronder kun je zien hoe de button op het Breadboard zit en hoe de kabeltjes zijn aangesloten.



Python programma

Nu gaan we een Python programma maken wat iets gaat doen als de knop wordt ingedrukt. In dit voorbeeld zal er een tekst in de Terminal te lezen zijn met: "Je drukt op me!" Open de Terminal en maak een nieuw bestand:

sudo nano button.py

Typ daarna de volgende regels Python code over en bewaar je programma door op CTRL X te drukken en dan op Y:

from gpiozero import Button button = Button(2) button.wait_for_press() print('Je drukt me!')



Voer het programma uit in je Terminal door deze regel in te typen:

sudo python button.py

Druk op je button en kijk in de Terminal wat er gebeurt.



Led aanzetten met button

We weten nu dat je programma werkt en we kunnen verdergaan om een Led aan te zetten met deze button. We gebruiken daarvoor de eerste les: Knipper LED met Python samen met deze button les. Je breadboard ziet er dan uit zoals hieronder:

Daarna moeten we een Python programma schrijven waarmee de Led aan gaat als de button wordt ingedrukt. Typ in de Terminal:

sudo nano buttonled.py


Schrijf onderstaande Python programma over en sla het op met Ctrl X en dan Y.

from gpiozero import LED, Button from time import sleep led = LED(4) button = Button(2) button.wait_for_press() led.on() sleep(3) led.off()

Start het programma met de volgende regel in de Terminal:

sudo python buttonled.py

Duk op de button en als het goed is gaat je Led 3 seconden aan en daarna uit.



Een schakelaar maken

Hoe kunnen we nu de Led aanzetten met één druk op de knop, en de Led uit met één druk op de knop? Daarvoor gaan we gebruik maken van de functie led.toggle()

De led.toggle() functie schakelt een Led van aan naar uit, en van uit naar aan. Deze functie zetten we in een loop met daarin de functie button.wait_for_press(). Maak een nieuw Python programma en noem het bijvoorbeeld aanuit.py

sudo nano aanuit.py

Schrijf onderstaande Python programma over en sla het op met Ctrl X en dan Y.

from gpiozero import LED, Button from time import sleep led = LED(4) button = Button(2) while True: button.wait_for_press() led.toggle()

Test je programma uit:

sudo python aanuit.py

Er zijn nog twee handige functies: button.when_pressed = led.on en button.when_released = led.off. Probeer onderstaand programma maar eens: (je weet intussen hoe je met nano een programma opent en hoe je met python een programma uitvoert.)

from gpiozero import LED, Button from signal import pause led = LED(4) button = Button(2) button.when_pressed = led.on button.when_released = led.off pause()







Share on Facebook Share on Google+ Share on LinkedIn Share on Twitter





Ondersteun deze website!