hola pepepotamo como metes los numeros yo estaba haciendolo que sumara con pulsacion de arriba y abajo pero me estoy planteando hacer un panel de numeros.
Como lo hago bastante a menudo, he escrito esta función:
int CambiarValor (int Valor,int Min,int Max,int Digitos)
{
RefrescarValor:
MoverLCD (8,2);
if ((Valor < 100)&&(Digitos=3)) {Serial.print("0");}
if (Valor < 10) {Serial.print("0");}
Serial.print(Valor,DEC); Serial.print (7,BYTE);
int Salir=0;
do
{
PULSADO_BOTON_DER = digitalRead(BotonDER);
PULSADO_BOTON_ROJO = digitalRead(BotonROJO);
PULSADO_BOTON_IZQ = digitalRead(BotonIZQ);
if (PULSADO_BOTON_ROJO == HIGH) { Serial.print(4,BYTE);delay (200); Salir++; }//salimos
if (PULSADO_BOTON_DER == HIGH) {delay (200);Valor++; if (Valor==Max+1) {Valor=Min;} goto RefrescarValor;}
if (PULSADO_BOTON_IZQ == HIGH) {delay (200);Valor--; if (Valor==Min-1) {Valor=Max;} goto RefrescarValor;}
}while (Salir==0);//del do while
return Valor;
}
La llamo cuando quiero editar un valor numérico, le paso el valor inicial, el mínimo y el máximo así como el número de dígitos, para que complete con ceros, el número sale siempre en la posición 8,2 (columna 9, fila 3) que controlo con una función MoverLCD que no pongo porque sólo serviría para LCD's como la mía, sustitúyelo por la que tú uses.
Que me perdonen los puristas de C por utilizar GOTO, pero... eso es lo que hay jejejeje, pregunta cualquier duda