Header image Linuxblog aus Worms

Neues bei Mastodon

Aktuelles zu Linux und Technik aus Worms gibts bei Mastodon

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()

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv