Go Down

Topic: PULSADORES Y LEDS (Read 169 times) previous topic - next topic

janssssvvvv

Aug 06, 2020, 05:52 am Last Edit: Aug 06, 2020, 05:53 am by janssssvvvv
Hola, estoy intentando resolver un problema en el cual me piden desarrollar un sketch que inicialmente encienda el led del medio de unos 7 leds, y si presionamos el pulsador de la izquierda el led encendido se desplaza a la izquierda, de forma analoga para la derecha. Solo hay un led encendido y deben haber topes (ejemplo: cuando enciende un led del extremo izquierdo aunque se presione el pulsador izquierdo se mantiene en la posicion).

Lo he resuelto de esta manera, pero solo funciona en thinkercard o algun simulador, cuando lo implemento funciona siempre y cuando, mantenga presionado un led mientras que el otro lo este prendiendo y apagando para el desplazamiento. Nose que esta mal.
----------------
int posicion=9;
void setup()
{
 for(int i=6;i<13;i++){
   pinMode(i,OUTPUT);
 }
 
 pinMode(2,INPUT);
 pinMode(3,INPUT);
}

void loop()
{
 digitalWrite(posicion,1);
 while(digitalRead(3)==0 && digitalRead(2)==0) delay(50);  
 
if(digitalRead(2)==1){
   while(digitalRead(2)==1 ) delay(50);
   if(posicion>=7){
     digitalWrite(posicion,0);
     delay(50);
     posicion-=1;}
   else posicion=6;}  
 
 else  if(digitalRead(3)==1){
   while(digitalRead(3)==1 ) delay(50);
   if(posicion<=11){
     digitalWrite(posicion,0);
     delay(50);
     posicion+=1;}
   else posicion=12;}

 }

GO_zalo

Primero:
Code: [Select]
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);


Segundo: Conecta los pulsadores entre el pin y tierra

janssssvvvv

Hola, ya lo intente pero el problema persiste. Como mencioné en el post, en un simulador de arduino como Tinkercad funciona correctamente, sin embargo cuando lo implemento fisicamente no lo hace de la manera deseada(para desplazar de izquierda a derecha, por ejemplo tengo que mantener el boton izquierdo presionado e ir presionado y soltando el boton derecho para que el led se desplace hacia la derecha). Creo que es porque no estoy implementando correctamente el antirrebote, pero no logro encontrar mi error.

surbyte

Moderador
Por favor edita tu post usando etiquetas de código.


Normas del foro

Go Up