On 26/10/14 22:42, Bill Bright wrote:
Thanks to all for the help. The code below seems to work. My question is
why does oldstates need to be multiplied by 32?

Its creating 32 instances of True. So you can cater for up to 32 different switch positions.

will only read 32 switch changes? That would be a problem.

No it can manage up to 32 different switches. Each switch can toggle between True/False as often as it likes but oldstates will store the previous state for each switch.

oldstates=[True]*32

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

Here is where it compares the old and new state of the given switch/channel

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);

HTH

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to