6. Manejo de display 7 segmentos y antirebote
5 (100%) 26 votes

En este post aprenderás que es y como evitar el antirebote o anti-rebote provocado por sistemas mecánicos en circuitos electrónicos y también vamos a aprender paso a paso como usar un Display de 7 Segmentos. Y con estos dos conceptos, vamos a hacer un ejemplo práctico usando un microcontrolador PIC.

Display de 7 Segmentos

El display led de 7 segmentos es un componente electrónico que me permite visualizar un valor numerico para una determinada aplicación. Cuando se quiere mostrar datos en el display, existen dos opciones para hacerlo, una utilizar un decodificador BCD a 7 segmentos después del microcontrolador, y otra es generar con el mismo microcontrolador el código 7 segmentos equivalente a cada número de 0 a 9.Display 7 Segmentos

Para que el microcontrolador maneje el display de 7 segmentos es necesario hacer la siguiente conexión (Para un display 7 segmentos de cátodo común). La misma conexión puede hacerse para un display led 7 segmentos de anodo común, la diferencia es que el común va a positivo y en la tabla de abajo intercambiar 1 por 0 y 0 por 1.

Conexion display catodo comun con pic

Para lograr este objetivo se necesita entender el manejo de estructuras en C, que funcionan como una tabla donde el programa puede consultar el contenido de cada posición. Lógicamente en cada posición se encuentra el código 7 segmentos de cada número de 0 a 9.

Display 7 Segmentos Hexadecimal

A continuación te dejo la tabla del Display 7 Segmentos Hexadecimal para Cátodo y Ánodo común:

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

Para manejar una estructura en C, lo único que se debe hacer es añadir la estructura al encabezado.

Para Cátodo Común adicionar el siguiente arreglo:

Para Ánodo Común adicionar el siguiente arreglo:

El número 10 indica la cantidad de posiciones de la estructura, los códigos 7 segmentos están en hexadecimal.

ANTIREBOTE o ANTI-REBOTE

Cuando se trabaja con pulsadores o suiches, en el momento en que estos cambian de estado se genera una señal como la que se muestra en la figura:

Antirebote PIC Microcontrolador
Es decir, el suiche o pulsador genera unos y ceros hasta que finalmente se estabiliza debido a que es un dispositivo
electromecánico, el microcontrolador con su velocidad de trabajo se da cuenta de esto.

Para evitar errores en la detección de pulsadores y suiches se utilizan retardos de 150 a 200ms aproximadamente, en el momento en que se detecta que un pulsador o suiche cambió de estado, este tiempo es suficiente mientras se estabiliza y luego, se pregunta nuevamente por el estado del suiche.

Vamos a ver los siguientes ejemplos, con sus respectivos códigos, para que aprendas a programar el display 7 segmentos y el anti rebote. Para esto, también preparé para ti, un video donde te explico detalladamente cada linea del código, para que no te pierdas. Recuerda seguirme en YOUTUBE dandole click al siguiente botón, para que te suscribas a mi canal y puedas saber cuando publico un video nuevo sobre microcontroladores

Como Usar Display led 7 Segmentos y el AntiRebote

Para aprender a usar todo lo que vimos en este post, vamos a hacer un Ejemplo poderoso que coloque en práctica todo lo aprendido hoy y de esa manera conseguir que tus habilidades aumenten:

Contador con Pulsador en PIC C Compiler

Realizar un temporizador de 0 a 9, que incremente cada segundo.

Display 7 segmentos + PIC

De esa forma podremos implementar un contador con pulsador usando nuestro compilador PIC C Compiler, sin embargo también podríamos hacer temporizadores con PIC como lo veremos a continuación.

Temporizador con PIC usando Display 7 Segementos y AntiRebote

Diseñar un temporizador decremental cada segundo. Pero que pueda seleccionar el numero inicial con un pulsador en RC0, y con otro pulsador en RC1 pueda darle la orden al microcontrolador de iniciar la temporizacion. (Tratar el problema de antirrebote generado por ambos pulsadores). Por ultimo colocar un Led en RC2 que se active en el momento que el temporizador decremental está funcionando.

Microcontrolador con display 7 segmentos

(De forma similar puede hacerse un contador de display de 7 segmentos. Con lo aprendido en esta entrada, tú mismo estás en la capacidad de programar tu propio contador de 0 a 9 usando el display led de 7 segmentos)

Codigo De Implementacion en CCS C PICC:

A continuación se presenta el código para que lo copies y lo pegues en tu compilador y puedas reproducirlo. Recuerda que para ver el código debes compartir el contenido de este blog para que más personas se beneficien de esta información.

Comparte en Redes Sociales

Summary
Display 7 Segmentos y AntiRebote
Article Name
Display 7 Segmentos y AntiRebote
Description
Dispositivo electrónico que permite adicionar a nuestros proyectos una indicación visual numérica sobre diferentes tipos de información útil. Existen los displays de anodo y catodo común. Adicionalmente el AntiRebote es un mecanismo usado en microcontroladores para evitar leer ruido eléctrico provocado por dispositivos mecánicos como pulsadores o switches.
Author
Publisher Name
Control Automático Educación
Publisher Logo

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.




Esta entrada tiene 6 comentarios

  1. Hola que fortuna encontrar esta pagina.
    De un Colombiano a otro.
    Gracias y lo felicito, por su labor

    Cesar Alvarez

    1. Gracias Cesar, que bueno que te ha ayudado. Saludos.

  2. Hola sergio, no entiendo esta parte:
    IF (BIT_TEST(SW1))
    {
    DELAY_MS(200); // Antirrebote
    while (BIT_TEST(SW1)); <<<<<<<<<< porque se queda en "stop" el programa y cuando se suelta sube un digito el display?

    1. Daniel, esa linea esta puesta ahi, justamente para hacer eso, para esperar hasta que el usuario deje de pulsar el botón para poder subir un digito. Simplemente se hace un while y se pregunta si el boton esta presionado. Si esto es verdad (es decir si el botón esta presionado) la instrucción BIT_TEST(SW1) siempre entregará un 1, entonces será como tener while(1); osea se quedara en esa instrucción quieto hasta que sea falsa, cuando sueltes el boton la instrucción BIT_TEST(SW1) entregara un 0, entonces será como tener while(0); y puede continuar haciendo su rutina.

      1. muchas gracias sergio, fue muy clara la respuesta ! seguire con el siguiente tutorial

Deja un comentario

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

6. Manejo de display 7 segmentos y antirebote
6. Manejo de display 7 segmentos y antirebote
Cerrar menú