0% encontró este documento útil (0 votos)
29 vistas9 páginas

Act Fund Control On Off

El documento presenta un proyecto de control on-off para un LED RGB mediante un ADC. Se describe el problema a resolver, los objetivos y se presentan diagramas de flujo y funciones para implementar un código que encienda el LED en color azul para valores menores a 50%, verde entre 50-60% y rojo para valores mayores a 60% basándose en la señal analógica leída.

Cargado por

Janeth Cardiel
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
29 vistas9 páginas

Act Fund Control On Off

El documento presenta un proyecto de control on-off para un LED RGB mediante un ADC. Se describe el problema a resolver, los objetivos y se presentan diagramas de flujo y funciones para implementar un código que encienda el LED en color azul para valores menores a 50%, verde entre 50-60% y rojo para valores mayores a 60% basándose en la señal analógica leída.

Cargado por

Janeth Cardiel
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 PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA

Diseño de Sistemas Embebidos


Docente: Dr. Héctor Gilberto Barrón González

Actividad Fundamental 1: Control On-Off.

Nombre: Janeth Jamilet Cardiel Cortes Matricula: 1867586

Hora: V4 Salón: 7215


Brigada: 002 Plan: 401
Contenido
1.- Descripción del Problema .............................................................................................................. 3
2.- Objetivo .......................................................................................................................................... 3
3.- Diagrama de Flujo Propuesto......................................................................................................... 4
4.- Diagrama de la Implementación del Circuito (Si fue requerido) ................................................... 6
5.- Evidencia Grafica (Si existe un circuito) ......................................................................................... 7
6.- Prototipos de funciones principales .............................................................................................. 7
1.- Descripción del Problema

Se requiere elaborar un circuito que simule el funcionamiento de un control on – off en un indicador


visual (Led RGB). Este circuito deberá operar estableciendo un color para cada uno de los rangos de
trabajo del control cuya señal de referencia provendrá de la lectura de una señal analógica. Para
elaborar el circuito considere las siguientes instrucciones:

1.- 0-4096 = 0-100% rango total de la conversión en porcentaje


2.- Utilizar un led RGB para iluminar en color Azul cuando el valor del adc sea menor a 50%,Color
Verde entre 50 y 60% y color rojo cuando el valor del ADC sea mayor a 60%.

2.- Objetivo
• Desarrollar un código que permita configurar el ADC en 12 bits para lograr el rango
operativo que plantea el problema.
• Elaborar un pequeño algoritmo de control que tome la decisión de establecer el color
adecuado tomando como referencia y retroalimentación el valor de la señal analógica y
los rangos establecidos para cada color.
3.- Diagrama de Flujo Propuesto

INICIO

# define RED pin_ 6


#define GREEN pin_7
#define BLUE pin_6
UNIT 32_t ADCValue=0;
UNIT8_t VP=0;

NO
WHILE
END

SI
HAL_ADC_STAR(&HADC1);

HADC1=HA SI
ADCVALUE=
L_OK HAL_ADC_GETVALUE(&HA
DC1);

NO

HAL_ADC_STOP(&HADC1);

VP=ADCVALUE(100)/40
.96
SI BLUE
BP<50 HAL_GIO_WRITEPIN (gioa, red, gpio_pin_reset);
HAL_GIO_WRITENPIN(gioa, green, gpio_pin_reset);
HAL_GIO WRITENPIN(giob, blue gpio_pin_set);

NO

Vp>=50 SI GREEN
& HAL_GIO_WRITEPIN (gioa, red, gpio_pin_reset);
HAL_GIO_WRITENPIN(gioa, green, gpio_pin_set);
Vp<60 HAL_GIO WRITENPIN(giob, blue gpio_pin_reset);

NO

SI RED
VP>60 HAL_GIO_WRITEPIN (gioa, red, gpio_pin_set);
HAL_GIO_WRITENPIN(gioa, green, gpio_pin_reset);
HAL_GIO WRITENPIN(giob, blue gpio_pin_reset);

NO
4.- Diagrama de la Implementación del Circuito
5.- Evidencia Grafica (Fotografía)
6.- Prototipos de funciones principales

while
{

HAL_ADC_Start(&hadc1);
if(HAL_ADC_PollForConversion(&hadc1, 5)==HAL_OK)
{
ADCValue=HAL_ADC_GetValue(&hadc1);
}
HAL_ADC_Stop(&hadc1);
VP=(ADCValue*100)/4096;
if(VP<50)
{

HAL_GPIO_WritePin(GPIOB, RED+GREEN+BLUE,
GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, BLUE, GPIO_PIN_SET);
}
else if(VP>=50 && VP<=60)
{

HAL_GPIO_WritePin(GPIOB, RED+GREEN+BLUE,
GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GREEN, GPIO_PIN_SET);
}else
{

HAL_GPIO_WritePin(GPIOB, RED+GREEN+BLUE,
GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, RED, GPIO_PIN_SET);
}
DESCRIPCIÓN

1.En la línea 1, while, inicia el loop infinito.

2.La línea 3 inicia la conversión de la entrada analógica mediante la instrucción


HAL_ADC_Start,

3.La línea 4 condiciona a saber si se ejecutó la conversión del canal correctamente si


es el caso avanza a la sig. funcion.

4.En la línea 6 se obtiene el valor medido por el convertidor ADC con la instrucción
HAL_ADC_GetValue(&hadc1) y se guarda en la variable ADCValue.

5.En la línea 8 termina la conversión del ADC.

6.En la línea 9, se hace la operación para obtener el porcentaje del voltaje que se está
suministrado mediante por parte del ADC con la multiplicación de la variable adcValue
y eso dividido entre 4096, almacenándose en la variable VP.

7.En la línea 10, se condiciona que el valor de VP por medio de una instrucción if que
sea menor de 50 para poder ejecutar la instrucción del caso verdadero en caso de no
serlo pasara a la sig. Función if.

8.En la línea 12 de haberse cumplido la condición del If de la línea 10 este ejecutara


un reinicio de los pines BLUE, GREEN, Y RED para después mandar una instrucción
de que encienda el pin BLUE.

9.En la línea 15, al no haber cumplido la condición anterior procederá a verificar si


cumple con su condición la cual, si la variable VP es mayor o igual a 50, pero menor o
igual a 60 procederá a ejecutar las instrucciones de su condición verdadera en caso
de que no pasara a la siguiente función If.

10.En la línea17, de haberse cumplido la condición del If de la línea 15 este ejecutara


un reinicio de los pines BLUE, GREEN, Y RED para después mandar una instrucción
de que encienda el pin GREEN.

11.En la línea 19 se considera un último caso, donde si ninguna de las condiciones


anteriores se cumplió procederá a ejecutar su función.

12.En la línea 21, de haberse cumplido la condición del esle de la línea 19 este
ejecutara un reinicio de los pines BLUE, GREEN, Y RED para después mandar una
instrucción de que encienda el pin RED.

13.En la 23 termina el ciclo while(1) regresando al inicio de este mismo para seguir
ejecutando el loop infinito

También podría gustarte