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