En este proyecto, se va a diseñar e implementar un contador manual usando un display 7 segmentos. El contador aumentará o disminuirá en una unidad cada vez que se presione un pulsador.
Para mostrar un determinado número, se deben encender y apagar ciertos segmentos dependiendo del número a mostrar, como se muestra en la siguiente tabla, donde un 1 representa un HIGH y un 0 representa un LOW
El esquema del circuito queda de la siguiente manera:
El esquema del circuito queda de la siguiente manera:
Recordemos que existen displays 7 segmentos de tipo ánodo común y cátodo común como lo vimos en este tutorial. En el primer caso, el común de los pines va conectado a fuente (5V o 3.3V) y en el segundo caso, el común de los pines va conectado a tierra (GND), como se indica en el siguiente diagrama:
Los materiales utilizados son:
- Display de 7 segmentos de tipo ánodo o cátodo común
- 7 resistencias de 220 ohms
- 2 resistencias de 10K ohms
- 2 condensadores electrolíticos de 10 uF
- 2 pulsadores
- Cables
- Protoboard
- Tarjeta Arduino
Es necesario realizar un anti-rebote como lo vimos en esta entrada, para que el número mostrado en el display aumente o disminuya únicamente cuando se suelta el pulsador luego de haberlo presionado.
Debemos poner resistencias de 220 ohms y no conectar los pines del Arduino directamente a los pines del display, ya que podría quemarlo.
A la hora de programar el display 7 segmentos, hay que tener en cuenta su tipo: En el caso de ánodo común, los segmentos se encienden al enviarles ceros (LOW), mientras que en el caso de cátodo común los segmentos se encienden al enviarles unos (HIGH).
Es necesario conocer la ubicación de los segmentos en el display para poder realizar la programación correctamente:
Si el display 7 segmentos es de tipo cátodo común:
Número |
Segm. A
|
Segm. B
|
Segm. C
|
Segm. D
|
Segm. E
|
Segm. F
|
Segm. G
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
2
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
3
|
1
|
1
|
1
|
1
|
0
|
0
|
1
|
4
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
5
|
1
|
0
|
1
|
1
|
0
|
1
|
1
|
6
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
7
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
8
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
9
|
1
|
1
|
1
|
0
|
0
|
1
|
1
|
El esquema del circuito queda de la siguiente manera:
Si el display 7 segmentos es de tipo ánodo común:
Para mostrar un determinado número, se deben encender y apagar ciertos segmentos dependiendo del número a mostrar, como se muestra en la siguiente tabla, donde un 1 representa un HIGH y un cero representa un LOW
Número |
Segm. A
|
Segm. B
|
Segm. C
|
Segm. D
|
Segm. E
|
Segm. F
|
Segm. G
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
2
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
3
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
4
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
5
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
6
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
7
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
8
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
9
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
El esquema del circuito queda de la siguiente manera:
El código del proyecto se puede descargar desde aquí:
Para cátodo común: https://drive.google.com/open?id=1tvZifGT9qTaRTPSMBEvrWgHHJehO6v0f
Para ánodo común: https://drive.google.com/open?id=1J_WEoxnrcvbWEsGsc5cGTq-Q1fibqJCX
Video del proyecto en funcionamiento:
No me deja descargar el drive
ResponderBorrarGracias fue muy util :D
ResponderBorrarhola amigo muy buen proyecto
ResponderBorrarnesecito hacer un contador de 00 a 99 , voy a utilizar arduino mega
con dos pulsadores (incremento y decremento) mas un reset
me podrias ayudar? a poner el segundo diguito digo la decena, ya que el tuyo es de 0 a 9 y nesecito de 00 a 99 gracias, mi correo jhonfonttz@hotmail.es
requiero el mismo apoyo con el codigo, si alguien pudiera ayudarme por favor
Borrarhola amigo
ResponderBorrarnesecito hacer un contador de 00 a 99 , voy a utilizar arduino mega
con dos pulsadores (incremento y decremento) mas un reset
me podrias ayudar?
Me interesaria tambien que contara de 00 a 99 jf72 lo consegiste gracias
ResponderBorrar¿sería posible poner una variable que si está en el número 2 solo se reducirá a 1 si mantiene presionado el botón durante 3 segundos? y como harias eso!
ResponderBorrarhola bro mira necesito esto, me podrias ayudar, Programe en el entrenador un contador de tiempo de 00 a 99 segundos. Al accionar el pulsador conectado
ResponderBorraral pin RA0 el contador se debe iniciar o detener. El valor del tiempo se debe visualizar en los displays del
entrenador.
Podrías ayudarme con un código en Arduino sobre un contador automático que con un pulsador vaya de forma ascendente y con otro pulsador vaya descendente, todo ello que muestre en un display. Gracias !!!
ResponderBorrarcomo podría hacer con dos pulsadores con uno se inicia y con el otro pulsador se pausa y para luego con el otro pulsador restaurar el conteo
ResponderBorrarno me funcionan los condensadores me dicen que se queman
ResponderBorrarauxilio porfa urgenteeee
ResponderBorrar