kleines Problem im Programm?

wieso nimmst du für eine Variable, die im moment von 0-56 in ganzzahlenschritten benutzt wird einen double-type? int tuts hier locker.

weiterhin ist mir in deinem 2. Code aufgefallen, dass die loop schleife in maximalgeschindigkeit ein digitalRead ausführt und andererseits die Interrupt-Routine zum Datenauslesen arbeitet (welche dann deinen loop unterbricht). für eine methode solltest du dich entscheiden, aber nicht mischen. klemm doch die 2 Taster an INT0 und INT1 und bau dir dafür auch Interrupts. dann kannst du den loop komplett leer lassen und hast eine saubere Lösung

cu markus