You are on page 1of 10

DISEÑO DIGITAL CON MICROCONTROLADORES

POTENCIOMETRO DIGITAL

ENTREGADO POR:

JAIRO WILMER GARCIA MELGAREJO-20132005094

LUIS HERNAN LEGUIZAMO MUÑOZ-20132005171

DIRIGIDO A:

ING. JULIAN CAMARGO

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA, INGENIERÍA ELECTRÓNICA

2016
PLANTEAMIENTO DEL PROBLEMA

Se desea diseñar e implementar un potenciómetro digital que tenga la capacidad de manejar 10


valores resistivos, para esto, es necesario modificar el valor del potenciómetro con dos pulsadores
N.A., uno para incrementarlo y otro para decrementillo, estos deben ser configurados para evitar la
operación circular del potenciómetro, y a su vez se debe visualizar en un display de 7 segmentos la
posición entre 0 y 9 del potenciómetro, actualizándose cada vez que este sea modificado, para
comprobar que el potenciómetro sirve se verificara visualmente conectando un LED al cual se le
modificara el brillo de acuerdo a la ubicación del potenciómetro desde apagado hasta máximo
brillo.

ANÁLISIS Y MODELADO

Como se plantea el diseño de un potenciómetro lo primero que hicimos fue modelar el aspecto del
7 segmentos, al cual su único propósito es de llevar un conteo del valor del potenciómetro, es decir,
en qué posición actualmente se encuentra, ya teniendo el modulo del potenciómetro es necesario
crear un camino de resistencias los cuales nos den un valor de resistencia del potenciómetro, para
esto, se escoge 10 salidas con algún puerto disponible y así permitir la elección del camino de
resistencias para que podamos visualizar el incremento o atenuación del brillo sobre el LED.

DISEÑO

Figura 1. Camino de resistencias.


Para el camino de resistencias hemos planeado el uso de diodos ya que una característica que estos
permiten es que no impiden la circulación de corriente hacia el microcontrolador y planteándolo
de forma ideal nos forma un circuito abierto cuando su alimentación no es superior a 0.7v, es decir
el camino de resistencias quedaría en serie idealmente, cada fuente de alimentación significa un pin
diferente del microcontrolador, así dándonos la libertar de que camino escoger para así obtener
una mayor o menor resistencia que se le asigne al LED.

Primero que todo empezamos con el diagrama de flujo el cual nos ayudara a entender en un aspecto
general la solución al problema que se plantea, por consiguiente se mostrara el diagrama de flujo
que se utilizó en el diseño.

Figura 2. Diagrama de flujo.


Primero inicializamos variable y seguido de esto habilitamos los puertos E, C, G como salidas,
además el puerto B como entrada, activando las resistencias Pull-Up.

Figura 3. Configuración de los puertos.

Además de configurar los puertos se programa para que se muestren los valores por defecto de
potenciómetro es decir el potenciómetro inicia en cero y aumenta hasta 9, por esta razón pusimos
los valores de display en cero y led a su máximo brillo, como muestran las últimas líneas de código
en la figura 4.

A continuación se configura el modo de selección el cual nos dice si el Bitn del puerto B está activado
o desactivado, la variable PULSADOR 1 se refiere al bit cero, al primer pulsador, y el PULSADOR 2,
se refiere al bit 1 del puerto B, para identificar los pulsadores el pulsador de incremento será PUL_1,
y el de decremento será PUL_2.

Figura 4. Configuración del modo selección.


El modo de selección se programa para una selección general y una selección específica, es decir en
la general se tiene las posibilidades que tendrán los pulsadores encendido o apagado, y en la
selección especifica mantendrá el valor un determinado tiempo, ya que ocurren tantos ciclos de
reloj como el microcontrolador lo permita, el leerá el puerto innumerable cantidad de veces, por
esta razón es necesario mantener en stand by hasta que se deje de presionar el pulsador, es decir
una configuración que me permita saber cuándo presione el pulsador, estas rutinas se identifican
por el nombre SALTOX-Y-Z-W, como lo muestra la siguiente figura:

Modo pulsador de incremento:

El modo pulsador incremento emplea dos comprobaciones una si es igual a 9 y otra si la bandera N
esta activada, la primera nos dice si el potenciómetro ha llegado al máximo nivel y que impida la
circulación del potenciómetro, la otra comprobación nos dice que puerto seleccionar si el puerto C
que contiene los primeros 5 bits de selección para el camino de resistencias y el puerto G que
contiene los próximos 4 bits que contiene la parte alta del camino de resistencias, el código es el
siguiente:

Figura 5. Modo incrementar.


Modo decremento:

El modo decremento es muy parecido al modo incrementar solo que cambia el valor del contador a
comprobar y su manejo de puertos es diferente, ya que el contador está en adelanto con respecto
al dato que muestra el 7 segmentos, el código de decremento es el siguiente:

Figura 6. Modo decremento.

En la figura 6. Tambien se puede ver el manejo de tablas, donde TABLA corresponde a los valores
del 7 segmentos y TABLA2 corresponte a los valores del LED, es decir la TABLA2 me maneja los
puertos altos y bajos para el camino de resistencias del LED, donde los puertos para altos sera el
puerto G y el puerto para bajos sera el puerto C.
A continuación se puede ver un modo más claro del manejo de puertos.

Figura 7. Manejo de puertos.

Modo Stand By:

El modo Stand By se refiere al modo de espera de los pulsadores es decir que cuando no se esté
pulsando ningún pulsador siempre este actualizando el valor del 7 segmento y del camino de
resistencias para el LED, a continuación se podrá ver el código que solo muestra valores y no da
incremento a los registros como es el registro X.

Figura 8. Modo Stand by.


CONCLUSIONES

 Se logró el manejo adecuado de los puertos del microcontrolador.


 A la hora de leer y enviar datos por un puerto es importante tener en cuenta que
bits se manejan para no tener problemas de lectura y procesamiento de la
información, además si se lee un dato se debe enmascarar en caso de no
manejar todos los bits del puerto para evitar leer información errada, se
recomienda que se tenga una idea anticipada de que puertos se va a manejar en
la lógica a implementar.
ANEXOS

You might also like