LabMIyL - MieV4 - 6,8 - E2 - P4
LabMIyL - MieV4 - 6,8 - E2 - P4
LabMIyL - MieV4 - 6,8 - E2 - P4
Las partes esenciales que componen estos dispositivos incluyen la carcasa que los
protege, los terminales para la conexión, los LEDs que emiten la luz y el punto decimal.
• Protoboard.
En cuanto a los LED (diodos emisores de luz), estos dispositivos permiten que la
corriente fluya en una dirección y emiten luz cuando están polarizados. Estos
componentes suelen funcionar a alrededor de 2 V. Su funcionamiento es sencillo: cuando
se aplica corriente al semiconductor superior de un LED, una corriente fluye a través de
él provocando la emisión de luz. Algunas características notables de los LED incluyen:
• Conductores: Estos materiales tienen una resistencia eléctrica muy baja, lo que
permite que los electrones se muevan fácilmente a través de ellos. Ejemplos de
conductores son la plata, el cobre, el oro y el aluminio.
• Aislante: Por el contrario, los materiales aislantes tienen una alta resistencia
eléctrica y restringen el flujo de electrones. Ejemplos de aislantes son el caucho,
el papel, el vidrio, la madera y el plástico.
Imagen del Diagrama Esquemático hecho en un software EDA con los
nombres de sus integrantes (25 puntos)
Imagen del diagrama de flujo del programa (10 puntos)
Código en lenguaje C con los nombres de sus integrantes (copia y
pega el código directamente del IDE) (15 puntos)
/*
* Práctica 4.c
*
* Created: 11/09/2023 11:12:46 a. m.
* Author : Javie
* Docente: Jesús Daniel Garza Camarena
*
* Equipo 2
*
* Marcos Ezequiel Cervantes Castro #1953168 N.L: 6
* Javier Osmar Covarrubias Bautista #1958896 N.L: 8
* Brigada: 315
* Dia y hora: Miercoles, V4
*
* Fecha: 20/09/2023
*/
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
//--Constantes
#define DELAY 500
//---Definiciones
//--Inputs
#define SWITCH_DDRX DDRC
#define SWITCH_PORTX PORTC
#define SWITCH_PINX PINC
#define SWITCH_0 PINC3
//--Outputs
//---Puertos para segmentos A a F
#define DISPLAY_DDRX DDRD
#define DISPLAY_PORTX PORTD
#define DISPLAY_DDRX2 DDRB
#define DISPLAY_PORTX2 PORTB
//----Segmento A
#define SEG_A PORTD2
#define SEG_A_ON DISPLAY_PORTX |= _BV(SEG_A);
#define SEG_A_OFF DISPLAY_PORTX &= ~_BV(SEG_A);
//----Segmento B
#define SEG_B PORTD3
#define SEG_B_ON DISPLAY_PORTX |= _BV(SEG_B);
#define SEG_B_OFF DISPLAY_PORTX &= ~_BV(SEG_B);
//----Segmento C
#define SEG_C PORTD4
#define SEG_C_ON DISPLAY_PORTX |= _BV(SEG_C);
#define SEG_C_OFF DISPLAY_PORTX &= ~_BV(SEG_C);
//----Segmento D
#define SEG_D PORTD5
#define SEG_D_ON DISPLAY_PORTX |= _BV(SEG_D);
#define SEG_D_OFF DISPLAY_PORTX &= ~_BV(SEG_D);
//----Segmento E
#define SEG_E PORTD6
#define SEG_E_ON DISPLAY_PORTX |= _BV(SEG_E);
#define SEG_E_OFF DISPLAY_PORTX &= ~_BV(SEG_E);
//----Segmento F
#define SEG_F PORTD7
#define SEG_F_ON DISPLAY_PORTX |= _BV(SEG_F);
#define SEG_F_OFF DISPLAY_PORTX &= ~_BV(SEG_F);
//----Segmento G
#define SEG_G PORTB2
#define SEG_G_ON DISPLAY_PORTX2 |= _BV(SEG_G);
#define SEG_G_OFF DISPLAY_PORTX2 &= ~_BV(SEG_G);
void init_ports(void);
void show_number(uint8_t numero);
int main(void)
{
init_ports();
uint8_t i = 0;
while (1)
{
i = 0;
while(i < 16)
{
show_number(i);
init if (!(SWITCH_PINX & _BV(SWITCH_0)))
{
i = i;
}//--Fin if
else
{
i++;
}//--Fin else
_delay_ms(DELAY);
}//--Fin while
}//--Fin while principal
}//--Fin main
//--Funciones
void init_ports(void)
{
//--Inputs
SWITCH_DDRX &= ~(_BV(SWITCH_0));
SWITCH_PORTX |= (_BV(SWITCH_0));
//--PULL-UP
DISPLAY_DDRX |= (_BV(SEG_A) | _BV(SEG_B) | _BV(SEG_C) |
_BV(SEG_D) | _BV(SEG_E) | _BV(SEG_F) | _BV(SEG_G));
DISPLAY_PORTX &= ~(_BV(SEG_A) | _BV(SEG_B) | _BV(SEG_C) |
_BV(SEG_D) | _BV(SEG_E) | _BV(SEG_F) | _BV(SEG_G));
DISPLAY_DDRX2 |= (_BV(SEG_A) | _BV(SEG_B) | _BV(SEG_C) |
_BV(SEG_D) | _BV(SEG_E) | _BV(SEG_F) | _BV(SEG_G));
DISPLAY_PORTX2 &= ~(_BV(SEG_A) | _BV(SEG_B) | _BV(SEG_C) |
_BV(SEG_D) | _BV(SEG_E) | _BV(SEG_F) | _BV(SEG_G));
}
//--Show number
}
Fotografía de solo el área útil del prototipo armado, sin usar jumpers
en las conexiones del protoboard, si se pueden usar desde la tarjeta
de desarrollo (5 puntos)
2. ¿Qué diferencia existe entre colocar una sola resistencia al pin común a
conectar una resistencia a cada segmento?
Por otro lado, si ponemos una resistencia a cada uno, aunque gastamos más
pines, podemos tener un mayor control de luminosidad en cada segmento
Conclusión personal por cada integrante (5 puntos)
Javier Osmar Covarrubias Bautista: Por medio de esta práctica aprendí a controlar un
display de 7 segmentos de cátodo común por medio de un microcontrolador Arduino
ATmega328P. Para esto hice uso del comando Switch para poder declarar como es que
se iba a prender el display dependiendo del numero en el que estuviese, además de que
asigne los pines de entrada y salida que mas me convenian a la hora de conectar el
ATmega328P al protoboard, finalmente, solo nos quedaba asignar el pin que ocuparía el
botón y crear un comando el cual haría que el botón cumpliera la función de pausa. Por
lo que con todo esto dicho puedo decir que la practica fue un éxito debido a que logramos
realizar todo lo que nos propusimos.