GPIO Buttons Raspberry Pi

Raspbery Pi regelt Lautstärke von Pulseaudio  Soundausgabe über Bluetooth mit GPIO

Mein SmaRPt 3 hat ein Webradio . Und das Display hat 3 Buttons, die schon mit GPIO vorbelegt sind.  Die 3 Taster kann man doch für lauter  und leiser benutzen. (3.2" Touchdisplay von Joy-IT)

Das Python-Script startet automatisch aus /home/pi/.lxsession/LXDE-pi/autostart

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time
import os

# Zählweise der Pins festlegen
GPIO.setmode(GPIO.BCM)
# Pin 12 (GPIO 18) als Eingang festlegen
GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Pin 16 (GPIO 23) als Eingang festlegen
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Pin 18 (GPIO 24) als Eingang festlegen
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)

# Ereignis-Prozedur für Eingang HIGH
def lolo1(channel):
  os.system("pactl -- set-sink-volume 1 +10%")
#  if True: exit()	
def lolo2(channel):
  os.system("pactl -- set-sink-volume 1 -10%")
#   if True: exit()
def lolo3(channel):
  os.system("pactl -- set-sink-volume 1 0%")
#   if True: exit()
 
# Ereignis deklarieren
 #lauter
GPIO.add_event_detect(18, GPIO.RISING, callback = lolo1, bouncetime = 200)
 #still
GPIO.add_event_detect(24, GPIO.RISING, callback = lolo2, bouncetime = 200)
 #leiser
GPIO.add_event_detect(23, GPIO.RISING, callback = lolo3, bouncetime = 200)

 # Eigentlicher Programmablauf
while 1:
 time.sleep(2.1)

GPIO.cleanup()
  • Kenntnisse zum Verstehen des Artikels: LINUX