Vous êtes sur la page 1sur 10

Sistemas de Manufactura Flexible

Universidad Tecnológica De Querétaro

Lab 6.1

Materia:

Dispositivos Digitales Programables

Prof.:

Dr. José Felipe Aguilar Pereyra

Integrantes:

José Ernesto Olvera Vargas

ITA 37
Sistemas de Manufactura Flexible

Planteamiento del problema

Exhibir la temperatura del sensor interno del microcontrolador


TM4C123G a un display de 7 segmentos de 4 dígitos, pudiendo
cambiar la temperatura en grados Celsius y Fahrenheit.

Requerimientos del cliente:

El cliente requiere medir la temperatura interna del sensor interno del


microcontrolador esta deberá ser mostrada en un display de 7
segmentos de 4 digitos en grados Celsius, por medio de botones
pulsadores cambiar el tipo de exhibidor a Fahrenheit con una
frecuencia minima de 1Hz.

Propuesta

Por medio del sensor interno de la TM4C123G y un display de 7


segmentos de 4 digitos se mostrara la temperatura del entorno,
además de un botón pulsador para intercambiar entre diferentes
sistemas de temperaturas que serán grados Celsius y grados
Farhenheit, direccionando el botón hacia la entrada PE1 del
microcontrolador, cuando este se encuentre en alto (1) deberá exhibir
en Fahrenheit y cuando este se encuentre en bajo (0) deberá mostrarse
la temperatura en grados Celsius.
Para el exhibidor utilizara un display de 4 dígitos a 7 segmentos de
cátodo común y este mostrara solo 3 enteros y 1 decimal. Para la
selección de cada display se utilizará el puesto D las terminales PD0,
Sistemas de Manufactura Flexible

PD1, PD2 y PD3 también se utilizará la terminal PD6 para activar el


punto del display 2.

Otro dispositivo integrado que se utilizara para el control del display


de 7 segmentos sera el 74LS 47, el cual es un decodificador de 7
segmentos, tiene 4 líneas de entrada A, B, C y D, y siete líneas de
salida a, b, c, d, e, f y g. Para indicarle el número en las líneas de
entrada (A, B, C, D) se utilizará el puesto B las terminales PB0, PB1,
PB2, y PB3 respectivamente. Y las salidas de este integrado se
conectarán al display para así poder exhibir el número.

Figura 1. 74LS47

Se utilizará el ADC con una resolución de 12 bits, simplemente


permitiremos que ADC12 se ejecute a su tasa predeterminada de
1Msps.el sensor que se utilizara para obtener los datos será sensor de
temperatura que se encuentra en el chip. Utilizaremos el ADC0 y el
secuenciador 1.
Sistemas de Manufactura Flexible

También calculará el promedio de las muestras las cuales se


guardarán en una variable para obtener una mayor precisión y de
esta se calculará la temperatura en centígrados Celsius y en grados
Fahrenheit.
Por ultimo para la etapa de potencia se utilizará un transistor 2n2222
NPN, el cual estará configurado como switch para poder llevar acabo
la conmutación.

Figura 2. Transistor 2N222.


Sistemas de Manufactura Flexible

Diagrama de bloques

Puerto D
1
PD0
PD1 Etapas de 2
PD2 potencia 3
PD3 4
PD6
Etapa de P
potencia
TM4C123G
a
b
a
b
Display
Puerto B
A c c
PB0
PB1 B d d
PB2 C 72LS47 e e
D f f
PB3
g g

Puerto E Switch C.
PE1
Sistemas de Manufactura Flexible

Tabla de descripción
TERMINAL NOMBRE FUNCIÓN TIPO

PB0 Salida PB0 BIT 1=1 (menos significativo) A (74LS47) GPIO

PB1 Salida PB1 BIT 2=2, B (74LS47) GPIO

PB2 Salida PB2 BIT 3=4, C (74LS47) GPIO

PB3 Salida PB3 BIT 3=8( más significativo) D (74LS47) GPIO

PD0 Salida PD0 ACTIVAR display 1 GPIO

PD1 Salida PD1 ACTIVAR display 2 GPIO

PD2 Salida PD2 ACTIVAR display 3 GPIO

PD3 Salida PD3 ACTIVAR display 4 GPIO

PD6 Salida PD6 ACTIVAR punto del display 2 GPIO

