Advertisement
ESTEXAV96

Contador Up/Down

May 30th, 2021 (edited)
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int pines [] = {0, 1, 2, 3, 4, 5, 6};
  2.  
  3.  
  4. #define decenaTr 8
  5. #define unidadTr 10
  6.  
  7. bool estadoUp = 0;
  8. bool estadoDown = 0;
  9.  
  10. byte decena = 0;
  11. byte unidad = 0;
  12.  
  13. short pausa = 5;
  14.  
  15. byte numerosAnodo[] {
  16.   B0000000,//NA
  17.   B0000001,//0
  18.   B1001111,//1
  19.   B0010010,//2
  20.   B0000110,//3
  21.   B1001100,//4
  22.   B0100100,//5
  23.   B0100000,//6
  24.   B0001111,//7
  25.   B0000000,//8
  26.   B0000100,//9
  27. };
  28.  
  29. byte numerosCatodo[] {
  30.  
  31.   B0000000,//NA
  32.   B1111110,//0
  33.   B0110000,//1
  34.   B1101101,//2
  35.   B1111001,//3
  36.   B0110011,//4
  37.   B1011011,//5
  38.   B1011111,//6
  39.   B1110000,//7
  40.   B1111111,//8
  41.   B1111011,//9
  42. };
  43.  
  44.  
  45. void setup() {
  46.  
  47.   pinMode(decenaTr, OUTPUT);
  48.   pinMode(unidadTr, OUTPUT);
  49.  
  50.  
  51.   for (int led = 0; led < 8; led++) {
  52.     pinMode(pines[led], OUTPUT);
  53.   }
  54.   decena = 1;
  55.   unidad = 1;
  56. }
  57.  
  58. void loop() {
  59.  
  60.  
  61.   bool  pUp = digitalRead(A0);
  62.   bool  pDown = digitalRead(A1);
  63.  
  64.  
  65.   if (pUp != estadoUp) {
  66.     if (pUp == HIGH) {
  67.      
  68.       if (unidad == 10 && decena == 10){
  69.         decena = 10;
  70.         unidad = 10;           
  71.       } else {
  72.         decena++;
  73.       }
  74.  
  75.       if (decena == 11 ) {
  76.         decena = 1;
  77.         unidad++;
  78.       }
  79.     }
  80.   }
  81.  
  82.    
  83.  
  84.   if (pDown != estadoDown) {
  85.     if (pDown == HIGH) {
  86.  
  87.       decena--;
  88.  
  89.       if (decena == 0) {
  90.         decena = 10;
  91.         unidad--;
  92.       }
  93.     }
  94.   }
  95.  
  96.  
  97.  
  98.   if (decena == 10 && unidad == 0){
  99.     decena = 1;
  100.     unidad = 1;
  101.   }
  102.      
  103.  
  104.   estadoUp = pUp;
  105.   estadoDown = pDown;
  106.  
  107.   digitalWrite(decenaTr, HIGH);
  108.   digitalWrite(unidadTr, LOW);
  109.   PORTD = numerosAnodo[unidad];
  110.   delay(pausa);
  111.   digitalWrite(decenaTr, LOW);
  112.   digitalWrite(unidadTr, HIGH);
  113.   PORTD = numerosAnodo[decena];
  114.   delay(pausa);
  115.  
  116.  
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement