Please excuse my use of English. I just wanted to thank you for your work on this project. I wanted to construct a simple f/stop enlarger timer and ran across this site. The set of features is perfect for my needs.
I wanted to use a 16x2 LCD display and found ciromattia's Github version of the code. His latest version seemed to lack some of the features of the most recent code posted here (with channels), so I used the most recent code that you posted a few years ago.
I made a few small changes. I needed to add some conditional compilation statements for the channel additions and the LED brightness control. I also fixed some LCD formatting issues. I changed some of the inputs to use internal pullup resistors. I also added a push button toggle for the mode, rather than the toggle switch.
One final change was to add a rounding function to the f/stop step increase/decrease. As pointed out, without this, stepping up or down from a set time, then returning to that time resulted in an error in the original time. Even with the rounding function, there is still a slight error due to the precision of the Arduino, but it is much better.
Finally, I transferred the compiled code to a bare ATMega 328p chip and use an external crystal. This resulted in a much reduced parts count. I will place a red filter over the blue back-lit LCD for safety in the darkroom.
Thanks for making the code available.
Best regards,
Don
