E' stato detto e ripetuto tantissime volte su questo forum ... ![]()
... le ISR debbono essere le più brevi possibili e NON DEVONO ASSOLUTAMNETE né usare la porta seriale né l'istruzione delay().
Quindi, tanto per cominciare, nella ISR salva i valori che ti servono, alza una "flag" e nel loop() se tale flag è alzata stampi quello che vuoi e la resetti, ma NON usare la seriale nella ISR.
Dopo di che ... guarda il tuo secondo blocco di codice ... è pieno di "porcherie (BBcode)" dati dalla formattazione (colori) che ti sei portato dietro ... cortesemente correggi, grazie ![]()
Guglielmo