I agree with Robert contact bounce and such can really confuse an interrupt based solution ,unless you have some experience behind you. slow changing inputs can easily be read (and debounced) by using polling style solutions