I guess it's time to share

In all honestly I may have got carried away with the OO layers as it was new to me. I had only tackled classes for the first time during this project. So a library like two buttons was done partly as an experiment and partly to get another piece of working code out of the way. I actually noticed virtually no change in memory usage either way. I had it mostly working before I started using the OO approach and for the most part OO actually saved me a bunch of program space. That could just be that the code was more efficient. It could be apples to oranges. RAM is a non-issue now. It runs very stable and has been run continuously for many days for testing.

I did find while playing around that having stuff in a library or in the main sketch had no effect on program space as long as the code was the same.

The button reading may seem odd as it checks the other value each time. I had trouble with it reliably detecting both buttons being pushed otherwise. I should play with the debouncing. I'm not sure about it either, it looks funny. It works well though.

It's become obvious to me that the next version of this will be on a mega. We want to add a few more sensors and detectors.

Thanks for having a look. I really appreciate it.