Thanks to everyone for the help. The code below seems to work. My question is
why does oldstates need to multiplied by 32? Does this mean that the code will
only work for 32 switches before I have to reset the Pi?
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