Está en la página 1de 39

MANUAL DE PRÁCTICAS

CURSO DE
MICROCONTROLADORES PIC
EN LENGUAJE C

Creado por: Abiezer Hernández Oloarte


Ing. en Mecatrónica

1
Índice.
Manejo de salidas……………………………………………………………………… 4
Manejo de entradas……………………………………………………………………. 4
Antirebote en pulsadores………………………………………………………………. 5
Juego de luces………………………………………………………………………….. 5
Display de 7 segmentos………………………………………………………………... 7
Multiplexación de displays de 7 segmentos…………………………………………… 7
Matrices led 8x8……………………………………………………………………….. 8
Pantalla LCD 16x2…………………………………………………………………….. 8
Pantalla LCD 20x4…………………………………………………………………….. 9
ADC (Convertidor Analógico-Digital)………………………………………………… 9
Multicanal de ADC……………………………………………………………………. 10
Sensor de temperatura LM35………………………………………………………….. 10
Interrupciones externas………………………………………………………………… 11
Timer 0………………………………………………………………………………… 11
Timer 1………………………………………………………………………………… 12
Timer 2………………………………………………………………………………… 12
PWM (Modulación por Ancho de Pulso)……………………………………………… 13
Control de servomotores………………………………………………………………. 13
Control de led RGB…………………………………………………………………… 14
Tonos con buzzer……………………………………………………………………… 14
Sensor de color TCS230………………………………………………………………. 15
Sensor ultrasónico HC-SR04………………………………………………………….. 15
Teclado matricial 4x4………………………………………………………………….. 16
Control de motores paso a paso……………………………………………………….. 16
Comunicación USART, transmisión de datos………………………………………... 17
Comunicación USART, recepción de datos………………………………………....... 17
Comunicación PIC-LabView………………………………………………………….. 18
Comunicación por bluetooth…………………………………………………………... 18
Comunicación USART, recepción de cadenas de caracteres…………………………. 19
Comunicación USART, descomposición de cadenas de caracteres…………………… 20
UART por software…………………………………………………………………… 21
Comunicación serial por RS485………………………………………………………. 21
Sensor de temperatura y humedad DHT11……………………………………………. 24
Comunicación I2C…………………………………………………………………….. 24
Pantalla LCD con módulo I2C………………………………………………………... 26
(RTC) Reloj de tiempo real DS1307………………………………………………….. 26
Memoria EEPROM interna………………………………………………………….... 27
Memoria EEPROM externa…………………………………………………………... 27
Lectura de acelerómetro y giroscopio MPU6050…………………………………….. 28
Pantalla OLED I2C…………………………………………………………………… 28
Protocolo NEC………………………………………………………………………... 30
Comunicación por radiofrecuencia……………………………………………………. 30
Comunicación SPI……………………………………………………………………. 31
Pantalla TFT ST7735…………………………………………………………………. 33

2
Lector de tarjetas RFID MFRC522…………………………………………………… 35
Lectura y escritura de memoria SD…………………………………………………... 35
Transmisión de datos con registro de desplazamiento 74LS164……………………... 36
Lectura de trama de datos de inicio a fin por USART……………………………….. 37
DAC (Convertidor Digital-Analógico)……………………………………………….. 37
Control de motores paso a paso con driver A4988…………………………………… 38
Comunicación USB-HID…………………………………………………………….. 38
Comunicación USB-CDC……………………………………………………………. 39

3
Manejo de salidas.

1.- Encender y apagar un led con un intervalo de tiempo de 1 segundo.

2.- Controlar el encendido y apagado de dos leds, uno rojo y uno verde, primero el led rojo
permanece encendido por 1.5 segundos mientras que el led verde estará apagado, después
el led verde permanece encendido por un tiempo de 500 milisegundos mientras que el led
rojo estará apagado.

3.- Utilizando 3 leds, rojo, verde, amarillo, primero deberá encender el led rojo con un
tiempo de 2 segundos, después encender el led amarillo con un tiempo de 3 segundos,
posteriormente encender el led verde por 1 segundo, por último los leds permanecen
apagados con un tiempo de 500 milisegundos.

4.- Generar 4 parpadeos de un led conectado en el pin D1 del microcontrolador con tiempo
de 400 milisegundos, después el led permanecerá apagado con un tiempo de 1 segundo.

5.- Encender y apagar todo el puerto B con un tiempo de 500 milisegundos.

Manejo de entradas.

1.- Conectar un pulsador al pin A0 del microcontrolador, cuando se presione el pulsador


deberá encender un led, y cuando no este presionado el led permanece apagado.

2.- Con el mismo pulsador conectado en el pin A0, cuando se presione el pulsador un led
deberá encender con un tiempo de 2 segundos, después de ese tiempo el led deberá
permanecer apagado.

3.- Hacer que un led encienda y apague 4 veces con tiempo de 300 milisegundos cuando se
presione un pulsador, sino se presiona, el led permanece apagado.

4.- Utilizando 2 pulsadores, generar un programa que cuando se presione un pulsador


encienda un led, y con otro pulsador apagar el led.

5.- Conectar un dip-swicth de 8 pines al puerto B y mostrar el valor en binario mediante


leds conectados en el puerto D.

4
Antirebote en pulsadores.

1.- Utilizando la función de antirebote, hacer un programa para que con solo 1 pulsador se
controle el encendido y apagado de 1 led.

2.- Hacer que cambie el estado de un led cada vez que el pulsador sea presionado por 4
veces.

3.- Hacer un contador binario de 4 bits representado con leds, cada vez que se presione un
pulsador el contador debe incrementar, cuando llegue a su máximo valor el contador se
reinicia a cero.

4.- Utilizando un sensor infrarrojo, cada vez que detecte un objeto deberá cambiar el estado
de un led.

5.- Hacer un contador binario de 8 bits representado con leds, cada vez que se presione un
pulsador el contador debe incrementar, cuando llegue a su máximo valor el contador se
reinicia a cero.

Juego de luces.

1.- Generar con el microcontrolador la siguiente secuencia con tiempo de 100


milisegundos.

5
2.- Utilizando 3 pulsadores, generar las siguientes secuencias cada vez que se presiona un
pulsador, cada secuencia tendrá que repetirse 4 veces y deberá activarse con un pulsador
diferente.

Secuencia cuando se presione


el pulsador 1.

Secuencia cuando se presione


el pulsador 2.

Secuencia cuando se presione


el pulsador 3.

6
Displays de 7 segmentos.

1.- Hacer un contador ascendente de 0 a 9 y mostrar los números en un display de 7


segmentos cada 500 milisegundos.

2.- Hacer un contador descendente de 9 a 0 y mostrar los números en un display de 7


segmentos cada 500 milisegundos.

3.- Realizar un contador ascendente y descendente de 0 a 9 utilizando 2 pulsadores, con el


primer pulsador el contador debe contar de forma ascendente de 0 a 9, y cuando el contador
sea mayor a 9, se reinicia a 0, y con el segundo pulsador el contador debe contar de forma
descendente de 9 a 0 y cuando el contador sea menor que 0, se reinicia a 9.

