ich versuch seit ner Weile mit einem Input vom GPIO einen Ton abzuspielen. Mit der Tastatur geht es, aber aus irgendwelchen Gründen bekomme ich keinen Input vom GPIO. Ich habe noch nicht viel Erfahrung mit Python deswegen könnte es sein, dass ich etw. offensichtliches übersehen habe

Den Input habe ich versucht zustande zu kriegen indem ich ein Kabel an ein 3,3V Pin und an Pin #5 gehalten habe.
Code: Alles auswählen
import math
import pyaudio
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(5, GPIO.IN)
PyAudio = pyaudio.PyAudio
while 1:
x=input();
if GPIO.input(5)==True:
BITRATE = 8000
FREQUENCY = 440
LENGTH = 0.25
NUMBEROFFRAMES = int(BITRATE * LENGTH)
RESTFRAMES = NUMBEROFFRAMES % BITRATE
WAVEDATA = ''
for x in xrange(NUMBEROFFRAMES):
WAVEDATA = WAVEDATA+chr(int(math.sin(x/((BITRATE/FREQUENCY)/math.pi))*127+128))
for x in xrange(RESTFRAMES):
WAVEDATA = WAVEDATA+chr(128)
p = PyAudio()
stream = p.open(format = p.get_format_from_width(1),
channels = 1,
rate = BITRATE,
output = True)
stream.write(WAVEDATA)
if x == 2:
BITRATE = 8000
FREQUENCY = 493.883
LENGTH = 0.25
NUMBEROFFRAMES = int(BITRATE * LENGTH)
RESTFRAMES = NUMBEROFFRAMES % BITRATE
WAVEDATA = ''
for x in xrange(NUMBEROFFRAMES):
WAVEDATA = WAVEDATA+chr(int(math.sin(x/((BITRATE/FREQUENCY)/math.pi))*127+128))
for x in xrange(RESTFRAMES):
WAVEDATA = WAVEDATA+chr(128)
p = PyAudio()
stream = p.open(format = p.get_format_from_width(1),
channels = 1,
rate = BITRATE,
output = True)
stream.write(WAVEDATA)
stream.stop_stream()
stream.close()
continue
Vielen Dank schonmal.