Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
MATERIA
Dispositivos Programables
ALUMNO
TEMA
1/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
Objetivo: Hacer uso de las unidades funcionales en el STM32F103R6, en específico el ADC para introducir
una entrada analógica y GPIO como salidas hacia un display de 7 segmentos.
ADC1: 16 entradas
(Tomado de STM32CubeMX)
2/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
ADC2: 16 entradas
(Tomado de STM32CubeMX)
3/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
El botón de usuario B1 está conectado al PC13 (pin 23 del CN7) del STM32F103R6 y el led
de usuario está conectado en el PA5(pin 11 del CN10)
4/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
Material y equipo
Proteus 8.8
MikroC for ARM 6.0
Indicaciones
Subir a Microsoft Teams. Tomar sus debidas precauciones para que cualquier situación inesperada agote la
fecha y hora límite.
No se recibirá por ningún otro medio.
Desarrollo
2. Dentro de main(), establecer el canal 0 del ADC como entrada analógica con la siguiente función:
ADC_Set_Input_Channel(_ADC_CHANNEL_0);
ADC1_Init();
GPIO_Config(&GPIOA_BASE,
_GPIO_PINMASK_0,
_GPIO_CFG_MODE_ANALOG | _GPIO_CFG_PULL_NO);
5. Dentro de Config_maq() establecer las salidas PB0-PB6 como salidas digitales que irán conectadas al
display de siete segmentos de la siguiente forma:
6. Dentro de Procesamiento(), adquirir la muestra del canal 0. Por default estamos recibiendo un ADC de 12
bits con un voltaje de referencia de 3.3 v. Entonces adc_value debe ser declarada como unsigned de forma
global.
adc_value = ADC1_Get_Sample(0);
7. Dentro de Procesamiento(), podemos transformar la variable adc_value a voltaje con la siguiente fórmula:
volt=adc_value*3.3/X;
5/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
Debido a que volt es un valor de tipo flotante, debemos truncarlo a valores enteros para que puedan
desplegarse en el display de 7 segmentos.
num=floor(volt);
8. Una vez que conocemos el valor entero de volt, lo enviamos hacia el elemento DISPLAY previamente
declarado con la directiva #define.
DISPLAY = segmentos[num];
void Conf_maq();
void Procesamiento();
void main() {
Conf_maq();
while(1) //Bucle principal
Procesamiento();
}
void Conf_maq()
{
}
void Procesamiento()
{
10. Siguiendo la secuencia View → Library manager, se desplegará el manejador de librerías del dispositivo
en MikroC. Seleccionar la casilla: ADC y C_Math.
6/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
10. Conecte un display de ánodo común: segmento a-GPIO.B0(CN6), segmento b- GPIO.B1(CN6), segmento
c- GPIO.B2(CN6), segmento d- GPIO.B3(CN6), segmento e- GPIO.B4(CN6), segmento f- GPIO.B5(CN6),
segmento g- GPIO.B6(CN6).
11. El ánodo común del display debe tener una resistencia de 330 Ω a Vcc.
7/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
12. En la entrada PA0, que ya fue configurada como entrada analógica, colocar un voltaje variable de 0-3.3
volts con el potenciómetro de 10 KΩ.
13. El voltaje que se leerá a través de la entrada analógica debe ser truncado a valores enteros para poder
exhibirse en el display, el cual solo deberá mostrar los valores: 0, 1, 2, 3. Complete el programa de tal forma
que para cada valor entero mostrado en el display se ponga a flashear cada 200 ms un led de diferente color.
(7 puntos)
15. Modifique el programa de tal forma que en tres displays se muestren los siguientes valores:
(3 puntos)
8/9
UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA
Y TECNOLGIAS AVANZADAS – IPN
Uso de las unidades funcionales ADC y GPIO del STM32F103R6: Entrada analógica y salida a display de 7 segmentos y
su simulación en Proteus.
Cuestionario
Observaciones
Bibliografía
[2] UM1727 User Manual. Getting started with STM32 Nucleo board software development tools. January
2016.
Entregables
9/9