4.- Mostrar las letras A, B, C, D, E, F en el display de 7 segmentos cada 500 milisegundos.

5.- Mostrar en un display de 7 segmentos el numero 0 cuando el pulsador no este


presionado, y cuando se presione se deberá mostrar el número 1 en el display.

Multiplexación de displays de 7 segmentos.

1.- Utilizando 2 displays de 7 segmentos, mostrar en el primer display el número 4 y en el


segundo display el número 6.

2.- Realizar un contador de 0 a 99 con un display doble de 7 segmentos con tiempo de 500
milisegundos.

3.- Utilizando 2 pulsadores, con el primer pulsador se deberá incrementar un contador de 0


a 99 con un display doble de 7 segmentos, y con el segundo pulsador se deberá disminuir el
valor del contador.

4.- Utilizando 2 pulsadores, cuando se presione el primer pulsador se deberá mostrar en el


display doble el número 12, cuando se presione el segundo pulsador se deberá mostrar el
número 84, si ningún pulsador está presionado deberá mostrar 00 en el display doble.

5.- Realizar un contador de 0 a 9999 utilizando 4 displays de 7 segmentos con un tiempo de


100 milisegundos.

7
Matrices led 8x8.

1.- Mostrar en una matriz led 8x8 la letra M.

2.- Mostrar los números de 0 a 9 en una matriz led 8x8 con el tiempo que usted desee.

3.- Generar un desplazamiento de la palabra “ELECTRO” en la matriz led 8x8 con el


tiempo que usted desee.

4.- Mostar la siguiente animación en una matriz led 8x8 con un tiempo de 300
milisegundos.

5.- Utilizando el driver MAX7219 y una matriz led 8x8, mostrar el abecedario en
mayúsculas con un tiempo de 500 milisegundos.

Pantalla LCD 16x2.

1.- En una pantalla LCD 16x2, mostrar le texto “Hola” en la primer fila, y en la segunda
fila mostrar el texto “Como Estas”, cada texto se muestra con un tiempo de 1 segundo.

2.- Mostrar el valor de un contador de 0 a 255 en la pantalla LCD 16x2 con un tiempo de
500 milisegundos.

3.- Mostrar en una pantalla LCD 16x2 2 caracteres especiales, los que usted desee.

4.- En la pantalla LCD 16x2 mostrar el abecedario, cada letra se deberá mostrar de forma
secuencial con un tiempo de 300 milisegundos.

5.- Utilizando 2 pulsadores, cuando se presione el primer pulsador deberá mostrar el texto
“Led Encendido”, cuando se presione el segundo pulsador deberá mostrar el texto “Led
Apagado”.

8
Pantalla LCD 20x4.

1.- En una pantalla LCD 20x4, mostrar le texto “Hola” en la primer fila, en la segunda fila
mostrar el texto “Que Tal”, en la tercer fila mostrar el texto “Que tengas Un”, y en la cuarta
fila el mostrar el texto “Excelente Día”, cada texto se muestra con un tiempo de 1 segundo.

2.- Mostrar el valor de un contador de 0 a 255 en la pantalla LCD 20x4 con un tiempo de
500 milisegundos.

3.- Mostrar en una pantalla LCD 20x4, 4 caracteres especiales, uno en cada fila los que
usted desee.

4.- En la pantalla LCD 20x4 mostrar el abecedario, cada letra se deberá mostrar de forma
secuencial con un tiempo de 300 milisegundos.

5.- Utilizando 2 pulsadores, cuando se presione el primer pulsador deberá mostrar el texto
“Led Encendido”, cuando se presione el segundo pulsador deberá mostrar el texto “Led
Apagado”.

ADC (Convertidor Analógico-Digital).

1.- Mostrar el valor del ADC en una pantalla LCD.

2.- Mostrar el valor del ADC y su vez el voltaje en una pantalla LCD.

3.- Utilizando el ADC y 4 leds, cuando el valor del ADC sea mayor a 200 se enciende el
primer led, cuando el valor del ADC sea mayor a 500 se enciende el segundo led, cuando el
valor del ADC sea mayor a 700 se enciende el tercer led y cuando el valor del ADC sea
mayor a 1000 se enciende el cuarto led, si el valor del ADC es menor que 200 ningún led
enciende.

4.- Utilizando el ADC y 2 leds, 1 rojo y 1 verde, cuando el voltaje sea mayor a 4 volts, se
encenderá el led rojo, de lo contrario si el valor es menor que 4 volts deberá estar encendido
el led verde.

5.- Leer el valor de una fotorresistencia a través del pin A0 del microcontrolador, cuando
se oscurezca deberá encenderse un led, de lo contrario el led deberá permanecer apagado.

9
Multicanal de ADC.

1.- Leer el valor de 2 potenciómetros conectados en diferentes canales de ADC, los valores
deben mostrarse en una pantalla LCD.

2.- Leer el valor de 3 potenciómetros, con un pulsador se deberá seleccionar el canal que se
desea leer, el valor de cada potenciómetro se mostrara en una pantalla LCD.

3.- Leer el valor de 4 sensores analógicos, los que usted desee y mostrar los datos de cada
sensor en una pantalla LCD 20x4.

4.- Realizar la lectura de Joystick y mostrar los valores del eje “X” y el eje “Y” en una
pantalla LCD 16x2.

5.- Mostrar en una pantalla LCD 2 valores de voltaje utilizando 2 canales de ADC.

Sensor de temperatura LM35.

1.- Realizar la lectura del sensor LM35 y mostrar el valor de la temperatura en °C en una
pantalla LCD.

2.- Realizar la lectura del sensor LM35 y mostrar el valor de la temperatura en °C, °F y °K
en una pantalla LCD.

3.- Utilizando 2 leds, 1 rojo y 1 verde, cuando la temperatura sea mayor a 26°C se debe
encender el led rojo, y cuando la temperatura sea menor a 15°C, se sebe encender el led
verde, si no se cumplen esos rangos de temperatura ningún led debe encender.

4.- Hacer un termómetro digital con el sensor LM35 y con 4 leds, cuando la temperatura
sea mayor que 12°C, se enciende el led 1, cuando la temperatura sea mayor que 15°C se
enciende el led 2, cuando la temperatura sea mayor que 18°C se enciende el led 3 y cuando
la temperatura sea mayor que 24°C, se enciende el led 4.

5.- Elaborar una etapa de control de un ventilador, cuando la temperatura sea mayor a 25°C
se debe activar un ventilador, cuando la temperatura sea menor que 20°C, el ventilador
deberá apagarse.

10
Interrupciones.

1.- Utilizando la interrupción externa en el pin B0 del microcontrolador, hacer un contador


de 0 a 9 cada vez que se detecte un flanco de subida en el pin B0, cuando el contador sea
mayor a 9, el contador se reinicia a 0 y el contador deberá mostrarse un display de 7
segmentos.

2.- Hacer un programa donde en su función principal estará incrementado su valor de 0 a 9,


