100% encontró este documento útil (1 voto)
695 vistas32 páginas

Lab01 - Display 7 Segmentos

Este documento describe una experiencia de laboratorio sobre displays de 7 segmentos. Explica el funcionamiento y tipos de displays de 7 segmentos, incluyendo cátodo y ánodo común. También presenta ejemplos de aplicaciones y el procedimiento para conectar un display de 7 segmentos a Arduino y mostrar datos mediante una función programada en C.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
695 vistas32 páginas

Lab01 - Display 7 Segmentos

Este documento describe una experiencia de laboratorio sobre displays de 7 segmentos. Explica el funcionamiento y tipos de displays de 7 segmentos, incluyendo cátodo y ánodo común. También presenta ejemplos de aplicaciones y el procedimiento para conectar un display de 7 segmentos a Arduino y mostrar datos mediante una función programada en C.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ESCUELA PROFESIONAL DE INGENIERÍA Emisión:

EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 1 / 32
DISPLAY 7 SEGMENTOS

ESCUELA PROFESIONAL DE INGENIERÍA EN TELECOMUNICACIONES

LABORATORIO DE: MICROPROCESADOR Y MICROCONTROLADOR

EXPERIENCIA N°: 01

TÍTULO DE LA EXPERIENCIA:

DISPLAY 7 SEGMENTOS

Grupa
Alumno(os): Indiv. Total
l
1.
2.
3.
4.
Grupo:  
Docente: Mg. HUARCA Jorge
Semestre: 7
Fecha de
   Hora:  
entrega:

LABORATORIO N° 01
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 2 / 32
DISPLAY 7 SEGMENTOS

DISPLAY 7 SEGMENTOS

I.- OBJETIVOS:
- Utilizar programación en C para Arduino
- Mostrar datos por medio de un Display
II.- FUNDAMENTO TEÓRICO:
Temas a desarrollar:
2.1. Funcionamiento de un display de 7 segmentos
DISPLAY 7 SEGMENTOS
es un dispositivo opto-electrónico que permite visualizar números del 0 al 9. Existen
dos tipos de display, de cátodo común y de ánodo común. Este tipo de elemento de
salida digital o display, se utilizabá en los primeros dispositivos electrónicos de la
década de los 70’s y 80’s. Hoy en día es muy utilizadon en proyectos educativos o en
sistemas vintage.
En los display de 7 segmentos se requiere colocar una resistencia para limitar la
corriente dado que están construidos con diodos LED que requieren una corriente
máxima. Dicha resistencia depende de la corriente que se quiera suministrar al LED
así como de la caída de voltaje. Para
calcular la resistencia usamos la Ley de
Ohm. 

SIMBOLO DEL DISPLAY DE 7 SEGMENTOS


tiene una estructura casi estándar en cuanto al nombre de los segmentos. Para dicho
elemento, se cuenta con 7 leds, uno para cada segmento. Para cada segmento, se le
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 3 / 32
DISPLAY 7 SEGMENTOS
asigna una letra desde la «a» hasta la «g».  El display tiene por nombre a cada uno de
los siguientes segmentos, es decir, el símbolo del display 7 segmentos es:

TIPOS DE DISPLAY 7 SEGMENTOS


Existen dos tipos principales para los display 7 segmentos. Esta diferencia depende
principalmente del arreglo como están conectados los leds que forman a cada
segmento. Sabemos que un led tiene dos terminales que se denominan: cátodo y
ánodo. El ánodo es la parte positiva del LED, mientras que el cátodo es el pin
negativo. Entonces los tipos de display de 7 segmentos se dividen en aquellos de
cátodo común y los de ánodo común. Entonces el display tendrá además de los 7
segmentos, 1 pin común. Este pin común se conecta al catodo o al anodo
dependiendo del tipo de display.

DISPLAY 7 SEGMENTOS CÁTODO COMÚN


El display cátodo común es aquel que tiene el pin común conectado a los negativos
de los LED’s (cátodo). Esto significa que este tipo de display se «controla» con ‘1’ s
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 4 / 32
DISPLAY 7 SEGMENTOS
lógicos o con voltaje positivo. El arreglo para un display de cátodo común seria el
siguiente:

DISPLAY 7 SEGMENTOS ÁNODO COMÚN


