[Tutor] Python GPIO Code Help Needed

Bill Bright wcb_rlb at bellsouth.net
Sun Oct 26 02:05:22 CET 2014


I have been working on a piece of code that I got from another tutorial. The code polls the GPIO pins on a Raspberry Pi. When it detects a switch being flipped, it plays a corresponding audio file. My problem is, if the switch remains flipped, the audio repeats again and again. What I would like to do is when a switch is flipped have the audio play, then have the code pause until the switch is returned to normal (not repeating the audio), and then return to the while loop to poll for the next switch flip. I am apparently not smart enough to figure out the correct code. I really need some help with this and I would appreciate any assistance.

Here is the code I'm working with.

#!/usr/bin/env python
from time import sleep
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
GPIO.setup(24, GPIO.IN)
GPIO.setup(25, GPIO.IN)
while True:
        if ( GPIO.input(23) == False ):
                os.system('mpg321 -g 95 a.mp3')
        if ( GPIO.input(24) == False ):
                os.system('mpg321 -g 95 b.mp3')
        if ( GPIO.input(25)== False ):
                os.system('mpg321 -g 95 c.mp3')
        sleep(1.1);


More information about the Tutor mailing list