Agreed; nice job. Note that, on the Arduino Nano and Uno, pins 2 and 3 are the only two pins capable of processing external interrupts. All other pins can process software or timer interrupts generated by the processor itself. If you're designing a Nano/Uno-centric project, it usually a good idea to leave pins 2 and 3 empty just in case you want to add an external interrupt later. Also, pins 0 and 1 are used for the Serial object that communicates with the USB link so, while they can be used as GPIO in a pinch, try to leave them free if you can.
Jack, W8TEE
On Wednesday, April 24, 2019, 8:08:48 AM EDT, Tom, wb6b <wb6b@...> wrote:
A great writeup. You have raised the bar for documentation for the rest of to follow.