El display ánodo común es aquel cuyos ánodos están conectados al mismo punto.
Este tipo de display es controlado por ceros, es decir que el microcontrolador o MCU,
FPGA o microprocesador, le asigna a cada segmento un cero lógico (también llamada
tierra digital). El esquema o diagrama del display de 7 segmentos en ánodo común
es:
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 5 / 32
DISPLAY 7 SEGMENTOS

FUNCIONAMIENTO 
El display de 7 segmentos funciona al activar y desactivar cada uno de los leds para
formar los números deseados. Por ejemplo, en la siguiente imagen te mostramos
como debe de ser la activación de cada segmento para representar los números 0 y
3.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 6 / 32
DISPLAY 7 SEGMENTOS

2.2. Aplicaciones del display de 7 segmentos, adjunte la imagen de dos equipos donde se
observe su utilización.
APLICACIONES DE LOS DISPLAY 7 SEGMENTOS
Las principales aplicaciones de los displays 7 segmentos son como contadores, relojes
de tiempo real, para desplegar marcadores o algún tipo de cuenta regresiva o
incremental.

Reloj con display de 7


segmentos.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 7 / 32
DISPLAY 7 SEGMENTOS

Marcador electrónico de futbol americano con display 7 segmentos.

III.- RECOMENDACIONES EN SEGURIDAD

3.1. En condiciones de una emergencia Identifique:


 Vías de acceso y evacuación
 Equipos de respuesta a emergencias
 Señalización de seguridad

3.2. Complete el ATS (Anexo 1) y cumpla las condiciones obligatorias para el uso del
ambiente

IV.- EQUIPOS Y MATERIALES A UTILIZAR:


Cantidad Descripción
1 Arduino
1 Ordenador de mesa
1 Tarjeta de control Lucas Nulle
1 Multímetro
1 Placa de pruebas
3 Display de 7 segmentos
1 Juego de cables

V.- PROCEDIMIENTO:
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 8 / 32
DISPLAY 7 SEGMENTOS
5.1. Realizar la conexión de Arduino y el display 7 segmentos. Considerar antes de realizar
la conexión si el display es de tipo cátodo o ánodo común. Adjunte imagen del circuito
montado, así como el diagrama de conexiones (esquemático).

Figura 5.1.1. Esquemático Ánodo Común

Figura 5.1.2. Circuito montado Cátodo Común

5.2. Realizar una aplicación para que el al Arduino pueda mostrar datos en un display, para
esto considerar la creación de una función de la siguiente manera:
MostrarDatoDisplay (int tipoDisplay, int Dato);
Para el tipo Display considerar cero para ánodo común y uno para cátodo común. Adjunte el
código de la función, así como la imagen del circuito mostrando un dato.
/* [Link] file generated by New Project wizard
*
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 9 / 32
DISPLAY 7 SEGMENTOS
* Created:   vie. Abr. 24 2020
* Processor: Arduino Uno
* Compiler:  Arduino AVR (Proteus)
*/
int a = 13;
int b = 12;
int c = 11;
int d = 10;
int e = 9;
int f = 7;
int g = 8;

void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);   
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT); }

void loop() {
MostrarDato (1, 11);
}

int MostrarDato (int tipoDisplay, int Dato ) {


if  (tipoDisplay == 1){  //CÁTODO COMÚN

if (Dato==0){
 //CERO
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, LOW);
 digitalWrite(g, HIGH);
 delay(1000); }
if (Dato==1){
 //UNO
 digitalWrite(a, LOW);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, LOW);
 digitalWrite(f, LOW);
 digitalWrite(g, LOW);
 delay(1000); }
if(Dato==2){
 //DOS
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, LOW);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, LOW);
 delay(1000); }
if(Dato==3){
 //TRES
 digitalWrite(a, HIGH);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 10 / 32
DISPLAY 7 SEGMENTOS
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, LOW);
 delay(1000);}
if(Dato==4){
 //CUATRO
 digitalWrite(a, LOW);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==5){
 //CINCO
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==6){
 //SEIS
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==7){
 //SIETE
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, LOW);
 digitalWrite(f, LOW);
 digitalWrite(g, LOW);
 delay(1000); }
if(Dato==8){
 //OCHO
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000); }
if(Dato==9){
 //NUEVE
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 11 / 32
DISPLAY 7 SEGMENTOS
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000); }
if(Dato==10){
 //A
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==11){
 //B
 digitalWrite(a, LOW);
 digitalWrite(b, LOW);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==12){
 //C
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, LOW);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, LOW);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==13){
 //D
 digitalWrite(a, LOW);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, LOW);
 delay(1000);}