pero cuando ocurra una interrupción por el pin RB0, un led destellará por 4 veces con un
tiempo de 300 milisegundos, después de ejecutar la función de interrupción, el contador
continuará su cuenta a partir del valor donde se quedó antes de que ocurriera la
interrupción.

3.- Realizar un tacómetro digital que mida las revoluciones por minuto de un motor con
sensor encoder, el valor de las RPM se mostrara en una pantalla LCD 16x2.

4.- Utilizando la interrupción por cambio de estado en los pines RB4 a RB7, cambiar el
estado de 4 leds cada vez que se presione un pulsador.

5.- Realizar un programa donde en su función principal estará parpadeando un led con un
tiempo de 200 milisegundos, cuando ocurra una interrupción por el pin RB0 el led dejara de
parpadear, únicamente cuando se presione el botón de reset del microcontrolador, el led
continuará parpadeado.

Timer 0.

1.- Utilizando el timer 0, realizar un contador binario de 8 bits con un tiempo aproximado
de 500 milisegundos.

2.- Generar un programa que simule un reloj con 4 display se 7 segmentos, únicamente se
mostraran minutos y segundos, el reloj deberá comenzar en 59:30.

3.- Realizar un temporizador utilizando 2 pulsadores, con el primer pulsador incrementará


un contador de 0 a 9, con el segundo pulsador comenzara a descender el contador con
tiempo de 1 segundo, y cuando llegue a 0 deberá encenderé un led indicando que ha
terminado la cuenta.

11
Timer 1.

1.- Utilizando el timer 1, hacer que un led cambie su estado cada 2 segundos
aproximadamente.

2.- Realizar un juego de luces secuenciales utilizando el timer 1, la velocidad del efecto
deberá de ser aproximadamente con un tiempo de 100 milisegundos.

3.- Utilizando 1 pulsador, realizar un programa cuando se presione el pulsador iniciará a


contar un temporizador de 3 segundos y a su vez se encenderá un led, después que pasen
los 3 segundos el led deberá apagarse.

4.- Realizar un semáforo utilizando el timer 1, cada led deberá permanecer encendido con
un tiempo de 3 segundos aproximadamente.

5.- Encender y apagar un ventilador con intervalos de tiempo de 5 segundos


aproximadamente utilizando el timer 1.

Timer 2.

1.- Utilizando el timer 2, generar una frecuencia de 1KHz aproximadamente, mediante el


simulador Proteus deberás conectar un osciloscopio para ver la señal generada.

2.- Utilizando el timer 2, generar una frecuencia de 10KHz aproximadamente, mediante el


simulador Proteus deberás conectar un osciloscopio para ver la señal generada.

3.- Utilizando el timer 2, generar una frecuencia de 1KHz y a partir de esta frecuencia se
deberá hacer un divisor de frecuencia para que generar un parpadeo de un led de
aproximadamente de 1 segundo.

4.- Generar una frecuencia de 5KHz utilizando el timer 2 y a partir de esa frecuencia crear 3
divisores de frecuencia, los rangos serán de 1KHZ, 2KHz y 4.5KHz, mediante 1 pulsador
se tendrá que ir seleccionando el rango de la frecuencia y el valor se mostrara en una
pantalla LCD 16x2.

12
PWM (Modulación por Ancho de Pulso).

1.- Utilizar el ADC para controlar mediante un potenciómetro la intensidad de brillo de un


led conectado al microcontrolador.

2.- Controlar la velocidad de un motor de corriente directa con un potenciómetro, el valor


del PWM deberá mostrarse en una pantalla LCD 16x2.

3.- Utilizando 2 pulsadores, con el primer pulsador deberá incrementar el valor del PWM y
con el segundo pulsador deberá disminuir el valor del PWM.

4.- Controlar el PWM de todo el puerto B con un potenciómetro.

5.- Utilizando 3 potenciómetros, variar la intensidad de brillo de 3 leds, cada potenciómetro


es para cada led independiente.

Control de servomotores.

1.- Controlar la posición de un servomotor utilizando 3 pulsadores, con el primer pulsador


el servomotor se ubicará a 0°, con el segundo pulsador el servomotor se ubicará a 90°, y
con el tercer pulsador el servomotor se ubicará a 180°.

2.- Controlar la posición de 0°, 90°y 180° de 2 servomotores, cada cambio de posición
deberá ser con un tiempo de 1 segundo.

3.- Mediante un potenciómetro controlar la posición de un servomotor de forma


proporcional.

4.- Controlar la posición de 2 servomotores de forma intercalada, es decir, cuando el primer


servo este en 0° el segundo servomotor deberá estar en 180°, y cuando el primer servo este
en 180° el segundo servomotor deberá estar en 0°, cada cambio de posición será con un
tiempo de 2 segundos.

5.- Utilizando 2 potenciómetros, controlar la posición de 2 servomotores, y los valores de la


posición de cada servomotor deberá mostrarse en una pantalla LCD.

13
Control de led RGB.

1.- Generar los colores rojo, verde, azul, rosa, amarillo, naranja utilizando un led RGB,
cada cambio de color deberá ser de 1 segundo.

2.- Mediante 3 potenciómetros variar a la intensidad de brillo de cada canal del led RGB.

3.- Generar un efecto atenuante de cada canal del led RGB para generar todos los colores
posibles.

4.- Utilizando 3 pulsadores, cuando se presione el primer pulsador el led RGB generará el
color cyan, cuando se presione el segundo pulsador el led RGB generará el color morado, y
cuando se presione el tercer pulsador el led RGB generará el color amarillo, sino se
presiona ningún pulsador el led RGB permanecerá apagado.

5.- Utilizando el ADC, cuando el valor sea mayor a 200 se encenderá el color azul, cuando
el valor sea mayor a 700 se encenderá el color verde, y cuando el valor sea mayor a 1000 se
formara el color rosa.

Tonos con Buzzer.

1.- Generar una frecuencia de 4KHz con una duración de 250 en el buzzer.

2.- Mediante un potenciómetro variar la frecuencia de 1KHz a 4KHz con una duración de
200 en el buzzer.

3.- Utilizando 2 pulsadores, con el primer pulsador se generará una frecuencia de 2KHz con
una duración de 100, y con el segundo pulsador se generará una frecuencia de 4KHz con
una duración de 250.

4.- Realizar un detector de obstáculos utilizando un sensor infrarrojo, cuando se aproxime


un objeto al sensor se generara una frecuencia de 3KHz con duración de 200 en el buzzer, y
cuando no detecte objetos el buzzer permanecerá apagado.

5.- Generar una frecuencia de 4KHz con una duración de 200 en el buzzer, cada 300
milisegundos deberá activarse y desactivarse el buzzer.

14
Sensor de color TSC230.

1.- Realizar la lectura del sensor de color TCS230 y mostrar los datos de los canales RGB
en una pantalla LCD.

2.- Realiza un programa que cuando el sensor TCS230 detecte los colores: rojo, verde y
azul, se encienda un led correspondiente a cada color.

