Arduino - Poner a 0 contador

 
Vista:

Poner a 0 contador

Publicado por Francisco (1 intervención) el 09/10/2022 23:22:07
Buenas tardes, tengo un contador de 2 digitos con display LCD de 7 segmentos multiplxado. No tengo ni idea de programacion en arduino, solo controlo ladder , pero con este codigo que encontre funciona como necesito.

Lo unico que no he conseguido es poner los dos displays a cero con un pulsador que tengo en el PIN A1.

Basicamente necesito un contador ascendente con un pulsador (pin A0) y poder ponerlo a cero con un pulsador en el pin A1.

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
int pines [] = {0, 1, 2, 3, 4, 5, 6};
 
#define tr1 8
#define tr2 10
#define pulsador A0
 
bool estadoP = 0;
byte n1 = 0;
byte n2 = 0;
short pausa = 50;
 
byte numerosAnodo[] {
 B0000001,//0
 B1001111,//1
 B0010010,//2
 B0000110,//3
 B1001100,//4
 B0100100,//5
 B0100000,//6
 B0001111,//7
 B0000000,//8
 B0000100,//9
};
 
byte numerosCatodo[] {
 B1111110,//0
 B0110000,//1
 B1101101,//2
 B1111001,//3
 B0110011,//4
 B1011011,//5
 B1011111,//6
 B1110000,//7
 B1111111,//8
 B1111011,//9
};
 
 
void setup() {
 pinMode(tr1, OUTPUT);
 pinMode(tr2, OUTPUT);
 pinMode(pulsador, INPUT);
 
 for (int led = 0; led < 8; led++) {
   pinMode(pines[led], OUTPUT);
 }
}
 
void loop() {
 
 
 bool  pul = digitalRead(pulsador);
 
 if (pul != estadoP) {
   if (pul == HIGH) {
 
     n1++;
 
     if (n1 == 10 ) {
       n1 = 0;
       n2++;
     }
     if (n2 == 10){
       n2 = 0;
     }
  }
 }
 
 estadoP = pul;
 
 digitalWrite(tr1, HIGH);
 digitalWrite(tr2, LOW);
 PORTD = numerosAnodo[n2];
 delay(pausa);
 digitalWrite(tr1, LOW);
 digitalWrite(tr2, HIGH);
 PORTD = numerosAnodo[n1];
 delay(pausa);
 }
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