if(Dato==14){
 //E
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, LOW);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==15){//F
 //F
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, LOW);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 12 / 32
DISPLAY 7 SEGMENTOS
 digitalWrite(d, LOW);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
  else if(tipoDisplay==0){
if (Dato==0){   //ÁNODO COMÚN
 //CERO
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, LOW);
 digitalWrite(g, HIGH);
 delay(1000); }
if (Dato==1){
 //UNO
 digitalWrite(a, LOW);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, LOW);
 digitalWrite(f, LOW);
 digitalWrite(g, LOW);
 delay(1000); }
if(Dato==2){
 //DOS
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, LOW);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, LOW);
 delay(1000); }
if(Dato==3){
 //TRES
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, LOW);
 delay(1000);}
if(Dato==4){
 //CUATRO
 digitalWrite(a, LOW);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==5){
 //CINCO
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, HIGH);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 13 / 32
DISPLAY 7 SEGMENTOS
 digitalWrite(d, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==6){
 //SEIS
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==7){
 //SIETE
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, LOW);
 digitalWrite(f, LOW);
 digitalWrite(g, LOW);
 delay(1000); }
if(Dato==8){
 //OCHO
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000); }
if(Dato==9){
 //NUEVE
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, LOW);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000); }
if(Dato==10){
 //A
 digitalWrite(a, HIGH);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, LOW);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==11){
 //B
 digitalWrite(a, LOW);
 digitalWrite(b, LOW);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 14 / 32
DISPLAY 7 SEGMENTOS
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==12){
 //C
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, LOW);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, LOW);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==13){
 //D
 digitalWrite(a, LOW);
 digitalWrite(b, HIGH);
 digitalWrite(c, HIGH);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, LOW);
 delay(1000);}
if(Dato==14){
 //E
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, LOW);
 digitalWrite(d, HIGH);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
if(Dato==15){//F
 //F
 digitalWrite(a, HIGH);
 digitalWrite(b, LOW);
 digitalWrite(c, LOW);
 digitalWrite(d, LOW);
 digitalWrite(e, HIGH);
 digitalWrite(f, HIGH);
 digitalWrite(g, HIGH);
 delay(1000);  }
   }
 }
}

Código 5.2. código de la función


ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 15 / 32
DISPLAY 7 SEGMENTOS

Imagen 5.2.1. circuito montado con un dato

5.3. Modificar la aplicación de tal manera que se obtenga un contador de 0 a 0x0F con un
paso de medio segundo entre números (a revisar).
/* [Link] file generated by New Project wizard
*
* Created:   jue. Abr. 23 2020
* Processor: Arduino Uno
* Compiler:  Arduino AVR (Proteus)
*/
//Declaramos los pines de salida,
int a = 13;
int b =12;
int c = 11;
int d = 10;
int e = 9;
int f = 7;
int g = 8;
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 16 / 32
DISPLAY 7 SEGMENTOS
int tiempo=500;

void setup(){
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);}
void confPuerto(int pin, boolean state);
void MostrarDatoDisplay(int tipoDisplay, int dato);

