Raspberry Pi Funktion auslösen wenn Button gedrückt wurde
Verfasst: Donnerstag 24. Juli 2025, 16:14
Liebe Forumgemeinde,
Ich bin noch Python Anfänger und gewillt einiges dazu zu lernen. Aber mich beschäftigt ein kleines Problem. Ich nutze einen Raspberry Pi um eine Tonfrequenz über die Konsole zu erzeugen:
Diese Ton (Beispiel: 67 Hz) soll über die Soundkarte ausgegeben werden. Das funktioniert soweit ganz gut. Nun möchte ich anhand von verschiedenen Buttons die Töne erzeugen. Wenn ich beispielsweise den Button 1 betätige, soll der Ton 67 Hz ausgegeben werden, bis der Button nicht mehr gedrückt wurde.
Da ich den Ton mit Hilfe von:
erzeuge, stehe ich vor der Hürde das er diesen erst aufhört zu spielen, wenn ich mittels Konsole STRG + C drücke, da er diesen Prozess bis zur Beendigung abwartet. Nun möchte ich aber, wenn ich den Button los lasse, da er diesen Prozess beendet.
Ich hatte folgenden Ansatz:
Das funktioniert leider so nicht. Hat jemand einen Tipp oder kann mir evtl sagen, ob es mit Python an sich möglich ist, einen Hertz Ton zu erzeugen?
Ich bin noch Python Anfänger und gewillt einiges dazu zu lernen. Aber mich beschäftigt ein kleines Problem. Ich nutze einen Raspberry Pi um eine Tonfrequenz über die Konsole zu erzeugen:
Code: Alles auswählen
play -n -c1 synth 0 sine 67
Da ich den Ton mit Hilfe von:
Code: Alles auswählen
os.system(f"play -n -c1 synth 0 sine {Hz}&")
Ich hatte folgenden Ansatz:
Code: Alles auswählen
import time
import os, subprocess
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
if GPIO.input(4) == False:
os.system(f"play -n -c1 synth 0 sine {Hz}")
else:
os.system("pkill play")