3.- Detectar el color rosa utilizando el sensor TCS230, cuando detecte dicho color deberá
encenderse un led de color rosa.

4.- Realizar un detector de frutas, cuando está madura deberá mostrarse un mensaje en una
pantalla LCD indicando que la fruta está madura, y cuando la fruta está verde deberá
mostrarse un mensaje en una pantalla LCD indicando que la fruta está verde.

5.- Hacer un clasificador de objetos, deberá separarlos por color, cuando detecte un objeto
de color naranja un servomotor deberá ubicarse a 45°, cuando detecte un objeto de color
verde el servomotor deberá ubicarse a 90°, y cuando detecte un objeto de color rosa el
servomotor deberá ubicarse a 135°.

Sensor ultrasónico HC-SR04.

1.- Mostrar la distancia en centímetros en una pantalla LCD utilizando el sensor ultrasónico
HC-SR04.

2.- Utilizando el sensor ultrasónico HC-SR04, se debe detectar un objeto cuando este cerca
o lejos, y mostrar mensajes en una pantalla LCD.

3.- Realizar un programa que cuando el sensor ultrasónico detecte una distancia menor a 10
cm, un servomotor se posicione a 90°, de lo contrario el servomotor se ubicará a 0°.

4.- Realizar un programa para variar la velocidad de parpadeo de un led, entre más cerca se
encuentre el objeto al sensor más rápido va a parpadear del led, los rangos de distancia
serán entre 3cm a 20 cm, y el tiempo de parpadeo será de 10ms a 200ms.

5.- Utilizando el sensor ultrasónico y 3 leds, detectar las distancias 10, 15, y 20 cm, cuando
sea mayor a 10cm se encienda el primer led, cuando sea mayor a 15cm se encienda el
segundo led, y cuando sea mayor a 20cm se encienda el tercer led.

15
Teclado matricial 4x4.

1.- Mostrar la tecla presionada de un teclado matricial 4x4 en una pantalla LCD 16x2.

2.- Realizar un programa utilizando un teclado matricial 4x4 que cuando se presione la
tecla “A” se encienda un led y cuando se presione la tecla “B” se apague un led.

3.- Mostrar la teclas del 0 a 9 en un display de 7 segmentos, cada vez que se presione una
tecla, el número se mostrara en el display.

4.- Realizar un sistema de control de acceso, cuando se introduzca la clave “678C”, se


encenderá un led de color verde y se mostrara el mensaje “Clave Correcta” en una pantalla
LCD, y cuando no coincida la clave se encenderá un led de color rojo y se mostrara el
mensaje “Clave Incorrecta” en una pantalla LCD.

5.- Realizar una calculadora que su sume 2 números de 1 digito, si el resultado es par se
mostrara el mensaje “Número Par” en una pantalla LCD más el resultado, y si el resultado
es impar se mostrara el mensaje “Número Impar” en una pantalla LCD más el resultado.

Control de motores paso a paso.

1.- Controlar el giro de un motor paso a paso bipolar utilizando 2 pulsadores, con el primer
pulsador el motor deberá girar hacia la izquierda, y con el segundo pulsador el motor
deberá girar hacia la derecha.

2.- Controlar el giro de un motor paso a paso unipolar utilizando 2 pulsadores, con el
primer pulsador el motor deberá girar hacia la izquierda, y con el segundo pulsador el
motor deberá girar hacia la derecha.

3.- Controlar la velocidad de giro de motor paso a paso bipolar o unipolar mediante un
potenciómetro, el rango de velocidad depende del tipo de motor.

4.- Utilizando 2 pulsadores, con el primer pulsador el motor deberá posicionarse a un


ángulo de 180°, con el segundo pulsador el motor deberá posicionarse a un ángulo de 0°.

5.- Realizar un programa que cuando un sensor infrarrojo detecte un objeto, el motor
comience a girar y cuando no detecte objetos, el motor permanece apagado.

16
Comunicación USART, transmisión de datos.

1.- Enviar el texto “Hola Como Estas” hacia el ordenador a través del puerto serial, el
mansaje deberá enviarse con un tiempo de 200 milisegundos.

2.- Enviar los datos del valor de un potenciómetro desde el microcontrolador hacia el
ordenador con un tiempo de 100 milisegundos.

3.- Encender y apagar un led con un tiempo de 1 segundo y a su vez que envíe los mensajes
“Led Encendido” y “Led Apagado” dependiendo el estado en que se encuentre el led.

4.- Enviar mensajes por el puerto serial dependiendo el estado de un pulsador, cuando el
botón este presionado enviará el mensaje “Botón Presionado”, y cuando no este presionado
enviará el mensaje “Botón No Presionado”.

5.- Enviar el valor de un contador por el puerto serial cada 500 milisegundos, el rango del
contador debe ser de 0 a 100.

Comunicación USART, recepción de datos.

1.- Enviar la tecla presionada del teclado del ordenador hacia el microcontrolador, y que
muestre la tecla recibida en una pantalla LCD.

2.- Recibir los números del 0 al 9 desde el ordenador y que se muestre el numero en un
display de 7 segmentos.

3.- Realizar un programa que cuando se reciba el carácter „1‟ por el puerto serial, se
encienda un led, y cuando se reciba el carácter „0‟ por el puerto serial se apague el led.

4.- Controlar el sentido de giro de un motor de corriente directa a través del puerto serial,
cuando reciba el carácter „I‟, el motor debe girar hacia la izquierda, cuando se reciba el
carácter „D‟, el motor debe girar hacia la derecha y cuando reciba el carácter „A‟, el motor
deberá apagarse.

5.- Controlar el encendido y apagado de una lámpara por el puerto serial, cuando se reciba
el carácter „e‟, deberá encenderá la lámpara y a su vez se envía el mensaje “Lámpara
Encendida” por el puerto serial, y cuando se reciba el carácter „a‟, deberá apagarse la
lámpara y a su vez se envía el mensaje “Lámpara Apagada” por el puerto serial.

17
Comunicación PIC-LabVIEW.

1.- Diseñar un interfaz en LabVIEW que sea capaz de monitorear la temperatura de un


sensor LM35.

2.- Diseñar un interfaz en LabVIEW que sea capaz de monitorear la distancia de un sensor
ultrasónico, si la distancia es menor a 10cm se encenderá un led virtual, de lo contrario
deberá estar apagado el led virtual.

3.- Controlar el encendido y apagado de 2 leds desde una interfaz gráfica diseñada en
LabVIEW, por medio de 2 botones virtuales se controlara el encendido y apagado de los 2
leds.

4.- Controlar el ángulo de un servomotor mediante una interfaz gráfica en LabVIEW, la


interfaz contara con 3 botones, con el primer botón el servomotor se ubicara en 0°, con el
segundo botón el servomotor se ubicara en 90° y con el tercer botón el servomotor se
ubicara en 180°.

5.- Controlar el sentido de giro de un motor de corriente directa mediante una interfaz
gráfica en LabVIEW, contara con 3 botones virtuales, con el primer botón el motor deberá
girar hacia la izquierda, con el segundo motor el motor deberá girar hacia la derecha y con
el tercer botón el motor deberá detenerse.

