Display 7 Segmentos – Antirebote – PullUP con Arduino
4.8 (95.15%) 33 votes

En esta entrada aprenderás a utilizar el Display 7 Segmentos con ARDUINO, de una forma como no la has visto en otro lugar, entonces será muy constructivo para tu formación. Adicionalmente aprenderemos a incorporar en nuestro código el AntiRebote generado por dispositivos mecánicos y por ultimo, aprenderemos a usar las resistencias internas de arduino, conocidas como PullUP.

Si todavía no has visto todo el contenido de nuestro curso de ARDUINO, te invito a darle un vistazo para que aprendas todo sobre esta maravillosa placa de desarrollo: 👉VER CURSO GRATIS DE ARDUINO.

Display 7 Segmentos

Anteriormente ya habiamos hablado de los Display de 7 segmentos en nuestro curso de Microcontroladores PIC (Microchip). Si te interesa un poco más de información puedes darle un vistazo a aquella entrada: DISPLAY 7 SEGMENTOS con PIC.

Display 7 Segmentos
6. Manejo de display 7 segmentos y antirebote

Los Display 7 Segmentos son dispositivos electrónicos que contienen en su interior un arreglo de LEDs (8 leds en total) solo que por lo general solo se usan 7 leds que conforman los segmentos de un número arábigo, y el octavo led solo es usado para mostrar un punto decimal.

Existen 2 tipos de Display 7 Segmentos: Cátodo Común y Ánodo Común.

Display 7 Segmentosdisplay 7 segmentos

En el Display de 7 Segmentos de Cátodo Común, el pin común se conecta a tierra (GND) y el resto de patas van a las salidas del ARDUINO a través de resistencias limitadoras de corriente (220 ohms), donde para encender cada segmento necesitamos mandar una señal alta o de 5 volts, digitalWrite(pin,HIGH).

En el Display de 7 Segmentos de Ánodo Común, el pin común se conecta a 5V (Vcc) y el resto de patas van a las salidas del ARDUINO a través de resistencias limitadoras de corriente (220 ohms), donde para encender cada segmento necesitamos mandar una señal baja o de 0 volts, digitalWrite(pin,LOW).

A continuación se muestra el conexionado de un Display 7 Segementos de Cátodo Común, pero el conexionado es igual para el Display 7 Segementos de Ánodo Común, con la diferencia que el común va a positivo y no a GND.

Display de 7 Segmentos

Números en Display 7 Segmentos

Para mostrar los números en un display de 7 segmentos, debemos proporcionar con el ARDUINO la secuencia de la tabla de verdad de los displays de Cátodo o Ánodo común:

Display 7 Segmentos Anodo Común Display 7 Segmentos Catodo Común

La tabla muestra la secuencia que debe ser ingresada en los displays en cada segmento desde el a hasta el g en binario y también muestra la cantidad en Hexadecimal, que para nuestra facilidad, utilizaremos el numero Hexadecimal para formar esta tabla dentro del Arduino IDE.

A continuación te dejo las dos tablas para que las copies en Arduino IDE dentro de un Arreglo (vector)

para facilitar nuestra vida, usaremos una función de ARDUINO llamada:

bitRead(x, n)

Parametros

x: el numero que se desea leer

n: cual bit desea devolver (el menos significante se encuntra a la derecha)

Ejemplo

El numero 11 en binario se escribe como (0b1011), si usamos bitRead podremos obtener cualquiera de los 4 bits:

Función PUERTO

La función PUERTO es creada por MI y es própia del Canal CONTROL AUTOMÁTICO EDUCACIÓN, la función lo que hace es tomar un numero entero y lo divide en bits mandando cada bit a las salidas digitales comenzando desde un PIN cualquiera hasta un PIN final cualquiera (El orden de los pines se hará de forma ascendente)

función puerto(bits, Pin Inicial, Pin Final);

  • bits: numero entero que se desea sacar por las salidas digitales
  • Pin Inicial: El primer pin del arreglo de bits en Arduino que es una salida digital
  • Pin Final: El ultimo pin del arreglo de bits en Arduino que es una salida digital

Ejemplo

Vamos a suponer que los PINES 2 al 8 del arduino son salidas digitales y que yo quiero sacar el número 63 por el puerto digital. El 63 se escribe en binario (0b0011 1111) o en hexadecimal como (0x3F)

llamamos la función puerto para eso:

le dijimos saque por el puerto el número 63 comenzando en el PIN 2 hasta el PIN 8.

La función puerto la declaramos antes del void SETUP, y es la siguiente:

AntiRebote

En los elementos mecánicos como pulsadores, switches, relés, etc. Sucede un fenómeno conocido como el Rebote, el cual es una señal de RUIDO que ingresa en las entradas digitales del ARDUINO cuando se cambia de estado lógico. La señal de Rebote tiene la siguiente forma:

Antirebote PIC Microcontrolador

Vemos que cambiando de estado logico de 0 para 1, hubieron varios picos y el arduino o microcontrolador en general, puede interpretar esos picos como si se hubiera activado y desactivado varias veces aquella entrada digital, cuando en realidad solo hizo un único cambio.

Para evitar el Rebote, debemos colocar en nuestros códigos un simple retardo de 150ms o 200ms siempre que queramos leer un dispositivo mecanico, de esa forma le damos tiempo al Rebote de desaparecer y asi el ARDUINO consigue leer la señal verdadera en sus entradas digitales.

Resistencia PULLUP

La resistencia PULLUP es una resistencia interna del ARDUINO que va a positivo y que debe ser configurada en las entradas digitales del ARDUINO.

Con esta resistencia interna, nos podemos ahorrar la resistencia PULLDOWN que colocamos en los PULSADORES de la entrada pasada de Entradas Digitales de Arduino.

INPUT_PULLUP Arduino

Ejemplo Display 7 Segmentos con ARDUINO

Vamos a hacer un Contador Incremental y Decremental con un display de 7 segmentos en Arduino y dos pulsadores. El pulsador incremental lo configuraremos como PULLDOWN y el pulsador decrementa lo configuraremos como PULLUP. El esquemático es el siguiente:

El código de implementación es el siguiente: Para descargarlo solo debes compartir el código con cualquiera de los tres botones de esa forma ayudas a que este sitio web continue aportando contenido gratuito y de calidad:

 

Si te sirvió de algo la información de la pagina, podrías invitarme a un café y ayudarme a seguir manteniendo en pie el sitio WEB. Solo cuesta $2USD y me ayudarías enormemente a seguir con mi trabajo. Muchas Gracias por tu visita.




Para Brasil

Se você está em Brasil pode utilizar o botão que está aqui em baixo, para realizar o convite em Reais.




Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Display 7 Segmentos – Antirebote – PullUP con Arduino
Cerrar menú