Máquina de Boxeo con Arduino

Hola, muy buenas.

Me encuentro haciendo un trabajo de Tecnología Electrónica en la UCLM. Para este trabajo, he elegido la construccion de una máquina de boxeo con arduino. Tengo una matriz 64x16 LED y una placa Arduino UNO R3.

Para hacer funcionar el programa, he usado un pulsador, el cual mientras no esta pulsado, esta constantemente mostrando la palabra Boxer! Esto lo he conseguido usando el programa shortened_display, que básicamente lo que hace es mostrar caracteres utilizando una librería y comparando.

Todo lo que quiero hacer funciona correctamente, menos el mostrar por esta matriz un número aleatorio que genera el programa (a modo de puntuación inventada).

La secuencia que utilizo para mostrar caracteres es la siguiente:

//Insert message here ("message ")
const char message[] = "TU PUNTUACION ES ";
// display next character of message
drawChar(56,16,message[count%(sizeof(message)-1)],0,false);
count = (count + 1);
// move the text 7 pixels (not 8 because it looks better) to the left
for (byte i=0; i<4; i++) {
delay(100);
moveLeft(2,1,32);
}

Con esto consigo que la pantalla muestre los caracteres que escribo entre comillas, pero no soy capaz de hacer mostrar el contenido de la variable aleatoria que he creado. El número aleatorio lo muestra correctamente, ya que lo consigo ver vía serial, pero no soy capaz. El programa esta acabado a falta de eso solamente. He probado a declarar la variable de otra forma pero el compilador da error al compilar.

Todo lo demas del programa funciona correctamente (a la espera de pulir pequeñas cosas). Inclusive he puesto con condicionales que si el número esta entre ciertos valores muestre un mensaje. Todo eso puedo hacerlo, pero es imposible que muestre por esta matríz el número aleatorio que he generado.

Os dejo los programas que estoy utilizando a ver si puede ser de ayuda.

Un Saludo

shortened_boxer.ino (32.6 KB)

shortened_display.ino (17.4 KB)

mira si la funcioón itoa puede servir (Int To Ascii)

Porque no usas sprintf y armas tu cartel completo.
En tu caso sería algo asi.
Requiere que message tenga la capacidad de caracteres para alojar todos los carateres.
char message[30]; // pongo 30 pero tu has la cuenta.

   //Insert message here ("message ")
    char message[30];
    count = (count + 1);
   sprintf(message, "TU PUNTUACION ES  %d", count);
   // ahora tienes armado "TU PUNTUACION ES 23" si count tuviera ese valor
   // puedes hacer que se salga con 0 a izq usando %0d 
   // puedes hacer que tenga un tamaño fijo como 4 lugares hasta 9999 de este modo %04d
   // este último mostraría 0001 ... 0010....0100... hasta 9999 siempre ordenado.

Bueno tu elige