Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: Inter-ard en 22 Febrero 2014, 01:52 am



Título: AYUDA en crear un código más corto.
Publicado por: Inter-ard en 22 Febrero 2014, 01:52 am
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.


Título: Re: AYUDA en crear un código más corto.
Publicado por: xiruko en 22 Febrero 2014, 03:02 am
Sería un detalle que subieras el código...

Un saludo.


Título: Re: AYUDA en crear un código más corto.
Publicado por: Inter-ard en 22 Febrero 2014, 03:24 am
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).

Código
  1. int a=2; //segmentos del display
  2. int b=3;
  3. int c=4;
  4. int d=5;
  5. int e=6;
  6. int f=7;
  7. int g=8;
  8. int botincremento=9;//boton de incremento
  9. int botdecremento=10;//boton de decremento
  10. int timeAntirebote=15;
  11.  
  12. int cuenta=0;//lleva la cuenta
  13. int estadobotincremento;
  14. int estadobotdecremento;
  15. int estadobotantincremento;
  16. int estadobotantdecremento;
  17.  
  18. boolean antirebote(int pin){
  19.  int contador=0;
  20.  boolean estado; //guarda el estaado del boton
  21.  boolean estadoAnterior;//guarda el ultimo estado del boton
  22.  
  23. do {
  24.   estado=digitalRead(pin);
  25.   if (estado != estadoAnterior){
  26.     contador=0;
  27.     estadoAnterior = estado;//reiniciamos el contador
  28.   }
  29.  else{
  30.    contador = contador + 1;//aumentamos el contador en 1
  31.  }
  32.  delay(1);
  33. }while(contador < timeAntirebote);
  34.  
  35. return estado;
  36. }
  37.  
  38. void setup(){
  39.  Serial.begin(9600);
  40.   pinMode(a, OUTPUT);//los declaramos como salidas
  41.   pinMode(b, OUTPUT);
  42.   pinMode(c, OUTPUT);
  43.   pinMode(d, OUTPUT);
  44.   pinMode(e, OUTPUT);
  45.   pinMode(f, OUTPUT);
  46.   pinMode(g, OUTPUT);
  47.   pinMode(botincremento,INPUT);//los botones los declaramos como salidas
  48.   pinMode(botdecremento,INPUT);
  49. }  
  50.  
  51. void actualizarNumero(){
  52.  switch(cuenta){//pregunta por el valor de una variable que nosotros le digamos.
  53.  
  54.   case 0:
  55.   digitalWrite(a, HIGH);
  56.   digitalWrite(b, HIGH);
  57.   digitalWrite(c, HIGH);
  58.   digitalWrite(d, HIGH);
  59.   digitalWrite(e, HIGH);
  60.   digitalWrite(f, HIGH);
  61.   digitalWrite(g, LOW);
  62.   break;//de no tener break, seguirá realziando todas las funciones.
  63.   case 1:
  64.   digitalWrite(a, LOW);
  65.   digitalWrite(b, HIGH);
  66.   digitalWrite(c, HIGH);
  67.   digitalWrite(d, LOW);
  68.   digitalWrite(e, LOW);
  69.   digitalWrite(f, LOW);
  70.   digitalWrite(g, LOW);
  71.   break;
  72.   case 2:
  73.   digitalWrite(a, HIGH);
  74.   digitalWrite(b, HIGH);
  75.   digitalWrite(c, LOW);
  76.   digitalWrite(d, HIGH);
  77.   digitalWrite(e, HIGH);
  78.   digitalWrite(f, LOW);
  79.   digitalWrite(g, HIGH);
  80.   break;
  81.  
  82.   case 3:
  83.   digitalWrite(a, HIGH);
  84.   digitalWrite(b, HIGH);
  85.   digitalWrite(c, HIGH);
  86.   digitalWrite(d, HIGH);
  87.   digitalWrite(e, LOW);
  88.   digitalWrite(f, LOW);
  89.   digitalWrite(g, HIGH);
  90.   break;
  91.   case 4:
  92.   digitalWrite(a, LOW);
  93.   digitalWrite(b, HIGH);
  94.   digitalWrite(c, HIGH);
  95.   digitalWrite(d, LOW);
  96.   digitalWrite(e, LOW);
  97.   digitalWrite(f, HIGH);
  98.   digitalWrite(g, HIGH);
  99.   break;
  100.   case 5:
  101.   digitalWrite(a, HIGH);
  102.   digitalWrite(b, LOW);
  103.   digitalWrite(c, HIGH);
  104.   digitalWrite(d, HIGH);
  105.   digitalWrite(e, LOW);
  106.   digitalWrite(f, HIGH);
  107.   digitalWrite(g, HIGH);
  108.   break;
  109.  case 6:
  110.   digitalWrite(a, HIGH);
  111.   digitalWrite(b, LOW);
  112.   digitalWrite(c, HIGH);
  113.   digitalWrite(d, HIGH);
  114.   digitalWrite(e, HIGH);
  115.   digitalWrite(f, HIGH);
  116.   digitalWrite(g, HIGH);
  117.   break;
  118.   case 7:
  119.   digitalWrite(a, HIGH);
  120.   digitalWrite(b, HIGH);
  121.   digitalWrite(c, HIGH);
  122.   digitalWrite(d, LOW);
  123.   digitalWrite(e, LOW);
  124.   digitalWrite(f, LOW);
  125.   digitalWrite(g, LOW);
  126.   break;
  127.  
  128.   case 8:
  129.   digitalWrite(a, HIGH);
  130.   digitalWrite(b, HIGH);
  131.   digitalWrite(c, HIGH);
  132.   digitalWrite(d, HIGH);
  133.   digitalWrite(e, HIGH);
  134.   digitalWrite(f, HIGH);
  135.   digitalWrite(g, HIGH);
  136.   break;
  137.   case 9:
  138.   digitalWrite(a, HIGH);
  139.   digitalWrite(b, HIGH);
  140.   digitalWrite(c, HIGH);
  141.   digitalWrite(d, LOW);
  142.   digitalWrite(e, LOW);
  143.   digitalWrite(f, HIGH);
  144.   digitalWrite(g, HIGH);
  145.   break;
  146.  }
  147. }
  148.  
  149. void loop()  {
  150.   estadobotincremento=digitalRead(botincremento);//leemos el boton
  151.   if(estadobotincremento !=estadobotantincremento){//si hay cambio respecto al estado anterior
  152.     if(antirebote(botincremento)){//vemos si esta presionado
  153.       cuenta++;//aumentamos la cuenta
  154.       if(cuenta>9){
  155.         cuenta=0;
  156.       }
  157.     }
  158.   }
  159.   estadobotantincremento = estadobotincremento;//guardamos el estado del boton
  160.   estadobotdecremento=digitalRead(botdecremento);//leemos el estado del boton
  161.   if(estadobotdecremento != estadobotantdecremento){
  162.     if(antirebote(botdecremento)){
  163.       cuenta--;//disminuimos la cuenta
  164.       if(cuenta<0){
  165.         cuenta=9;
  166.       }
  167.     }
  168.   }
  169.   estadobotantdecremento = estadobotdecremento;
  170.   actualizarNumero();
  171. }
  172.  
  173.  
  174.  
  175.  
  176.  



Título: Re: AYUDA en crear un código más corto.
Publicado por: Meta en 22 Febrero 2014, 05:45 am
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.


Título: Re: AYUDA en crear un código más corto.
Publicado por: Inter-ard en 22 Febrero 2014, 06:42 am
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?


Título: Re: AYUDA en crear un código más corto.
Publicado por: Meta en 22 Febrero 2014, 21:04 pm
Hola:

Esquema electrónico, diagrama de flujo, en qué consiste.

Para que en manejar display de 7 segmentos, en este caso.

Saludo