Introducción

Estuve trabajando en un proyecto en donde se tenían que encender algunos leds usando un registro de corrimiento 74HC595, y para depurar necesitaba imprimir el byte completo (incluyendo ceros a la derecha).

Como no encontré una manera correcta de hacerlo (aunque seguramente existe) hice una propia.

Función

Para imprimir una variable de tipo byte, bit por bit, podemos usar la siguiente función:

void imprimirByte(byte b){
  for(byte x = 0; x < 8; x++) Serial.print(bitRead(b, x));
}

Lo que hace es imprimir en el monitor serial el byte completo. Como argumento recibe un byte y no regresa nada. Para llamar al procedimiento, podemos hacerlo así:

byte miByte = B00110011;
imprimirByte(miByte);

La salida sería: _00110011_

Alternativa

También podemos simplemente imprimirlo con Serial.println() y pasarle como segundo argumento el formato BIN. Es decir, algo así:

Serial.println(miByte, BIN);

Referencias

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto