Display Countdown 30 secondi

Lascio la parte elettronica ad altri.

Vedo una cosa, però. Perché non hai collegato i pin dell'ULN tutti ad una stessa porta del micro?
Parti da PD2 e termini a PB1. Se iniziavi da PD0 e terminavi a PD7, potevi comandare istantaneamente l'ULN semplicemente scrivendo nel registro PORTD la maschera in forma binaria, in modo che potevi comandare le singole uscite con 0 ed 1 direttamente.