void digitalWrite(int va, int vb, int vc, int vd, int ve, int vf, int vg){

digitalWrite(a,va);
digitalWrite(b,vb);
digitalWrite(c,vc);
digitalWrite(d,vd);
digitalWrite(e,ve);
digitalWrite(f,vf);
digitalWrite(g,vg);

void loop(){
//Cero
digitalWrite(1,1,1,1,1,0,1);
delay(tiempo);
//Uno
digitalWrite(0,1,1,0,0,0,0);
delay(tiempo);
//Dos
digitalWrite(1,1,0,1,1,1,0);
delay(tiempo);
//Tres
digitalWrite(1,1,1,1,0,1,0);
delay(tiempo);
//Cuatro
digitalWrite(0,1,1,0,0,1,1);
delay(tiempo);
//Cinco
digitalWrite(1,0,1,1,0,1,1);
delay(tiempo);
//Seis
digitalWrite(1,0,1,1,1,1,1);
delay(tiempo);
//Siete
digitalWrite(1,1,1,0,0,0,0);
delay(tiempo);
//Ocho
digitalWrite(1,1,1,1,1,1,1);
delay(tiempo);
//Nueve
digitalWrite(1,1,1,1,0,1,1);
delay(tiempo);
//A
digitalWrite(1,1,1,0,1,1,1);
delay(tiempo);
//B
digitalWrite(0,0,1,1,1,1,1);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 17 / 32
DISPLAY 7 SEGMENTOS
delay(tiempo);
//C
digitalWrite(1,0,0,1,1,0,1);
delay(tiempo);
//D
digitalWrite(0,1,1,1,1,1,0);
delay(tiempo);
//E
digitalWrite(1,0,0,1,1,1,1);
delay(tiempo);
//F
digitalWrite(1,0,0,0,1,1,1);
delay(tiempo);

Código 5.3. contador

5.4. Crear una función de la siguiente manera:


Contar (boolean tipo, int DatoInicial, int DatoFinal);
Considerar tipo cero para tipo decreciente y uno para creciente (a revisar)
/* [Link] file generated by New Project wizard
*
* Created:   vie. Abr. 24 2020
* Processor: Arduino Uno
* Compiler:  Arduino AVR (Proteus)
*/
int a = 13;
int b = 12;
int c = 11;
int d = 10;
int e = 9;
int f = 7;
int g = 8;
int tiempo= 300;

void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}

void loop() {
Contador(1, 0, 15);
}

int Contador(boolean tipo, int DatoInicial, int DatoFinal){

     if (tipo==0){// decreciente


         int c=DatoInicial ;
         for(c<16; (c !=(DatoFinal-1)); c--) {
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 18 / 32
DISPLAY 7 SEGMENTOS
        MostrarDato(c);   }  }
        
 if(tipo==1){//creciente
    int d=DatoInicial ;
   for(d<16;d != (DatoFinal +1); d++){
        MostrarDato(d);}}

   }
int MostrarDato(int Dato){
       if (Dato==0){
//0
        digitalWrite(a, HIGH);
        digitalWrite(b, HIGH);
        digitalWrite(c, HIGH);
        digitalWrite(d, HIGH);
        digitalWrite(e, HIGH);
        digitalWrite(f, LOW);
        digitalWrite(g, HIGH);
        delay(tiempo);  }
 
      if (Dato==1){
  //UNO
          digitalWrite(a, LOW);
          digitalWrite(b, HIGH);
          digitalWrite(c, HIGH);
          digitalWrite(d, LOW);
          digitalWrite(e, LOW);
          digitalWrite(f, LOW);
          digitalWrite(g, LOW);
          delay(tiempo);  }
    
       if(Dato==2){
  //DOS
          digitalWrite(a, HIGH);
          digitalWrite(b, HIGH);
          digitalWrite(c, LOW);
          digitalWrite(d, HIGH);
          digitalWrite(e, HIGH);
          digitalWrite(f, HIGH);
          digitalWrite(g, LOW);
          delay(tiempo); }
  
      if(Dato==3){
  //TRES
         digitalWrite(a, HIGH);
         digitalWrite(b, HIGH);
         digitalWrite(c, HIGH);
         digitalWrite(d, HIGH);
         digitalWrite(e, LOW);
         digitalWrite(f, HIGH);
         digitalWrite(g, LOW);
        delay(tiempo); }
  
     if(Dato==4){
  //CUATRO
        digitalWrite(a, LOW);
        digitalWrite(b, HIGH);
        digitalWrite(c, HIGH);
        digitalWrite(d, LOW);
        digitalWrite(e, LOW);
        digitalWrite(f, HIGH);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 19 / 32
DISPLAY 7 SEGMENTOS
        digitalWrite(g, HIGH);
        delay(tiempo);  }
  
     if(Dato==5){
   //CINCO
        digitalWrite(a, HIGH);
        digitalWrite(b, LOW);
        digitalWrite(c, HIGH);
        digitalWrite(d, HIGH);
        digitalWrite(e, LOW);
        digitalWrite(f, HIGH);
        digitalWrite(g, HIGH);
        delay(tiempo); }
  
     if(Dato==6){
    //SEIS
       digitalWrite(a, HIGH);
       digitalWrite(b, LOW);
       digitalWrite(c, HIGH);
       digitalWrite(d, HIGH);
       digitalWrite(e, HIGH);
       digitalWrite(f, HIGH);
       digitalWrite(g, HIGH);
       delay(tiempo);   }
 
   if(Dato==7){
    //SIETE
     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, LOW);
     digitalWrite(e, LOW);
     digitalWrite(f, LOW);
     digitalWrite(g, LOW);
     delay(tiempo);  }
  
   if(Dato==8){
  //OCHO
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      delay(tiempo);   }
  
  
    if(Dato==9){
      //NUEVE
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      delay(tiempo); }
  
   if(Dato==10){//A
     //A
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 20 / 32
DISPLAY 7 SEGMENTOS
     digitalWrite(a, HIGH);
     digitalWrite(b, HIGH);
     digitalWrite(c, HIGH);
     digitalWrite(d, LOW);
     digitalWrite(e, HIGH);
     digitalWrite(f, HIGH);
     digitalWrite(g, HIGH);
     delay(tiempo);  }
  
  if(Dato==11){//B
    //B
    digitalWrite(a, LOW);
    digitalWrite(b, LOW);
    digitalWrite(c, HIGH);
    digitalWrite(d, HIGH);
    digitalWrite(e, HIGH);
    digitalWrite(f, HIGH);
    digitalWrite(g, HIGH);
    delay(tiempo);  }
  
 if(Dato==12){
      //C
    digitalWrite(a, HIGH);
    digitalWrite(b, LOW);
    digitalWrite(c, LOW);
    digitalWrite(d, HIGH);
    digitalWrite(e, HIGH);
    digitalWrite(f, LOW);
    digitalWrite(g, HIGH);
    delay(tiempo);  }
  
 if(Dato==13){
       //D
    digitalWrite(a, LOW);
    digitalWrite(b, HIGH);
    digitalWrite(c, HIGH);
    digitalWrite(d, HIGH);
    digitalWrite(e, HIGH);
    digitalWrite(f, HIGH);
    digitalWrite(g, LOW);
    delay(tiempo); }
  
 if(Dato==14){
      //E
   digitalWrite(a, HIGH);
   digitalWrite(b, LOW);
   digitalWrite(c, LOW);
   digitalWrite(d, HIGH);
   digitalWrite(e, HIGH);
   digitalWrite(f, HIGH);
   digitalWrite(g, HIGH);
   delay(tiempo); }
  
 if(Dato==15){
       //F
   digitalWrite(a, HIGH);
   digitalWrite(b, LOW);
   digitalWrite(c, LOW);
   digitalWrite(d, LOW);
   digitalWrite(e, HIGH);
   digitalWrite(f, HIGH);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 21 / 32
DISPLAY 7 SEGMENTOS
   digitalWrite(g, HIGH);
   delay(tiempo);}
  }