PE1 Salida PE1 Selección de temperaturas GPIO

Tabla 1. Tabla de descripción de terminales.


Sistemas de Manufactura Flexible
Diagrama eléctrico

Figura 3. Referencia de tensión TM4C123.

Figura 4. Display de 4 digitos, Switch y transistor (Diagrama Proteus).


Sistemas de Manufactura Flexible

Diagrama de flujo

Figura 5. Diagrama de flujo.


Sistemas de Manufactura Flexible

Codigo
/*Universidad Tecnológica De Querétaro
Área: Ingeniería En Tecnologías De La Automatización
Materia: Dispositivos Digitales Programables
Laboratorio 6.1
Presenta: Olvera Vargas José Ernesto
Profesor: Dr. José Felipe Aguilar Pereira
*/
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/sysctl.h"
#include "driverlib/adc.h"

int main(void) // RUTINA PRINCIPAL


{
uint32_t ui32ADC0Value[4]; //CREAR MATRIZ DEL SECUENCIADOR

volatile uint32_t ui32TempAvg; // CREAR VARIABLE PARA ALMACENAR PROMEDIO


volatile uint32_t ui32TempValueC; //CREAR VARIABLE PARA LE TEMPERATURA EN C
volatile uint32_t ui32TempValueF;//CREAR VARIABLE PARA LE TEMPERATURA EN F

SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTA
L_16MHZ); // CONFIGURACION DEL RELOJ DEL SISTEMA A 40MHz
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); //HABILITAR EL PERIFÉRICO DEL
ADC0
//ADCHardwareOversampleConfigure(ADC0_BASE, 64);

ADCSequenceConfigure(ADC0_BASE, 1, ADC_TRIGGER_PROCESSOR, 0); //CONFIGURAR


EL SECUENCIADOR
//CONFIGURACION DE LOS 4 PASOS DEL SECUENCIADOR 1
ADCSequenceStepConfigure(ADC0_BASE, 1, 0, ADC_CTL_TS); //MUESTRA 1
ADCSequenceStepConfigure(ADC0_BASE, 1, 1, ADC_CTL_TS); // MUESTRA 2
ADCSequenceStepConfigure(ADC0_BASE, 1, 2, ADC_CTL_TS); // MUESTRA 3
ADCSequenceStepConfigure(ADC0_BASE,1,3,ADC_CTL_TS|ADC_CTL_IE|ADC_CTL_END
); //CONFIGURAR EL INDICADOR DE INTERRUPCION Y FIN DE DE LA ULTIMA
CONVERSION
ADCSequenceEnable(ADC0_BASE, 1); //HABILITAR EL SECUENCIADOR 1
while(1)
{
ADCIntClear(ADC0_BASE, 1); //LIMPEAR EL ADC
ADCProcessorTrigger(ADC0_BASE, 1); //ACTIVAR CONVERSION DEL ADC
while(!ADCIntStatus(ADC0_BASE, 1, false)) // LA CONVERSION AUN NO SE A
COMPLETADO (FALSE)
{
}
Sistemas de Manufactura Flexible

ADCSequenceDataGet(ADC0_BASE, 1, ui32ADC0Value); //COPIAR LOS DADOS DEL


SECUENCIADOR (GUARDAR)
ui32TempAvg = (ui32ADC0Value[0] + ui32ADC0Value[1] + ui32ADC0Value[2] +
ui32ADC0Value[3] + 2)/4;//CALCULO DEL PROMEDIO DE LOS DATOS DE
TEMPERATURA
ui32TempValueC = (1475 - ((2475 * ui32TempAvg)) / 4096)/10; // CALCULO DE LA
TEMPERATURA EN C
ui32TempValueF = ((ui32TempValueC * 9) + 160) / 5; // CALCULO DE LA
TEMPERATURA EN F

} //FIN DE LA RUTINA PRINCIPAL VOID

Pruebas
En cuanto las pruebas de este laboratorio se llevo a cabo el monitoreo de las
variables de temperatura en °C y °F, ValueC y ValueF respectivamente y el promedio
de la temperatura TempAvg, dentro del programa de Code Compouser como se
muestra en la figura 7.

Figura 7. Observación de las variables Code Compouser.

Bibliografía

Instruments, T. (2013). Workshop TM4C123. Austin TX, 78748: Tiva Microcontrollers.

Vous aimerez peut-être aussi