Comunicación por bluetooth.

1.- Mediante una aplicación creada en App Inventor, controlar el encendido y apagado de 2
leds.

2.- Diseñar una aplicación de App Inventor que sea capaz de monitorear los datos de un
canal analógico del microcontrolador.

3.- Diseñar una aplicación de App Inventor que sea capaz de monitorear distancia de un
sensor ultrasónico HC-SR04, si la distancia es menor a 15cm, se deberá encender un led
físico y a su vez mostrar un mensaje en la aplicación, dependiendo si el objeto está cerca o
lejos.

18
Comunicación USART, recepción de cadenas
de caracteres.

1.- Recibir una cadena de caracteres por el puerto serial y de igual forma mostrar la cadena
recibida por el puerto serial.

2.- Recibir una cadena de caracteres por el puerto serial y compararla con otra cadena, si
ambas cadenas coinciden se deberá imprimir un texto por el puerto serial indicando que las
cadenas son iguales y a su vez se encenderá un led verde, de lo contrario si las cadenas no
son iguales se deberá imprimir un texto por el puerto serial indicando que las cadenas no
son iguales y a su vez se encenderá un led rojo.

3.- Realizar un programa en donde sí se recibe el texto “led=on” por el puerto serial, se
encienda un led, sí se recibe el texto “led=off” por el puerto serial, se apague el led.

4.- Realizar un programa que reciba las siguientes cadenas de caracteres y ejecutar las
acciones que se muestran a continuación:

 Cadena “101” = Encender led verde.


 Cadena “100” = Encender led azul.
 Cadena “110” = Apagar led verde.
 Cadena “011” = Apagar led azul.

5.- Hacer un programa para controlar mediante cadenas de caracteres los colores de un led
RGB, dependiendo el nombre del color recibido por el puerto serial, deberá iluminarse el
led, los nombres de los colores a recibir son los siguientes:

 Cadena “ROJO” = Iluminar el led de color rojo.


 Cadena “VERDE” = Iluminar el led de color verde.
 Cadena “AZUL” = Iluminar el led de color azul.
 Cadena “ROSA” = Iluminar el led de color rosa.
 Cadena “AMARILLO” = Iluminar el led de color amarillo.
 Cadena “BLANCO” = Iluminar el led de color blanco.
 Cadena “NEGRO” = Apagar el led RGB.

6.- Recibir una cadena de caracteres por bluetooth y a su vez mostrar la cadena de
caracteres recibida en una pantalla LCD 16x2.

19
Comunicación USART, descomposición de
cadenas de caracteres.

1.- Descomponer la cadena recibida por el puerto serial “encender:apagar*” en dos cadenas,
después ambas cadenas deberán mostrarse en el puerto serial.

2.- Controlar el encendido y apagado de 8 leds conectados en todo el puerto B del


microcontrolador, solo deberá enviarse una cadena de caracteres que contendrá los 8
estados de los leds, por ejemplo : “11110000”, cada 0 y 1 representa el estado de cada led.

3.- Controlar 2 canales de PWM para regular la intensidad de brillo de 2 leds desde una
interfaz gráfica en LabVIEW por medio de dos sliders virtuales.

4.- Realizar un programa en donde se controlen 2 canales de PWM y el encendido y


apagado de 2 leds mediante una interfaz gráfica en LabVIEW.

5.- Diseñar un pequeño sistema de control de acceso con usuario y contraseña, el usuario
será “Electro” y la contraseña será “MCU0741”, cuando el usuario y contraseña son
correctos, deberá encender un led verde por 2 segundos, después se apagará, de lo contrario
si el usuario y contraseña son incorrectos, deberá encender un led rojo por 1 segundo,
después se apagará, el formato de cadena para enviar el usuario y contraseña será
“Electro+MCU0741*”.

6.- Realizar un programa que descomponga las siguientes cadenas de caracteres en dos
cadenas, la primera cadena será una dirección y la segunda será la instrucción, dependiendo
eso se realizaran acciones las cuales se muestran a continuación:

 Descomponer “0x0A{encender}” = Primer cadena “0x0A(dirección)”, segunda


cadena “encender” (instrucción), si se reciben ambas cadenas, deberá encender un
led y a su vez imprimir por el puerto serial la dirección y la instrucción.
 Descomponer “0x0B{apagar}” = Primer cadena “0x0B(dirección)”, segunda cadena
“apagar” (instrucción), si se reciben ambas cadenas, deberá apagar un led y a su vez
imprimir por el puerto serial la dirección y la instrucción.

7.- Controlar la intensidad de brillo de un led RGB mediante una interfaz en LabVIEW, en
la cual por medio de 3 sliders se controlará cada canal del led RGB de forma independiente.

20
UART por software.

1.- Generar dos puertos seriales, con el primer puerto se deberá recibir un texto y en el
segundo puerto deberá mostrarse el texto recibido por el primer puerto serial, si el texto es
“encender”, deberá encender un led, y si el texto es “apagar, deberá apagarse el led”.

2.- Generar dos puertos seriales, ambos van a enviar y recibir datos, el primer puerto serial
será destinado para conectar un módulo bluetooth el cual enviará y recibirá textos, el
segundo puerto serial será para el ordenador el cual también enviará y recibirá textos.

Comunicación serial por RS485.

1.- Realizar una comunicación simplex entre 2 microcontroladores PIC, el primer


microcontrolador será el maestro el cual enviará los estados de 4 pulsadores, el segundo
microcontrolador será el esclavo el cual recibirá los estados de los 4 pulsadores para
encender o apagar 4 leds.

21
2.- Realizar una comunicación simplex entre 2 microcontroladores PIC para controlar 2
canales de PWM mediante potenciómetros, el primer microcontrolador será el maestro el
cual enviará los valores de PWM hacia el segundo microcontrolador, el cual será el esclavo
y es el que recibe los valores de PWM del maestro.

3.- Realizar una comunicación simplex entre 2 microcontroladores PIC para controlar el
ángulo de un servomotor mediante un potenciómetro, el primer microcontrolador será el
maestro y el segundo microcontrolador será el esclavo.

22
4.- Establecer una comunicación Half-Duplex entre 2 microcontroladores PIC, el primer
microcontrolador será el maestro el cual enviará el valor de un PWM hacia el segundo
microcontrolador, después el segundo microcontrolador que es el esclavo va recibir el valor
del PWM del maestro y a su vez el esclavo enviará el valor de un canal analógico hacia el
maestro, si el valor del ADC es mayor a 500, se encenderá un led, de lo contrario sino
supera ese valor, el led no deberá encender.

5.- Establecer una comunicación simplex entre 3 microcontroladores, uno de ellos será
maestro y los otros dos serán esclavos con una dirección diferente, primero el maestro
enviara datos al primer esclavo con para encender y apagar un led, después de 1 segundo, el
maestro enviará datos al segundo esclavo para encender y apagar un led, y así
sucesivamente se estará repitiendo este ciclo.