Figura 5.4. código de la función

5.5. Modificar el circuito de tal manera que Arduino pueda controlar tres display, también
modificar el código de tal manera que muestre los tres últimos dígitos de CUI de uno de los
integrantes.

Imagen 5.5.1. circuito montado

/* [Link] file generated by New Project wizard


*
* Created:   jue. Abr. 23 2020
* Processor: Arduino Uno
* Compiler:  Arduino AVR (Proteus)
*/
void puerto(int bits,int ini,int fin);
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 22 / 32
DISPLAY 7 SEGMENTOS
//Display 7 Segmentos Catodo Común
int display7c[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

//Delcaración de Los Pines del Display


byte a=2;
byte b=3;
byte c=4;
byte d=5;
byte e=6;
byte f=7;
byte g=8;
// Declaración de los Pines de los Transistores
byte t1=9;
byte t2=10;
byte t3=11;
byte t4=12;

//Contadores para hacer el Temporizador


long tempor=0,contret=0;
//Función que coloca en el puerto de salida los bits comenzando
// desde el pin ini hasta el pin fin
void puerto(int bits,int ini,int fin){
for(int i=ini;i<=fin;i=i+1)
{
digitalWrite(i,bitRead(bits,i-ini));
}
}

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
//Función encargada de la multiplexación
void mostrar( ) //Rutina mostrar
{
int dig[4];   //Declarar las variables
//como un entero, es decir de 8bits
//Dígito Centena
dig[1]=(tempor-dig[0]*1000)/100;
//Dígito Decena
dig[2]=(tempor-dig[0]*1000-dig[1]*100)/10;
//Dígito Unidad
dig[3]=(tempor-dig[0]*1000-dig[1]*100-dig[2]*10);
//Rutina de Multiplexación
for(int i=t1;i<=t4;i=i+1){
//Muestra unidades
puerto(display7c[dig[i-t1]],a,g);
digitalWrite(i,HIGH);  //Enciende el display de unidades
delay(1);               //Retardo de 1 milisegundos
digitalWrite(i,LOW);   //Apaga el display de unidades
}                      
}

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
//Función que cuenta el tiempo que le toma al temporizador
//incrementar su cuenta
void temporizacion()
{
contret=1;       //Cargue con 50 la variable CONTRET
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 23 / 32
DISPLAY 7 SEGMENTOS
while (contret>0) //Mientras que la variable CONTRET sea mayor que cero
{
mostrar();        //Llamar la rutina MOSTRAR
contret=contret-1;        // Decremente la variable CONTRET
}
}

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
//Configura todos los pines como Salidas excepto el de paso mayor menor decremento e
incremento.
void setup() {
pinMode(13,INPUT);
pinMode(t1,INPUT);
pinMode(0,INPUT);
pinMode(1,INPUT);
for(int i=a;i<=g;i++){
pinMode(i,OUTPUT);
}
for(int i=t2;i<=t4;i++){
pinMode(i,OUTPUT);
}
}

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
//Programa Principal
void loop() {
tempor=479;  //Inicializa el temporizador en 479 ultimos digitos del cui 20163479
while(tempor<999) //mientras la variable TEMPOR es menor que 9999
  {
  temporizacion(); //Llama la Función Temporizaor
  tempor=tempor+0;        //Incrementa el tempor
   }
}

Código 5.5. Tres dígitos

5.6. Crear una función de la siguiente manera:


Contar (boolean tipo, int DatoInicial, int DatoFinal, int paso);
Considerar tipo cero para tipo decreciente y uno para creciente y el paso de incremento entre
números, (a revisar)
/* [Link] file generated by New Project wizard
*
* Created:   jue. Abr. 23 2020
* Processor: Arduino Uno
* Compiler:  Arduino AVR (Proteus)
*/
//INTRODUCCION DE LAS FUNCIONES
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 24 / 32
DISPLAY 7 SEGMENTOS
void MostrarDatoDisplay(int tipoDisplay, int dato);
void contar (boolean tipo, int DatoInicial, int DatoFinal);
//INTRODUCIMOS OTRA VEZ LA FUNCION POR EL USO DE TRES DISPLAY Y CONDICIONES
void MostrarDatoDisplay2();
void contarnext(boolean tipo, int datoInicial, int datoFinal, int paso);

void setup()
{ // PINES SELECCIONADOS DE SALIDA
  pinMode(1,true);
  pinMode(2,true);
  pinMode(3,true);
 pinMode(4,true);
 pinMode(5,true);
  pinMode(6,true);
  pinMode(7,true);
  
  //PINES DE CONTROL
  pinMode(8,true);
  pinMode(9,true);
 pinMode(10,true);
}

void loop(){
  contarnext(1,24,39,3); // TIPO DE DATO, DATO INICIAL ,DATO FINAL, PASO DE
INCREMENTO ENTRE NUMEROS
}

void contarnext(boolean tipo, int datoInicial, int datoFinal, int paso){


  int contador=datoInicial,auxIni,aux, mile, resMil, cente, resCen;
  auxIni=datoInicial;
  while(1){
     mile=contador/100;  
     resMil=contador%100;  
     cente=resMil/10;    
     resCen=resMil%10;   
     
     if(tipo==0){ //DECRECIMIENTO
  contador=contador-paso;
  MostrarDatoDisplay2(mile,cente,resCen);
  if(contador<=-2){
     contador=999;
  }
  else if(contador<=datoFinal-1){
     contador=auxIni;
  }
     }
     else if(tipo==1){ // CRECIMIENTO
  contador=contador+paso;
  MostrarDatoDisplay2(mile,cente,resCen);// LA SEGUNDA FUNCION MUESTRA LOS DIGITOS
  if(contador>=1001){
     contador=0;
  }
  else if(contador>=datoFinal+1){
     contador=auxIni;
  }
     }  
  }
}

void MostrarDatoDisplay2(int dig1, int dig2, int dig3){


int conta=0;
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 25 / 32
DISPLAY 7 SEGMENTOS
 while(conta<50){
     
     PORTB^=(1<<DDB0);     //DISPLAY DOS ACTIVO
     MostrarDatoDisplay(0,dig1);
     delay(1);
     
     PORTB^=(1<<DDB0);     //CAMBIO DE ESTADO DE DISPLAY DOS
     PORTB^=(1<<DDB1);     //DISPLAY TRES ACTIVO
     MostrarDatoDisplay(0,dig2);
     delay(1);
     
     PORTB^=(1<<DDB1);     //CAMBIO DE ESTADO DE DISPLAY TRES
     PORTB^=(1<<DDB2);     //DISPLAY CUATRO ACTIVO
     MostrarDatoDisplay(0,dig3);
     delay(1);
     
     PORTB^=(1<<DDB2);     //CAMBIO DE ESTADO DE DISPLAY CUATRO
     conta++;//CONTADOR
     }
}

void contar (boolean tipo, int DatoInicial, int DatoFinal){


int auxIni= DatoInicial;
  while(1){
     MostrarDatoDisplay(0,DatoInicial);
     if(tipo==1){
  DatoInicial++;
  if(DatoInicial==DatoFinal+1){
     DatoInicial=auxIni;
  }
  else if(DatoInicial==16){
     DatoInicial=0;
  }  
     }
     else if(tipo==0){
  DatoInicial--;
  if(DatoInicial==-1){
     DatoInicial=15;
  }
  else if(DatoInicial==DatoFinal-1){
     DatoInicial=auxIni;
  }
     }
     delay(200);
     }
}

void MostrarDatoDisplay(int tipoDisplay, int dato){


  if(tipoDisplay==1){ //SI EL DISPLAY ES CATODO COMUN
     switch(dato){
  case 0: //0
     PORTD=0b11111100;//LE DAMOS SALIDAS A LOS PINES
     break;
  case 1: //1
     PORTD=0b01100000;
     break;
  case 2: //2
     PORTD=0b11011010;
     break;
  case 3: //3
     PORTD=0b11110010;
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 26 / 32
DISPLAY 7 SEGMENTOS
     break;
  case 4: //4
     PORTD=0b01100110;
     break;
  case 5: //5
     PORTD=0b10110110;
     break;
  case 6: //6
     PORTD=0b10111110;
     break;
  case 7: //7
     PORTD=0b11100000;
     break;
  case 8: //8
     PORTD=0b11111110;
     break;
  case 9: //9
     PORTD=0b11110110;
     break;
  case 10: //10-A
     PORTD=0b11101110;
     break;
  case 11: //11-b
     PORTD=0b00111110;
     break;
  case 12: //12-C
     PORTD=0b10011100;
     break;
  case 13: //13-d
     PORTD=0b01111110;
     break;
  case 14: //14-E
     PORTD=0b10011100;
     break;
  case 15: //15-F
     PORTD=0b10001100;
     break;
  }
  }
  else if(tipoDisplay==0){ //SI EL DISPLAY ES ANODO COMUN
  switch(dato){
  case 0: //0
     PORTD=0b00000011;
     break;
  case 1: //1
     PORTD=0b10011111;
     break;
  case 2: //2
     PORTD=0b00100101;
     break;
  case 3: //3
     PORTD=0b00001101;
     break;
  case 4: //4
     PORTD=0b10011001;
     break;
  case 5: //5
     PORTD=0b01001001;
     break;
  case 6: //6
     PORTD=0b01000001;
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 27 / 32
DISPLAY 7 SEGMENTOS
     break;
  case 7: //7
     PORTD=0b00011111;
     break;
  case 8: //8
     PORTD=0b00000001;
     break;
  case 9: //9
     PORTD=0b00001001;
     break;
  case 10: //10-A
     PORTD=0b00010001;
     break;
  case 11: //11-b
     PORTD=0b11000001;
     break;
  case 12: //12-C
     PORTD=0b01100011;
     break;
  case 13: //13-d
     PORTD=0b10000101;
     break;
  case 14: //14-E
     PORTD=0b01100001;
     break;
  case 15: //15-F
     PORTD=0b01110001;
     break;
     }
  }
}

void confPuerto(int pin, boolean state){//


  if(state==true || state==false){
     switch(pin){
  case 0:
     DDRD|=(state<<DDD0);
     break;
  case 1:
     DDRD|=(state<<DDD1);
     break;
  case 2:
     DDRD|=(state<<DDD2);
     break;
  case 3:
     DDRD|=(state<<DDD3);
     break;
  case 4:
     DDRD|=(state<<DDD4);
     break;
  case 5:
     DDRD|=(state<<DDD5);
     break;
  case 6:
     DDRD|=(state<<DDD6);
     break;
  case 7:
     DDRD|=(state<<DDD7);
     break;
  case 8:
     DDRB|=(state<<DDB0);
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 28 / 32
DISPLAY 7 SEGMENTOS
     break;
  case 9:
     DDRB|=(state<<DDB1);
     break;
  case 10:
     DDRB|=(state<<DDB2);
     break;
  case 11:
     DDRB|=(state<<DDB3);
     break;
  case 12:
     DDRB|=(state<<DDB4);
     break;
  case 13:
     DDRB|=(state<<DDB5);
     break;
     }
  }
}

Código 5.6. Código completo de la aplicación (como texto y no como imagen)

VI.- CUESTIONARIO:
6.1.- Cuestionario:

6.1.1.- ¿Cuál es el valor de la resistencia a añadir para un correcto funcionamiento?

Un display trabajos con 7 leds cada led trabaja con tensiones y corrientes bajas por lo
tanto se pueden conectar directamente a compuertas lógicas o pines de salida de un micro
controlador, sin embargo para aumentar la vida útil de los mismos es recomendable
conectarle una resistencia en serie entre el pin de salida del microcontrolador y el de
entrada del 7 segmentos, la intensidad lumínica en este caso dependerá del valor de la
resistencia agregada.
Para calcular el valor de dicha resistencia se realizara los siguientes cálculos:

Teniendo en cuenta que los display tienen leds, el valor de Vcc del led dependerá de su
color. Para un color rojo Vcc= 1.7V y de forma general Vcc = 1.5V. Y la corriente media
que se le debe aplicar es de 15mA.
Por lo tanto para calcular el valor de la resistencia solo hace falta usar la ley de Ohm.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 29 / 32
DISPLAY 7 SEGMENTOS
V R1
R 1=
I

V 1−VCC 5−1.5
R 1= = =230 Ω
15 mA 15 mA

6.1.2.- ¿Cómo se realiza la tarea para mostrar datos en tres displays?

VII.- OBSERVACIONES Y CONCLUSIONES:

- Dar sus observaciones y conclusiones de forma personal, en forma clara y empleando el


menor número de palabras.

Observaciones

Conclusiones (dos por integrante).



ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
EN TELECOMUNICACIONES 20/03/2020
LABORATORIO LIFE
Página
EXPERIENCIA 1: 30 / 32
DISPLAY 7 SEGMENTOS
VIII.- BIBLIOGRAFIA:

Rubrica: Laboratorio 01
Puntualidad

Porcentaje %
Fundamento teórico

Observaciones Conclusiones

Preguntas individual

Total
Desarrollo de experiencias

Bibliografía

5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5. 5.10


9
1 2 1.5 1.5 1.5 1.5 1.5 1.5 - - - - 1.5 0.5 6 20 20

Mg. HUARCA Jorge


Docente DAIE
Anexo 1 Fecha 16/12/201
ATS: Análisis de trabajo seguro 9
Versión V1/03/20
Código ATS20V1
Curso: Tarea: Docente:
Ambiente: Grupo: Mesa: Fecha:
Integrantes (Apellidos y nombres) Firma Integrantes (Apellidos y nombres) Firma
1. 2.

3. 4.
Elementos de protección (Marque con aspa) Características de elementos de protección, equipos y herramientas

1. ____________________________________________________________
USO OBLIGATORIO
DEL CASCO DE
USO OBLIGATORIO
DE BOTAS AISLANTES
USO OBLIGATORIO
DE GUANTES
USO OBLIGATORIO
DE PROTECCIÓN
USO
OBLIGATORIO DE
USO
OBLIGATORIO DE
2. ____________________________________________________________
SEGURIDAD AISLANTES OCULAR MASCARILLA PROTECTOR
FACIAL
3. ____________________________________________________________
4. ____________________________________________________________

USO OBLIGATORIO APAGAR USO OBLIGATORIO OBLIGATORIO USO OTRO


5. ____________________________________________________________
DE PROTECCIÓN DESCONECTAR DE PROTECTOR CONECTAR A OBLIGATORIO DE
AUDITIVA CUANDO NO SE USE AJUSTABLE TIERRA TRAJE DE
SEGURIDAD

Acciones a realizar Otros riesgos en las acciones


(marque con aspa las advertencias por cada a realizar, considerar
acción) medidas de control
1.
2. 1._________________________
3. ___________________________
4.
5. 2._________________________
6. ___________________________
3. _________________________

También podría gustarte