Buenas noches amig@s, espero se encuentren bien.
En esta ocasión les escribo para solicitarles ayuda sobre un código que ya tengo elaborado, sin embargo quiero hacerlo más corto.
Saludos atentos y bendiciones.
Sería un detalle que subieras el código...
Un saludo.
este es el código amigo:
la funcion de el es hacer que al presionar un pulsador aumente, y al presionar otro disminuya (la cuenta).
int a=2; //segmentos del display
int b=3;
int c=4;
int d=5;
int e=6;
int f=7;
int g=8;
int botincremento=9;//boton de incremento
int botdecremento=10;//boton de decremento
int timeAntirebote=15;
int cuenta=0;//lleva la cuenta
int estadobotincremento;
int estadobotdecremento;
int estadobotantincremento;
int estadobotantdecremento;
boolean antirebote(int pin){
int contador=0;
boolean estado; //guarda el estaado del boton
boolean estadoAnterior;//guarda el ultimo estado del boton
do {
estado=digitalRead(pin);
if (estado != estadoAnterior){
contador=0;
estadoAnterior = estado;//reiniciamos el contador
}
else{
contador = contador + 1;//aumentamos el contador en 1
}
delay(1);
}while(contador < timeAntirebote);
return estado;
}
void setup(){
Serial.begin(9600);
pinMode(a, OUTPUT);//los declaramos como salidas
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(botincremento,INPUT);//los botones los declaramos como salidas
pinMode(botdecremento,INPUT);
}
void actualizarNumero(){
switch(cuenta){//pregunta por el valor de una variable que nosotros le digamos.
case 0:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;//de no tener break, seguirá realziando todas las funciones.
case 1:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 8:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 9:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
}
}
void loop() {
estadobotincremento=digitalRead(botincremento);//leemos el boton
if(estadobotincremento !=estadobotantincremento){//si hay cambio respecto al estado anterior
if(antirebote(botincremento)){//vemos si esta presionado
cuenta++;//aumentamos la cuenta
if(cuenta>9){
cuenta=0;
}
}
}
estadobotantincremento = estadobotincremento;//guardamos el estado del boton
estadobotdecremento=digitalRead(botdecremento);//leemos el estado del boton
if(estadobotdecremento != estadobotantdecremento){
if(antirebote(botdecremento)){
cuenta--;//disminuimos la cuenta
if(cuenta<0){
cuenta=9;
}
}
}
estadobotantdecremento = estadobotdecremento;
actualizarNumero();
}
Hola:
Al menos di que es Arduino, la gente no es adivina. Lo se porque esstoy metido en ello.
Creal al menos un esquema para saber de que va. Piedes simplificar código, parace que está muy bien estructurado.
Saludo.
disculpa si se me paso decir que era arduino gracias por la observación...a que te refieres con crear un esquema para ver por lo menos de que va?
Hola:
Esquema electrónico, diagrama de flujo, en qué consiste.
Para que en manejar display de 7 segmentos, en este caso.
Saludo