ESCLAVO 1 ESCLAVO 2
MAESTRO
DIRECCIÓN DIRECCIÓN
“0X01” “0X02”

23
Sensor de temperatura y humedad DHT11.

1.- Utilizando el microcontrolador, realizar la lectura del sensor DHT11 y mostrar la


temperatura y humedad en una pantalla LCD 16x2.

2.- Realizar un programa donde se realice la lectura del sensor DHT11 y mostrar la
temperatura y humedad en el puerto serial, además deberá realizar lo siguiente:

 Si la temperatura es mayor a 30°C, deberá encender un led rojo, de lo contrario


deberá estar apagado.
 Si la humedad baja a un 70%, deberá encender un led azul, de lo contrario deberá
estar apagado.

Comunicación I2C.

1.- Establecer una comunicación I2C entre dos microcontroladores PIC, el primer
microcontrolador será el maestro el cual enviará instrucciones para encender y apagar 1 led
a través de 2 pulsadores (un pulsador para encender y otro para apagar el led), el segundo
microcontrolador será el esclavo y recibirá los datos del maestro para encender o apagar el
led.

24
2.- Establecer una comunicación I2C entre dos microcontroladores PIC, el maestro enviará
un dato con un rango de 0 a 180 para controlar un servomotor que se encuentra conectado
en el esclavo.

3.- Establecer una comunicación I2C bidireccional, primero el maestro solicitará datos de
un canal de ADC de 8 bits del esclavo, y ese valor controlará un PWM del maestro, y a su
vez el maestro enviará el estado de un pulsador para controlar el encendido y apagado de un
led que estará conectado en el esclavo.

25
Pantalla con módulo I2C.

1.- En una pantalla LCD 16x2 con módulo I2C, mostrar le texto “Hola” en la primer fila, y
en la segunda fila mostrar el texto “Como Estas”, cada texto se muestra con un tiempo de 1
segundo.

2.- En una pantalla LCD 20x4 con módulo I2C, mostrar le texto “Hola” en la primer fila, en
la segunda fila mostrar el texto “Que Tal”, en la tercer fila mostrar el texto “Que tengas
Un”, y en la cuarta fila el mostrar el texto “Excelente Día”, cada texto se muestra con un
tiempo de 1 segundo.

3.- Mostrar 2 caracteres especiales en una pantalla LCD 16x2 con módulo I2C, los
caracteres especiales son los que usted desee.

4.- En una pantalla LCD 16x2 con módulo I2C se mostrará el abecedario, cada letra se
deberá mostrar de forma secuencial con un tiempo de 300 milisegundos.

(RTC) Reloj de tiempo real DS1307.

1.- Realizar un reloj programable utilizando un RTC y deberá tener las siguientes
características:

 Contará con 3 pulsadores, el primero será para acceder a los diferentes menús para
configurar la fecha y la hora, el segundo será para incrementar los valores de la
fecha y la hora, y con el tercer pulsador será para decrementar los valores de la
fecha y la hora.
 Los datos de la fecha y la hora deberán mostrarse en una pantalla LCD 16x2.
 De igual forma los datos de la fecha y la hora deberán enviarse a través del puerto
serial para monitorearlos desde un ordenador.

2.- Utilizando el módulo RTC, diseñar una alarma despertadora, cuando sean las 7:00 am
deberá activarse un buzzer y un led, y después de 1 minuto, la alarma deberá apagarse.

3.- A partir del módulo RTC, diseñar un circuito que active una bomba de agua para regar
plantas cada hora, cuando este activa la bomba de agua deberá encender un led verde y
cuando este apagada deberá encender un led rojo.

26
Memoria EEPROM interna.

1.- Utilizando la memoria EEPROM interna del microcontrolador, guardar los números del
1 al 20 y mostrar a través del puerto serial los datos que se encuentran almacenados en cada
posición de la memoria EERPOM.

2.- Realizar un programa que cuando se presione un pulsador genere un número aleatorio, y
cuando se presione un segundo pulsador ese dato se guarde en la memoria EEPROM
interna del microcontrolador, y por ultimo con un tercer pulsador deberá mostrar el dato
almacenado a través del puerto serial.

3.- Guardar los números del 0 al 15 en la memoria EEPROM interna del microcontrolador,
y mostrar ese dato de forma binaria a través de 4 leds conectados en el puerto B del
microcontrolador, con un tiempo de 500ms.

4.- Realizar una lectura de un canal de ADC configurado en 8 bits, y guardar 10 muestras
dentro de la memoria EEPROM cada vez que se presione un pulsador y después de guardar
las 10 muestras, cuando se presione un segundo pulsador deberán mostrarse esos datos que
se encuentran almacenados en la memoria EEPROM a través del puerto serial.

Memoria EEPROM externa.

1.- Utilizando una memoria EEPROM externa, guardar los números del 1 al 100 y mostrar
a través del puerto serial los datos que se encuentran almacenados en cada posición de la
memoria EERPOM externa.

2.- Dentro de una memoria EEPROM externa deberá almacenarse todo el abecedario en
mayúsculas, cada letra almacenada dentro de la memoria deberá mostrarse a través del
puerto serial con un tiempo de 200ms.

3.- Almacenar el texto “Hola Como Estas” dentro de una memoria EEPROM externa, cada
carácter almacenado dentro de la memoria deberá mostrarse a través del puerto serial con
un tiempo de 100ms, y al final se mostrará el texto completo a través del puerto serial,
después espera 1 segundo, y nuevamente se repite el ciclo.

27
Lectura de acelerómetro y giroscopio
MPU6050.

1.- Realizar la lectura de los datos del sensor MPU6050 y mostrarlos en una pantalla LCD
20x4 o a través del puerto serial.

2.- Mostrar solo los datos de la aceleración del sensor MPU6050 en una pantalla LCD 16x2
o a través del puerto serial.

3.- Realizar un programa que realice lo siguiente utilizando el sensor MPU6050:

 Cuando la aceleración en Y+ sea mayor a 0.40, encienda un led verde.


 Cuando la aceleración en Y- sea menor a - 0.40, encienda un led rojo.
 Cuando la aceleración en X+ sea mayor a 0.50, encienda un led amarillo.
 Cuando la aceleración en X- sea menor a -0.50, encienda un led azul.

4.- Mostrar los mensajes “ENFRENTE”, “ATRÁS”, “IZQUIERDA”, “DERECHA” en una


pantalla LCD, dependiendo la inclinación del acelerómetro.

5.- Utilizando el sensor MPU6050 y haciendo uso del giroscopio, deberá detectar un
cambio brusco en la velocidad angular, cuando el cambio sea brusco deberá encender un
led y un buzzer con un tiempo de 5 segundos indicando que hubo un choque, si no hay un
cambio brusco en la velocidad angular, el led y el buzzer permanecerán apagados.

Pantalla OLED I2C.

1.- Mostrar los siguientes textos en una pantalla OLED de forma secuencial con un tiempo
de 1 segundo, y al final deberá limpiarse la pantalla OLED con un tiempo de 500ms.

