Go Down

Topic: botones (Read 1 time) previous topic - next topic

tahakora

¡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

curro92

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.

Sergegsx

pon cualquier codigo que hayas creado, y veremos si va por el buen camino ;)
* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

SrDonGato

#3
Mar 25, 2011, 01:40 pm Last Edit: Mar 25, 2011, 03:31 pm by SrDonGato Reason: 1
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

Code: [Select]

// 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

Code: [Select]

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


y luego la forma en que la utilizo ...

Code: [Select]

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

Go Up