Thanks to all for the help. The code below seems to work. My question is why 
does oldstates need to be multiplied by 32? Does this means the code will only 
read 32 switch changes? That would be a problem.

Code:
#!/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)
oldstates=[True]*32

def changed(channel):
        newstate = GPIO.input(channel)
        change = oldstates[channel] and not newstate
        oldstates[channel] = newstate
        return change

while True:
        if changed(23):
                os.system('mpg321 -g 95 a.mp3')
        if changed(24):
                os.system('mpg321 -g 95 b.mp3')
        if changed(25):
                os.system('mpg321 -g 95 c.mp3')
        sleep(1.1);
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to