estoy haciendo un proyecto y en resumen el problema lo tengo en la parte del codigo que hace que al pulsar un boton, cambie una variable y en la pantalla se vea un texto de Si o No
el problema me surge en que cuando aprieto los botones y se deberia cumplir la condici贸 high del boton MasP o MenosP
dentro del bucle do while, no hace nada. O la del boton EnterP para salir del bucle tampoco
en resumen que no actualiza la condici贸n al repetir el bucle, por mucho que ponga a high o low cualquiera de los tres botones no cambia nada.
los botones estan como digitalread y asignados a los puertos 2, 4 y 5 de arduino uno por si influye con resitencias de 4,3 pullup y el lcd con i2c. He medido con multimetro y lanza realmente 0 o 1 segun pulse o no el boton
Deberias postear el codigo completo ,pues segun esto:
if(( MasP == HIGH || MenosP == HIGH )&&(temporizador == 0)) {
he de suponer que ya has hecho la lectura de la entrada con digitalRead() y le has asignado el valor a las variables MasP y MenosP o bien lo estas haciendo mal.... Tambien comentar que las entradas con resistencia pullup estan normalmente en alto o HIGH y en bajo o LOW cuando se pulsa el boton (conectado a gnd)
jose:
Deberias postear el codigo completo ,pues segun esto:
if(( MasP == HIGH || MenosP == HIGH )&&(temporizador == 0)) {
he de suponer que ya has hecho la lectura de la entrada con digitalRead() y le has asignado el valor a las variables MasP y MenosP o bien lo estas haciendo mal.... Tambien comentar que las entradas con resistencia pullup estan normalmente en alto o HIGH y en bajo o LOW cuando se pulsa el boton (conectado a gnd)
lo siento los botones en pulldown
si, postear el codigo aqui es complicado porque forma parte de un programa bastante grande con paginas
pero vamos que la parte que no funciona es esa y no se porque cuando esta en el dowhile como que no lee los botones
Como defino pines y donde se va a guardar el estado del boton
const int Menu = 8;
const int Mas = 4;
const int Menos = 5;
const int Enter = 2;
const int Progr = 7;
const int Salir = 6;
//////////////////////////////////////////////////
int MenuP=0;
int MasP=0;
int MenosP=0;
int EnterP=0;
int ProgrP=0;
int SalirP=0;
Los bucle while son peligrosos....lo que seguramente te esta pasando es que la unica condicion que te permite salir del bucle es que opcMenu valga -1 ,eso solo se cumple cuando EnterP es igual a HIGH ,pero la lectura de su estado y la asignacion de su valor a la variable la hiciste fuera de bucle y alomejor en ese momento no tenias pulsado el boton de enter y su valor es LOW......asi que por mas que pulses Enter no vas a salir del bucle.
Hola, espero llegar a tiempo.
No estoy muy seguro ya que soy nuevo en esto.
Pero en un proyecto que estoy haciendo tuve el problema que si separaba las variables con punto y coma ";" solo me escrib铆a la primera variable y no en la segunda.
La soluci贸n que encontr茅 es usar coma "," para separar las variables y de esa manera me funciono.
jose:
Los bucle while son peligrosos....lo que seguramente te esta pasando es que la unica condicion que te permite salir del bucle es que opcMenu valga -1 ,eso solo se cumple cuando EnterP es igual a HIGH ,pero la lectura de su estado y la asignacion de su valor a la variable la hiciste fuera de bucle y alomejor en ese momento no tenias pulsado el boton de enter y su valor es LOW......asi que por mas que pulses Enter no vas a salir del bucle.
wow seguro es esto lo que me pasa, voy a darle vueltas al tema de hacer un men煤 porque esa forma es poco efectiva veo