Texto 1
Texto 2
Texto 3

28
2.- Mostrar los valores de un potenciómetro y su vez el valor del voltaje en una pantalla
OLED, los datos deberán estar encerrados dentro de un rectángulo.

3.- Mostrar los datos del sensor MPU6050 en una pantalla OLED.

4.- Utilizando una pantalla OLED deberá mostrar los datos de un sensor de temperatura
LM35, si la temperatura es mayor a 30° se mostrará el mensaje “Temperatura Alta” en la
pantalla OLED, si la temperatura es menor a 16° se mostrará el mensaje “Temperatura
Baja” en la pantalla OLED, si no se cumplen esas condiciones deberá mostrar el mansaje
“Temperatura Normal” en la pantalla OLED.

5.- Realizar un programa que cuando se presione un pulsador, deberá rellenarse un circulo
en la pantalla OLED indicando que un led esta encendido, de lo contrario cuando no este
presionado el pulsador, el circulo quedará vacío indicando que el led está apagado, tal
como se muestra en las siguientes imágenes.

6.- Mostrar el valor de una señal de PWM y a su vez el porcentaje del ciclo de trabajo, en el
CCP1 deberá conectar un led para variar la intensidad de brillo con un potenciómetro, en la
siguiente imagen se muestra la forma en que se mostrarán los datos.

29
Protocolo NEC.

1.- Realizar la lectura de los comandos de un control remoto que cuente con el protocolo
NEC, y esos comandos deberán mostrarse en una pantalla LCD 16x2.

2.- Utilizando el protocolo NEC, deberá realizar las siguientes acciones dependiendo la
tecla que se presione en el control remoto:

 Cuando se presione la tecla 1, deberá encender el led verde.


 Cuando se presione la tecla 2, deberá apagar el led verde.
 Cuando se presione la tecla 3, deberá encender todo el puerto C
 Cuando se presione le tecla 0, deberá apagar todo el puerto C.

3.- Controlar el ángulo de un servomotor dependiendo la tecla que se presione en el control


remoto.

 Tecla 0, mover servo a 0°.


 Tecla 1, mover servo a 90°.
 Tecla 3, mover servo a 180°.

Comunicación por radiofrecuencia.

1.- Establecer una comunicación por radiofrecuencia entre dos microcontroladores PIC, el
transmisor controlará el encendido y apagado de 4 leds del receptor a través de pulsadores
que estarán conectados en el transmisor.

2.- Controlar la velocidad de un motor de corriente directa desde el transmisor hacia el


receptor a través de un potenciómetro.

3.- Controlar el ángulo de un servomotor desde el transmisor hacia el receptor a través de


un potenciómetro.

4.- Enviar los datos de un potenciómetro desde el transmisor hacia el receptor, y los datos
deberán mostrarse en una pantalla LCD conectada en el receptor.

5.- Enviar el valor de un contador de 0 a 9 con un tiempo de 500ms desde el transmisor


hacia el receptor, el valor del contador se mostrará en un display de 7 segmentos conectado
en el receptor.

30
Comunicación SPI.

1.- Establecer una comunicación SPI entre dos microcontroladores PIC, el primer
microcontrolador será configurado como maestro, para este caso se le conectarán 3
pulsadores para controlar el encendido y apagado de 3 leds que estarán conectados en el
esclavo, el segundo microcontrolador será configurado como esclavo y recibirá los datos
del maestro para controlar el encendido y apagado 3 leds.

Los 3 pulsadores estarán conectados en los pines del puerto B del controlador maestro, y
los 3 leds estarán conectados en los pines del puerto C del controlador esclavo, tal como se
muestra en la siguiente imagen.

31
2.- Establecer una comunicación SPI entre dos microcontroladores PIC, el primer
microcontrolador será configurado como maestro, para este caso se le conectarán 2
potenciómetros para controlar señales de PWM para un led y un servomotor que estarán
conectados en el esclavo, el segundo microcontrolador será configurado como esclavo y
recibirá los datos del maestro para controlar la intensidad de brillo de un led y el ángulo de
un servomotor.

Los 2 potenciómetros estarán conectados en los pines RA0 y RA1 del puerto A del
controlador maestro, el led estará conectado en el CCP1 y el servomotor estará conectado
en el pin RD1 del controlador esclavo, tal como se muestra en la siguiente imagen.

3.- Utilizando la comunicación SPI, el controlador maestro deberá solicitar los datos de un
potenciómetro y un pulsador que estarán conectados en el esclavo, el controlador esclavo
enviará esos datos cuando el maestro lo solicite, y esos datos se mostraran en una pantalla
LCD que estará conectada en el controlador maestro.

32
Pantalla TFT ST7735.

1.- Mostrar los siguientes textos de forma secuencial en una pantalla TFT, cada texto se
mostrará por 1 segundo, al final la pantalla TFT se colocará de fondo negro por 500ms.

2.- Utilizando una pantalla TFT se deberá ir colocando el fondo de la pantalla con los
colores ROJO, VERDE, AZUL, MAGENTA, CYAN, AMARILLO, BLANCO, cada color
se mostrará por 1 segundo.

3.- Mostrar los valores de un potenciómetro y el valor del voltaje en una pantalla TFT tal
como se muestra en la siguiente imagen.

33
4.- Utilizando un solo pulsador, deberá ir cambiando la siguiente animación indicando que
un led estará encendido o apagado, de la misma forma se debe conectar un led al
microcontrolador en el pin RB0.

5.- Mostrar el valor de una señal de PWM y a su vez el porcentaje del ciclo de trabajo, en el
CCP1 deberá conectar un led para variar la intensidad de brillo con un potenciómetro, en la
siguiente imagen se muestra la forma en que se mostrarán los valores.

6.- Mostrar 3 imágenes en formato .BMP en una pantalla TFT, cada imagen deberá
mostrarse por 2 segundos en la pantalla TFT, al final la pantalla se colocara en fondo
blanco y nuevamente se repetirá el ciclo.

34
Lector de tarjetas RFID.

1.- Utilizando el módulo MFRC522, se deberá realizar la lectura de los TAGS y mostrar las
ID en una pantalla LCD o a través del puerto serial.

2.- Realizar un sistema de control de acceso RFID utilizando el módulo MFRC522, cuando
la ID del TAG se encuentre almacenada entonces quiere decir que el usuario tiene acceso,
en ese momento se encenderá un led verde por 2 segundos, de lo contrario si la ID del TAG
no se encuentra almacenada entonces el usuario no tendrá acceso, en ese momento se
encenderá un led rojo por 1.5 segundos.

3.- Leer las ID de al menos 3 TAGS y almacenarlas para que tengan acceso, en una pantalla
LCD se mostraran mensajes indicando cuando el usuario tiene acceso o no tiene acceso,
además si el usuario tiene acceso, deberá activarse un relevador por 2 segundos liberando
una chapa eléctrica.

4.- Realizar la lectura de un TAG con el MFRC255, la ID deberá almacenarse dentro de la


