Go Down

Topic: Contar Pulsos de un botón para 3 Led.[RESUELTO] (Read 3138 times) previous topic - next topic

Heke

No te esfuerces Pascual, es imposible descifrar lo que este hombre quiere decir...

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

PascuaL

Pues sí, es una pérdida de tiempo.

WaSoM

Si yo puedo tener trastorno o todo lo que ustedes, pero la diferencia es que yo se programar y ustedes no llega ni a un "hola mundo" aun que yo no sepa escribir en español, se dictarle a la maquina pequeño algún día tendrá lógica.

Luis_AM3C

Hola,

       Lo que le falto a tu codigo es que al presionar el boton, esperara por mas pulsos por un lapso de tiempo, una vez completado ese tiempo o numero de iteraciones sin cambio es que segun el valor del contador encienda el led adecuado y apague los otros.

Saludos.

WaSoM

#19
Jul 03, 2013, 09:02 pm Last Edit: Jul 03, 2013, 10:11 pm by WaSoM Reason: 1
Hola a todos ya que mucho me preguntaron como lo resolví aquí se los comparto:

Como dice Luis solo necesitamos esperar un tiempo, algo así pensé yo no estoy muy familiarizado con el lenguaje pero esta fue mi manera de resolverla, seguro otros podrán compartir otros métodos, que viva la información en la red.

Code: [Select]



int botomStatus = 0;
int botomAnterrior = 0;
int status = 0;
int x=0;
int concurrencia = 0;
boolean compareTo = false;
void setup(){
 pinMode(1, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(6, OUTPUT);
 
 pinMode(2, INPUT);

}
void loop(){


           
               while(true){
                   botomStatus = digitalRead(2);
                     
                     
                      if (botomStatus == HIGH && botomAnterrior == LOW) {
                             status = status + 1;                            //Condicion que verifica si el usuario a presionado el botom
                             delay(10);
                           
                       }
                       
                   x=concurrencia%2;
                         
                         
                      if(status != 0 && x==0 && concurrencia==80){  
                           
                           compareTo=true;                                 //Condicion que da luz verde a la condicion de las variables
                           
                           break;
                 
                         }
                 
                      if(status != 0){
                        delay(20);
                         concurrencia++;                                   //concurrencia o concatenacion de las veces que paso, sirve para dar unos 10 seg depues de presinar
                       }                                                   //una vez el botom para verificar si se volvera a presionar o no.
                   
                       
                   botomAnterrior = botomStatus;

             
               
             }
               

             




               
               if(compareTo == true){                                  //Aqui valora la condicion si se cumplio una anterior osea que "status" sea diferente de 0

                   switch (status)
                   {
                       case 1:
                           digitalWrite(6, HIGH);
                           digitalWrite(4, LOW);
                           digitalWrite(1, LOW);
                           status = 0;
                           compareTo=false;
                           concurrencia = 0;
                           break;
                       case 2:
                           digitalWrite(6, LOW);
                           digitalWrite(4, HIGH);
                           digitalWrite(1, LOW);
                            status = 0;
                            compareTo=false;
                            concurrencia = 0;
                           break;
                       case 3:
                           digitalWrite(6, LOW);
                           digitalWrite(4, LOW);
                           digitalWrite(1, HIGH);
                           status = 0;
                           compareTo=false;
                           concurrencia = 0;
                           break;
                       default:
                           status = 0;
                           digitalWrite(6, LOW);
                           digitalWrite(4, LOW);
                           digitalWrite(1, LOW);
                           compareTo=false;
                           concurrencia = 0;
                           break;
                   }
               
               }


               
           
   
}

Heke


pero la diferencia es que yo se programar y ustedes no llega ni a un "hola mundo"


Gracias Wasom, me has hecho reirme en plan sano, sobre todo con la aseveracion y despues de ver el codigo  :smiley-surprise:

Me has hecho saltar una sonrisa...

Me alegro que lo resolvieras.

Un saludo.
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

PascuaL

Code: [Select]





void setuprimo()                   
{
  Serial.print(" olaaa  WaSoM");

}

void luupa()               
{
  Serial.begin(9600); 
}


Hola. El código no me va. No se por qué...porque yo controlo mucho (por eso pido ayuda). ¿Alguien me echa una mano?

Gracias de antemano!

Go Up