Tabla ASCII

Este ejemplo demuestra las funciones avanzadas de impresión serie mediante la generación en el monitor serie del software de Arduino (IDE) de una tabla de caracteres y sus valores ASCII en decimal, hexadecimal, octal y binario. Para más información sobre ASCII, consulte asciitable.com

Hardware requerido

1 Placa Arduino o Genuino

Circuito


Ninguno. Pero la placa ha de estar conectada al ordenador a través del puerto serie o USB.

Código

El programa espera una conexión serie en setup () y luego imprime línea por línea la tabla ASCII hasta el último carácter imprimible. Cuando esto se logra, se entra en un bucle sin fin en una estructura de tiempo y no pasa nada más. Cerrando y abriendo la ventana del monitor serie del software de Arduino (IDE) debe restablecer la placa y reiniciar el programa.
/*
  II Tabla ASC

 Imprime valores de bytes en todos los formatos posibles:
* como valores binarios en bruto
* como ASCII codificado en decimal, hexadecimal, octal y valores binarios.
Para más información sobre ASCII, consulte http://www.asciitable.com y http://en.wikipedia.org/wiki/ASCII
Circuito: No se requiere hardware externo .
creado 2006 por Nicholas Zambetti
modificación el 9 Abril de 2012
por Tom Igoe
Este código es de dominio público.
<Http://www.zambetti.com>*
// *



void setup() {
  // inicializa el puerto serie y espera hasta que se abra:
  Serial.begin(9600);
  while (!Serial) {
    ; // espera a que el puerto serie este conectado. Solo necesario para puerto USB nativo
  }

  // imprime el titulo y un salto de linea
  Serial.println("Tabla ASCII  ~ Mapa de Caracteres");
}

// El primer caracter ASCII imprimible es '!' el número 33:
int thisByte = 33;
// También se puede escribir caracteres ASCII entre comillas simples.
// por ejemplo. '!' es lo mismo que 33, por lo que también podría utilizar esto:
:// int thisByte = ''I";


void loop() {
 // Imprime su valor inalterado, por ejemplo,l la versión binaria en bruto del
// Byte. El monitor serie interpreta todos los bytes como
// ASCII, por lo que 33, el primer número, se mostrará como "!"

  Serial.write(thisByte);

  Serial.print(", dec: ");
 // imprime un valor de cadena como un ASCII codificado decimal en (base 10).
// Decimal es el formato predeterminado para Serial.print () y Serial.println (),
// Por lo que no se necesita ningún modificador:

  Serial.print(thisByte);
 // Pero se puede declarar el modificador de decimales si lo desea.
// Esto también funciona si se elimina el comentario:

// Serial.print (thisByte, DEC);


  Serial.print(", hex: ");
  // imprime el valor como una cadena hexadecimal (base 16):
  Serial.print(thisByte, HEX);

  Serial.print(", oct: ");
  // imprime el valor como una cadena en octal (base 8);
  Serial.print(thisByte, OCT);

  Serial.print(", bin: ");
  // imprime el valor como una cadena en binario (base 2)
  // tambien imprime un dinal de linea:
  Serial.println(thisByte, BIN);

  // si el último carácter impreso es '~' ó 126, se detiene:
  if (thisByte == 126) {    // también se puede utilizar if (thisByte == '~') {
    // Este bucle se ejecuta permanentemente y no hace nada
    while (true) {
      continue;
    }
  }
  // va al siguiente caracter
  thisByte++;
}

No hay comentarios:

Publicar un comentario