Arduino - Contador y función no f

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 7 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Contador y función no f

Publicado por Esdras (1 intervención) el 20/11/2020 08:36:06
Hola amigos, pues quiero que me ayuden con el problema que tengo, quiero hacer que que mientras no presione el boton/pulsador de aumentar mi display de 7 elementos haga una espera con la función on que tengo hasta abajo, así que mi pensamiento fue el de poner esa función dentro de la opción 0 de mi switch case pero al ponerlo ahí la función se queda en el on aún pulsando el botón y use la función print para ver porque no funcionaba y me marcaba que el valor del contador no aumentaba, así que no se muy bien que deba hacer después de pensarlo tanto. Les agradecería su ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
int contador = 0;
int presionado1;
int presionado2;
int pulsador_disminuir = 10;
int pulsador_aumentar = 9;
 
void encender(int a, int b, int c, int d, int e, int f, int g)
{
  digitalWrite(6, a);
  digitalWrite(5, b);
  digitalWrite(4, c);
  digitalWrite(3, d);
  digitalWrite(2, e);
  digitalWrite(1, f);
  digitalWrite(0, g);
}
 
void setup() {
  Serial.begin(9600);
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, INPUT);
  pinMode(10, INPUT);
}
 
void loop() {
 
  if (digitalRead(pulsador_aumentar) == LOW)
  {
    presionado1 = 1;
  }
  if (digitalRead(pulsador_aumentar) == HIGH && presionado1 == 1)
  {
    presionado1 = 0;
    contador++;
    Serial.print(contador);
    if (contador > 9)
    {
      contador = 9;
    }
  }
 
 
  if (digitalRead(pulsador_disminuir) == LOW)
  {
    presionado2 = 1;
  }
  if (digitalRead(pulsador_disminuir) == HIGH && presionado2 == 1)
  {
    presionado2 = 0;
    contador = 0;
    encender (1, 1, 1, 1, 1, 1, 0);
    if (contador < 0)
    {
 
      contador = 0;
    }
  }
 
  switch (contador)
  {
    case 0:
 
      break;
 
    case 1:
      encender (0, 1, 1, 0, 0, 0, 0);
      break;
 
    case 2:
      encender (1, 1, 0, 1, 1, 0, 1);
      break;
 
    case 3:
      encender (1, 1, 1, 1, 0, 0, 1);
      break;
 
    case 4:
      encender (0, 1, 1, 0, 0, 1, 1);
      break;
 
    case 5:
      encender (1, 0, 1, 1, 0, 1, 1);
      break;
 
    case 6:
      encender (1, 0, 1, 1, 1, 1, 1);
      break;
 
    case 7:
      encender (1, 1, 1, 0, 0, 0, 0);
      break;
 
    case 8:
      encender (1, 1, 1, 1, 1, 1, 1);
      break;
 
    case 9:
      encender (1, 1, 1, 1, 1, 1, 0);
      break;
  }
}
void on (int tiempo) {
  for (int letra = 6; letra >= 0; letra--) {
    digitalWrite(letra, HIGH);
    delay(tiempo);
    digitalWrite(letra, LOW);
    delay(tiempo);
 
  }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder