I've been helping some people come up to speed on arduino, they are all working on projects that need to take in controls form buttons an keypads,

and they have all come up with different libs from the arduino sites. I did not realise there were so many different libs that are designed to cope with buttons.

Suggestion , I'd guess that a large majority of arduino projects take in a sensor or two, that could be a button class,

I don't suppose that we could have one standard library to handle buttons effectively ? how about one that can handle all sorts of button sensors, key pads scanned and none scanned.

As I say, i know there are different libs for all these, I think my students have found every combination possible, which in some ways is good, it just makes using and debugging much harder than it should be for a simple function like reading a switch.

I've been helping some people come up to speed on arduino, they are all working on projects that need to take in controls form buttons an keypads,

and they have all come up with different libs from the arduino sites. I did not realise there were so many different libs that are designed to cope with buttons.

I recently noticed there was a kickstarter project (now funded) that was trying to make it simpler for non-programmers to create microcontroller projects. I don't know if it would be useful to you, or not. http://www.modk.it/.

Suggestion , I'd guess that a large majority of arduino projects take in a sensor or two, that could be a button class,

I don't suppose that we could have one standard library to handle buttons effectively ? how about one that can handle all sorts of button sensors, key pads scanned and none scanned.

As I say, i know there are different libs for all these, I think my students have found every combination possible, which in some ways is good, it just makes using and debugging much harder than it should be for a simple function like reading a switch.

Yes, I came to the same conclusion. I recently implemented my own button class library. It has classes to handle pull down digital buttons, pull up digital buttons, analog sensors, nop buttons (which are useful to disable parts of the code when you are switching things around on the breadboard), and blink buttons which cycle between on/off at given times.

I have a few improvements I want to do, such as add read multiple buttons with a combined debounce timeout, add an elapsed function that returns how many milliseconds it has been since the button changed state, and add support for my LCD shield that has several buttons multiplexed on a single analog input.