memoria EEPROM del microcontrolador PIC, después la ID almacenada en la memoria
EEPROM deberá mostrarse a través del puerto serial solo cuando se presione un pulsador.

Lectura y escritura de memoria SD.

1.- Escribir el texto “Programación de microcontroladores Pic en lenguaje C” en un archivo


con extensión .TXT en una memoria SD utilizando el microcontrolador PIC18F4550, ese
texto que se encuentra almacenado en el archivo .TXT deberá imprimirse a través del
puerto serial.

2.- Escribir 50 muestras de los datos de un sensor analógico dentro de una memoria SD
dentro de un archivo con extensión .TXT, al finalizar el proceso de escritura, esos datos que
se encuentran almacenados deberán imprimirse a través del puerto serial.

3.- Escribir los datos de la fecha y la hora de un RTC en una memoria SD con intervalos de
1 segundo.

4.- Utilizando un sensor DHT11, se deberán escribir los datos de la temperatura y humedad
en una memoria SD dentro de un archivo con extensión .XLSX, el tiempo de escritura de
esos datos será cada 2 segundos.

35
Transmisión de datos con registro de
desplazamiento 74LS164.

1.- Utilizando el circuito integrado 74LS164 y el microcontrolador PIC, deberá controlar el


encendido y apagado de 8 leds por 1 segundo.

2.- Generar la siguiente secuencia de leds utilizando el circuito integrado 74LS164 y el


microcontrolador PIC, el tiempo de la secuencia debe ser de 100ms.

3- Incrementar un contador de 0 a 15 cada 500ms y deberá mostrarse en un display de 7


segmentos, los pines del display estarán conectados a las salidas del circuito integrado
74LS164.

4.- Diseñar un programa que permita el control de 2 semáforos, los leds deberán estar
conectados a las salidas del circuito integrado 74LS164, los semáforos realizaran la
siguiente secuencia:

5.- Utilizando el circuito integrado 74LS164 y el microcontrolador PIC, deberá generar una
torreta de luces, primero 4 leds azules destellaran 3 veces con un tiempo de 70ms y después
4 leds rojos destellaran 3 veces con un tiempo de 70ms.

36
Lectura de trama de datos de inicio a fin por
USART.

1.- Descomponer la trama de datos “I120GN22F” en dos tramas, los datos extraídos de
ambas tramas deberán imprimirse por el puerto serial.

2.- Enviar una trama de datos que contenga los valores para controlar 2 señales de PWM
del microcontrolador PIC, por ejemplo “I255L127F”.

3.- Enviar una trama de datos que contenga los valores para controlar el encendido y
apagado de 8 leds conectados al puerto B del microcontrolador PIC.

4.- Controlar la intensidad de brillo de un led RGB desde el puerto serial, deberá enviar una
trama de datos que contenga los valores para controlar la intensidad de brillo de cada canal
del led RGB.

5.- Enviar los números de 0 a 9 desde el puerto serial y deberán mostrarse en un display de
7 segmentos, deberá enviar una trama de datos que contenga los valores de 0 a 9.

DAC (Convertidor Digital-Analógico).

1.- Utilizando el DAC MCP4725, deberán enviarse los voltajes 1.10, 2.20, 3.30, 4.50, 5.00
con el microcontrolador cada de 2 segundos.

2.- Variar el rango del voltaje de 0 a 5 volts del DAC MCP4725 a través de un
potenciómetro, se deberá medir con un multímetro los valores de voltaje para verificar que
esté funcionando correctamente.

3.- Limitar la entrada de voltaje del DAC MCP4725 a 3.3 volts y variar el rango del voltaje
de 0 a 3.3 volts a través de un potenciómetro, se deberá medir con un multímetro los
valores de voltaje para verificar que esté funcionando correctamente.

4.- Enviar el valor del voltaje deseado al DAC MCP4725 desde el puerto serial, una vez
enviado el dato deberá mostrarse el valor de voltaje enviado a través del puerto serial.

5.- Utilizando el DAC MCP4725 deberá generar una señal tipo diente de sierra, para poder
visualizar la señal generada se tendrá que conectar la salida del DAC a un osciloscopio.

37
Control de motores paso a paso con driver
A4988.

1.- Controlar el giro de un motor paso a paso utilizando 2 pulsadores, con el primer
pulsador el motor deberá girar hacia la izquierda, y con el segundo pulsador el motor
deberá girar hacia la derecha.

2.- Realizar un programa que cuando se presione un pulsador el motor paso a paso de una
vuelta hacia la izquierda, después se detiene por 500ms, posteriormente da una vuelta hacia
la derecha, al final el motor se detiene y nuevamente se repite el ciclo cada vez se presione
el pulsador.

3.- Controlar la posición de un motor paso a paso desde el puerto serial, por ejemplo si se
envía el dato 180, el motor deberá posicionarse a 180° y así sucesivamente.

4.- Controlar la velocidad de giro de motor paso a paso mediante un potenciómetro, el


rango de velocidad depende del tipo de motor.

Comunicación USB-HID.

1.- Controlar el encendido y apagado de 4 leds por USB-HID desde una interfaz creada en
LabVIEW.

2.- Enviar los datos de un sensor analógico desde el microcontrolador hacia el ordenador
por USB-HID, los valores de dicho sensor se mostrarán gráficamente a través de una
interfaz en LabVIEW.

3.- Controlar 2 señales de PWM del microcontrolador PIC por USB-HID desde una interfaz
creada en LabVIEW.

4.- Diseñar un programa que permita enviar y recibir datos por USB-HID a través de una
interfaz creada en LabVIEW, en este caso se controlará el encendido y apagado de un led,
y a su vez se enviará el valor de un potenciómetro.

5.- Enviar los datos de 2 potenciómetros desde el microcontrolador hacia el ordenador por
USB-HID, los valores se mostraran gráficamente a través de una interfaz en LabVIEW.

38
Comunicación USB-CDC.

1.- Enviar los datos de un sensor analógico desde el microcontrolador hacia el ordenador
por USB-CDC con un tiempo de 100 milisegundos.

2.- Realizar un programa que cuando se reciba el carácter „1‟ por USB-CDC, se encienda
un led, y cuando se reciba el carácter „0‟ se apague el led.

3.- Controlar el sentido de giro de un motor de corriente directa por USB-CDC, cuando
reciba el carácter „I‟, el motor debe girar hacia la izquierda, cuando se reciba el carácter
„D‟, el motor debe girar hacia la derecha y cuando reciba el carácter „A‟, el motor deberá
apagarse.

4.- Realizar un programa en donde sí se recibe el texto “led=on” por USB-CDC, se


encienda un led, sí se recibe el texto “led=off, se apague el led.

5.- Controlar 2 canales de PWM del microcontrolador por USB-CDC para regular la
intensidad de brillo de 2 leds desde una interfaz gráfica en LabVIEW por medio de dos
sliders virtuales.

6.- Enviar los datos de un sensor ultrasónico HC-SR04 por USB-CDC, los valores se
mostrarán gráficamente a través de una interfaz creada en LabVIEW o por el monitor
serial.

39

También podría gustarte