botones

¡Hola!

He conectado un LCD de 20x4, tres botones con las ATMEGA1280 Arduino.

1.boton cuando se pulsa, el cursor se mueva hacia arriba y seleccione la línea
2.boton cuando se pulsa, el cursor se mueva hacia abajo y seleccione la línea
3. Cuándo se pulsa el 3.boton la cadena contenida en la línea seleccionada como una función ke le llama y ejecute.
Existe una función para eso o tengo que aplicarla de nuevo?

De adelantado les doy las gracias y espero sus comentarios.

Saludos

Hola
yo creo que tendrás que hacer dos cosas cuando se pulse el 3. botón: selecionar la 3ª línea, y llamar a una función que haga algo. No creo que la línea selecionada pueda llamar a una función.

pon cualquier codigo que hayas creado, y veremos si va por el buen camino :wink:

yo tengo una función que me ha funcionado bien en menus del lcd, la funcion devuelve el boton que se ha pulsado. lo tengo hecho tan solo con 4 botones pero se puede hacer con más o con menos. Espero que te ayude

// la funcion devuelve el boton que se ha pulsado 
int botonpulsado()

{
int var=0;
int buttonState1;
int buttonState2;
int buttonState3;
int buttonState4;

  buttonState1 = digitalRead(boton1);
  delay(100);
  while (buttonState1 == HIGH) { 
    var=1;
buttonState1 = digitalRead(boton1);
    delay(100);
  }
  buttonState2 = digitalRead(boton2);
    while (buttonState2 == HIGH) { 
    var=2;
    buttonState1 = digitalRead(boton2);
    delay(100);
  }
  buttonState3 = digitalRead(boton3);
    while (buttonState3 == HIGH) { 
    var=3;
    buttonState1 = digitalRead(boton3);
    delay(100);
  }
  buttonState4 = digitalRead(boton4);
    while (buttonState4 == HIGH) { 
    var=4;
    buttonState1 = digitalRead(boton4);
    delay(100);
}

return var;

}

en la declaracion de variables al principio del programa pongo los pines que voy a utilizar como entradas de los botones

int boton1 = 10;
int boton2 = 11;
int boton3 = 12;
int boton4 = 13;

y luego la forma en que la utilizo ...

switch (botonpulsado()) {
    case 1:
        i//aqui pones lo que quieres que haga en caso de pulsar 1
        delay(100);
      break;
    case 2:
        //aqui pones lo que quieres que haga en caso de pulsar 2
        delay(100);
        break;
    case 3:
        //aqui pones lo que quieres que haga en caso de pulsar 3
        delay(100);
        break;
    case 4:
        //aqui pones lo que quieres que haga en caso de pulsar 4
        delay(100);
      break; 
   //default: 
      // si nada coincide, ejecuta el "default"
      // el "default" es opcional
  }

saludos