uintXX_t est une façon de spécifier sans ambiguité le nombre d'octets que l'on veut utiliser (uint8_t pour un octet, uint16_t pour deux octets, uint32_t pour 4 octets). Il offre l'avantage d'être portable : un code testé sur un vieux PC (où les entiers sont des (u)int32_t) peut fonctionner , avec des chances raisonnables, sur un arduino(où les entiers sont des (u)int16_t).
Votre code est vraisemblablement moins mauvais comme ça: C'est à VOUS de voir
a) s'il se compile (c'est trivial: il suffit d'appuyer sur un bouton si vous disposez d'un IDE arduino)
b) s'il donne des valeurs vraies ou réalistes (je ne peux pas organiser votre façon de tester)
Si JE pense que le delay ne sert à rien, c'est MON opinion( hors sujet de ce fil et VOUS êtes libre d'être en désaccord.
Je ne peux que vous signaler que delay mange un nombre fou de cycles,
à ne RIEN faire d'utile,
et qu'il existe des façons plus habiles d'interdire un bloc de programme de s'executer pendant xxx millisecondes, sans perte de ressources: un bel exemple est dans
fichiers->exemples->digital->blinkWithoutDelay IIRC.