Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Diagrama Esquemtico
Materiales
2 Displays 7 segmentos 7 Resistencias de 220 Ohms 2 Resistencias de 10 kOhms 2 Transistores de pequea seal 1 Microcontrolador ATmega8 Programador USBasp V3.0
Introduccin
Display 7 segmentos
El display de 7 segmentos es un dispositivo que nos sirve para mostrar nmeros o caracteres, los cuales se visualizan al activar o desactivar los LEDs que este tiene, esto se hace conectando el comn a la tierra y voltaje en el segmento que deseemos activar (en caso de ser ctodo comn).
Para poder representar los nmeros con el display, es necesario generar la tabla que nos dar el valor que ser necesario para generar el numero deseado.
Por ejemplo, se puede observar que para hacer un cero se busca que enciendan todos los segmentos menos el g (pin 10 del display el cual va conectado al PB0 del Micro), con esa informacin del numero, tendremos el valor que tomara el puerto para mostrar el numero deseado a travs del display. Para controlar dos displays a la vez, se har uso de un par de transistores, en este caso conmutaran entre uno y otro, mientras los displays estn conectados al mismo puerto del micro. Primero se mostrara las decenas mientras se desactiva el display de las unidades y despus de una fraccin de tiempo, se activa el de la unidad y se desactiva el de las decenas y el micro manda el valor de la
unidad. Esto se repite determinadas veces a alta velocidad para dar la impresin de que siempre se encuentran prendidos los dos displays. Para activar y desactivar los displays se les pondr un transistor a modo de swhitch el cual se conectara del colector al comn del display, y este controlara el display activndolo o desactivndolo desde la base.
Para este caso el transistor se est usando como un swhitch, eso es que se est trabajando en las regiones de corte y saturacin, lo que nos dice que al pasar una corriente en la base, el transistor se comporta como un interruptor que se abre o se cierra.
Programa en C
#include <avr/io.h> #include <util/delay.h> int contador=0; int unidades, decenas,i; int numeros[10]={0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B, 0x5F, 0x70, 0x7F, 0x7B}; int mostrar(int numero){ unidades=numero%10; decenas =numero/10; for(i=0;i<20;i++){ PORTD=0x02; PORTB=numeros[unidades]; _delay_ms(5); PORTD=0x01; PORTB=numeros[decenas]; _delay_ms(5); } return 0; } //Se activa el transistor de las unidades //Se asigna al PORTB la variable numero en la posicin unidades
//Se declara un vector de longitud 10 que contenga los //valores obtenidos de la tabla, acomodados en orden //Segn su posicin del 0 al 9
//Creamos una funcin de tipo entero //Al dividir un valor entre 10 el residuo nos da las unidades //Se obtiene la decena dividiendo el numero entre 10
//Se activa el transistor de las decenas //Se asigna al PORTB la variable numero en la posicin decenas
//Llamar a la funcin mostrar, mandando la variable contador //Incrementar el valor de la variable contador //Si llega a 99, que tome el valor de 0
PORTB=numeros[unidades]; Al puerto B se le asigna el valor que tenga el vector nmeros en la posicin unidades, si tomamos el ejemplo anterior, unidades vala 5, si vamos al vector nmeros y vemos la quinta posicin, veremos un 0x5B la cual corresponde al nmero 5 en la tabla, esto es, que al mostrarlo por el puerto B aparecer el 5 en el display. mostrar(contador); Aqu se manda a llamar a la funcin mostrar, a la cual se le manda el valor de la variable contador, el cual puede ser un numero del 0-99, al llamar la funcin, esta ejecutara todas las instrucciones que se encuentren dentro de la misma, al terminar regresara y continuara con la siguiente instruccin.