Cubo de LEDs controlado por microprocesador

17
Cubo de LEDs controlado por microprocesador Autores: Víctor Silvero Marcelo Mendoza Alumnos de Ingeniería Electrónica, UCA.

Transcript of Cubo de LEDs controlado por microprocesador

Page 1: Cubo de LEDs controlado por microprocesador

Cubo de LEDs controlado por

microprocesador

Autores:Víctor Silvero

Marcelo MendozaAlumnos de Ingeniería Electrónica, UCA.

Page 2: Cubo de LEDs controlado por microprocesador

EspecificacionesO Cubo de 4x4x4 = 64 diodos LEDs,

dispuestos en 4 pisos de 16 diodos cada uno.

Page 3: Cubo de LEDs controlado por microprocesador

O 5 efectos programados, más un modo automático que junta todos los efectos.

O Botón para cambiar efectos.O Potenciómetro para configurar la

velocidad del efecto en curso.

Especificaciones

Page 4: Cubo de LEDs controlado por microprocesador

Diagrama del proyecto

Page 5: Cubo de LEDs controlado por microprocesador

HardwareO Microcontrolador Tiva C Series

TM4C123GH6PM, de Texas Instruments. Cuenta con el procesador ARM Cortex M4, de 80MHz de frecuencia, registros de 32bits, también cuenta con 256 kBytes de flash, además de una unidad de punto flotante.

Page 6: Cubo de LEDs controlado por microprocesador

O Se utiliza el Convertidor Analógico-Digital (ADC) del micro, para leer el voltaje que proporciona el potenciómetro.

O Se utiliza, además, contadores, que son periféricos con los que cuenta el micro.

Hardware

Page 7: Cubo de LEDs controlado por microprocesador

HardwareO Los LEDs están conectados por los ánodos en una

columna, y por las cátodos para constituir un piso.O Cada LED cuenta con un transistor conectado a su

ánodo (columna), y otro a su cátodo (piso).

R LED 00

10

R BC O L00

1 .5 k

P IN C O L00

Q 57

PN 2907A

LED C O L00

Q P 10

PN 2222

R BP ISO

470

P IN P ISO

VC C

0

R LED 01 10

R BC O L01

1 .5 kP IN C O L01

Q 58

PN 2907A

LED C O L01

Page 8: Cubo de LEDs controlado por microprocesador

O Para encender un LED, se debe saturar el transistor columna: el pin conectado a la base debe proveer un voltaje de nivel BAJO, pues es PNP, por el emisor fluye la corriente de la fuente, y va por el colector, pasa por la resistencia, llega al LED hasta encontrar la tierra. La tierra es referenciada por el transistor de piso, el cual se debe saturar con un voltaje de nivel ALTO en su base, entonces, la corriente que fluye desde el LED, viene por el cátodo y va al emisor, que finalmente está a tierra.

Funcionamiento

Page 9: Cubo de LEDs controlado por microprocesador

LimitacionesO La potencia está limitada por la

potencia máxima que puede entregar el microcontrolador.

O La estructura del cubo limita la variedad de efectos realizables (aunque se puede remediar por software).

Page 10: Cubo de LEDs controlado por microprocesador

O El código está hecho en lenguaje C.O Los registros de datos de los puertos de salida son de

32 bits, contados de derecha a izquierda, indicando que el n-ésimo bit corresponde al pin n-ésimo del puerto en cuestión.

O Se configuran los puertos del micro para utilizarlos como salida. Básicamente, se “escriben” en las direcciones de los registros de propósito general, un número de 32 bits, que contendrá un 1 en una determinada posición, especificando un voltaje HIGH de salida, o un 0 en caso contrario. Por ejemplo:GPIO_PORTB_DATA_R = 0x00000003; (...00000011)Indica que al pin 0 y al pin 1 del puerto B, se le asignarán un voltaje HIGH.

Software

Page 11: Cubo de LEDs controlado por microprocesador

O Por ello, el código cuenta con funciones que simplemente cambian los valores de los registros de datos de los puertos, que a un lenguaje de bajo nivel serían funciones que “encienden” o “apagan” un LED. Simplemente asignan 1s (unos) o 0s (ceros).

void encender_led_piso1_col01(void){GPIO_PORTA_DATA_R |= 0x04;GPIO_PORTE_DATA_R &= ~0x10;}

void apagar_col01(void){GPIO_PORTE_DATA_R |= 0x10;}

Software

Page 12: Cubo de LEDs controlado por microprocesador

O Timers: se los utiliza para producir retardos entre el encendido y apagado de cada LED, para que así se puedan generar los efectos. En el código se encuentra una función que recibe como parámetro la cantidad de tiempo a esperar, y en base a eso, genera el retardo correspondiente, automáticamente, ya que es un periférico del micro, al cual se lo configura previamente para que cuente un tiempo que es múltiplo del periodo del micro (inverso de la frecuencia de operación),

O ADC: De acuerdo al número que devuelve el ADC, que a su vez, recibe el voltaje proporcionado por el potenciómetro, lo que se hace con ese número es cambiar el tiempo que se retarda entre el encendido y apagado de cada LED, causando esto una transición “más rápida” en el efecto de encendido.

Software

Page 13: Cubo de LEDs controlado por microprocesador

O Ejemplo de una parte del código, para generar un efecto.encender_led_piso1_col00();if(boton_apretado){return;}Retardo_Timer0A(3);apagar_col00();encender_led_piso1_col01();Retardo_Timer0A(3);if(boton_apretado){return;}apagar_col01();

Software

Page 14: Cubo de LEDs controlado por microprocesador

O Filtrado por software de rebotes al presionar el botón.Todo botón de por sí, tiene rebotes al momento de pulsarlo, y al momento de soltarlo. Esta situación puede generar problemas minuciosos y sensibles en tareas donde se requiere precisión.

Los Timers tienen la capacidad de que, cada que termine el conteo periódico, se “atiende” a la fuente de interrupción (si está configurada), y luego vuelve a contar.

Software

Page 15: Cubo de LEDs controlado por microprocesador

Software utilizado para programación

O Keil uVision 4 – IDE (Integrated Development Environment)Solución completa de desarrollo de software para microcontroladores basados en ARM e incluye todos los componentes que se necesita para crear, construir y depurar programas (debug) y aplicaciones a ser cargadas, soporte para dispositivos Cortex-M, incluyendo la nueva arquitectura ARMv8-M. Incluye compiladores de C / C++ con ensamblador, enlazador.

Page 16: Cubo de LEDs controlado por microprocesador

Cubo de LEDsO Imágenes del encendido.

Page 17: Cubo de LEDs controlado por microprocesador

Muchas gracias por su atención.