SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
1
MANUAL DE PRÁCTICAS
CURSO DE
MICROCONTROLADORES PIC
EN LENGUAJE C
Creado por: Abiezer Hernández Oloarte
Ing. en Mecatrónica
2
Í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
3
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
4
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.
5
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.
6
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.
7
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.
8
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”.
9
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.
10
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.
11
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.
12
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.
13
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.
14
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.
15
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.
16
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.
17
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.
18
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.
19
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.
20
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.
21
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.
22
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.
23
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.
MAESTRO
ESCLAVO 1
DIRECCIÓN
“0X01”
ESCLAVO 2
DIRECCIÓN
“0X02”
A
B
24
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.
25
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.
26
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.
27
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.
28
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
29
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.
30
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.
31
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.
32
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.
33
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.
34
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.
35
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.
36
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.
37
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.
38
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.
39
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.

Más contenido relacionado

La actualidad más candente

Circuitos integrados y familias logicas
Circuitos integrados y familias logicasCircuitos integrados y familias logicas
Circuitos integrados y familias logicasNoe Garcia
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresBertha Vega
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fetVelmuz Buzz
 
PLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuencialesPLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuencialesSANTIAGO PABLO ALBERTO
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Jomicast
 
Lugar geométrico de las raices control 1
Lugar geométrico de las raices control 1Lugar geométrico de las raices control 1
Lugar geométrico de las raices control 1Marvin Pariona
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con ArduinoJomicast
 
Ingeniería de control: Tema 3. El método del espacio de estados
Ingeniería de control: Tema 3. El método del espacio de estadosIngeniería de control: Tema 3. El método del espacio de estados
Ingeniería de control: Tema 3. El método del espacio de estadosSANTIAGO PABLO ALBERTO
 
Disparo de los Flip Flop
Disparo de los Flip FlopDisparo de los Flip Flop
Disparo de los Flip FlopCesia Rebeca
 
Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...Israel Chala
 
Laboratorio de electronica analoga
Laboratorio de electronica analogaLaboratorio de electronica analoga
Laboratorio de electronica analogaDante Leiva
 
3 2 circuitos-disparo
3 2 circuitos-disparo3 2 circuitos-disparo
3 2 circuitos-disparoAxtridf Gs
 
Ingeniera de control: Criterio de estabilidad de nyquist
Ingeniera de control: Criterio de estabilidad de nyquistIngeniera de control: Criterio de estabilidad de nyquist
Ingeniera de control: Criterio de estabilidad de nyquistSANTIAGO PABLO ALBERTO
 
Guía gedis
Guía gedisGuía gedis
Guía gedisErwin
 

La actualidad más candente (20)

Circuitos integrados y familias logicas
Circuitos integrados y familias logicasCircuitos integrados y familias logicas
Circuitos integrados y familias logicas
 
Reporte compuertas logicas
Reporte compuertas logicas Reporte compuertas logicas
Reporte compuertas logicas
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadores
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
 
PLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuencialesPLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuenciales
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
 
Lugar geométrico de las raices control 1
Lugar geométrico de las raices control 1Lugar geométrico de las raices control 1
Lugar geométrico de las raices control 1
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con Arduino
 
Ingeniería de control: Tema 3. El método del espacio de estados
Ingeniería de control: Tema 3. El método del espacio de estadosIngeniería de control: Tema 3. El método del espacio de estados
Ingeniería de control: Tema 3. El método del espacio de estados
 
Disparo de los Flip Flop
Disparo de los Flip FlopDisparo de los Flip Flop
Disparo de los Flip Flop
 
Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...
 
Laboratorio de electronica analoga
Laboratorio de electronica analogaLaboratorio de electronica analoga
Laboratorio de electronica analoga
 
Practica0,1,2,3,4
Practica0,1,2,3,4Practica0,1,2,3,4
Practica0,1,2,3,4
 
Circuitos secuenciales
Circuitos secuencialesCircuitos secuenciales
Circuitos secuenciales
 
decodificador
decodificadordecodificador
decodificador
 
T4
T4T4
T4
 
Fuente de alimentación regulada con diodo zener
Fuente de alimentación regulada con diodo zenerFuente de alimentación regulada con diodo zener
Fuente de alimentación regulada con diodo zener
 
3 2 circuitos-disparo
3 2 circuitos-disparo3 2 circuitos-disparo
3 2 circuitos-disparo
 
Ingeniera de control: Criterio de estabilidad de nyquist
Ingeniera de control: Criterio de estabilidad de nyquistIngeniera de control: Criterio de estabilidad de nyquist
Ingeniera de control: Criterio de estabilidad de nyquist
 
Guía gedis
Guía gedisGuía gedis
Guía gedis
 

Similar a Microcontroladores PIC: Manual de practicas PIC C Compiler

Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-MicrocontroladoresOmar Ruiz
 
Manual del Efergy e2
Manual del Efergy e2Manual del Efergy e2
Manual del Efergy e2ENOVAE
 
Manual de uso Efergy elite
Manual de uso Efergy eliteManual de uso Efergy elite
Manual de uso Efergy eliteENOVAE
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
 
Tutorial proton part 4
Tutorial proton part 4Tutorial proton part 4
Tutorial proton part 4dar851112
 
Proyecto micro
Proyecto microProyecto micro
Proyecto microjhompix
 
Practica 2 manejo del código bcd en display de 7 segmentos.
Practica 2 manejo del código bcd en display de 7 segmentos.Practica 2 manejo del código bcd en display de 7 segmentos.
Practica 2 manejo del código bcd en display de 7 segmentos.JavierDeJesusCamacho1
 
Manual alarma gsm
Manual alarma gsmManual alarma gsm
Manual alarma gsmJAV_999
 
Reloj calendario con temperatura y humedad
Reloj calendario con temperatura y humedadReloj calendario con temperatura y humedad
Reloj calendario con temperatura y humedadByron Ganazhapa
 

Similar a Microcontroladores PIC: Manual de practicas PIC C Compiler (20)

Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-Microcontroladores
 
Practica lab5
Practica lab5Practica lab5
Practica lab5
 
Manual del Efergy e2
Manual del Efergy e2Manual del Efergy e2
Manual del Efergy e2
 
Hd400 um es
Hd400 um esHd400 um es
Hd400 um es
 
Dispositivos electronicos
Dispositivos electronicosDispositivos electronicos
Dispositivos electronicos
 
Manual de uso Efergy elite
Manual de uso Efergy eliteManual de uso Efergy elite
Manual de uso Efergy elite
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
 
Tutorial proton part 4
Tutorial proton part 4Tutorial proton part 4
Tutorial proton part 4
 
Eventos digitales y analogicos
Eventos digitales  y analogicosEventos digitales  y analogicos
Eventos digitales y analogicos
 
Proyecto micro
Proyecto microProyecto micro
Proyecto micro
 
2. we do
2. we do2. we do
2. we do
 
Unidad didáctica 2
Unidad didáctica 2Unidad didáctica 2
Unidad didáctica 2
 
Tramas phillips
Tramas phillipsTramas phillips
Tramas phillips
 
Protocolo phillips
Protocolo phillipsProtocolo phillips
Protocolo phillips
 
Practica 2 manejo del código bcd en display de 7 segmentos.
Practica 2 manejo del código bcd en display de 7 segmentos.Practica 2 manejo del código bcd en display de 7 segmentos.
Practica 2 manejo del código bcd en display de 7 segmentos.
 
Eventos digitales y analógicos
Eventos digitales y analógicosEventos digitales y analógicos
Eventos digitales y analógicos
 
Tutorial proteus inicial
Tutorial proteus inicialTutorial proteus inicial
Tutorial proteus inicial
 
Tutorialproteus
TutorialproteusTutorialproteus
Tutorialproteus
 
Manual alarma gsm
Manual alarma gsmManual alarma gsm
Manual alarma gsm
 
Reloj calendario con temperatura y humedad
Reloj calendario con temperatura y humedadReloj calendario con temperatura y humedad
Reloj calendario con temperatura y humedad
 

Más de SANTIAGO PABLO ALBERTO

Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaSANTIAGO PABLO ALBERTO
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez SANTIAGO PABLO ALBERTO
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio PereiraSANTIAGO PABLO ALBERTO
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...SANTIAGO PABLO ALBERTO
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1SANTIAGO PABLO ALBERTO
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTSANTIAGO PABLO ALBERTO
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...SANTIAGO PABLO ALBERTO
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...SANTIAGO PABLO ALBERTO
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...SANTIAGO PABLO ALBERTO
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...SANTIAGO PABLO ALBERTO
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...SANTIAGO PABLO ALBERTO
 

Más de SANTIAGO PABLO ALBERTO (20)

secuencia electroneumática parte 1
secuencia electroneumática parte 1secuencia electroneumática parte 1
secuencia electroneumática parte 1
 
secuencia electroneumática parte 2
secuencia electroneumática parte 2secuencia electroneumática parte 2
secuencia electroneumática parte 2
 
Manual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzadaManual de teoría y practica electroneumática avanzada
Manual de teoría y practica electroneumática avanzada
 
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez Programacion de PLC basado en Rslogix 500 por Roni Domínguez
Programacion de PLC basado en Rslogix 500 por Roni Domínguez
 
Programación de microcontroladores PIC en C con Fabio Pereira
Programación de microcontroladores PIC en  C con Fabio PereiraProgramación de microcontroladores PIC en  C con Fabio Pereira
Programación de microcontroladores PIC en C con Fabio Pereira
 
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
Análisis y Diseño de Sistemas de Control Digital por Ricardo Fernandez del Bu...
 
Arduino: Arduino de cero a experto
Arduino: Arduino de cero a expertoArduino: Arduino de cero a experto
Arduino: Arduino de cero a experto
 
Fisica I
Fisica IFisica I
Fisica I
 
Quimica.pdf
Quimica.pdfQuimica.pdf
Quimica.pdf
 
Manual básico PLC OMRON
Manual básico PLC OMRON Manual básico PLC OMRON
Manual básico PLC OMRON
 
Programación de autómatas PLC OMRON CJ/CP1
Programación de  autómatas PLC OMRON CJ/CP1Programación de  autómatas PLC OMRON CJ/CP1
Programación de autómatas PLC OMRON CJ/CP1
 
Manual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMARTManual del sistema del controlador programable S7-200 SMART
Manual del sistema del controlador programable S7-200 SMART
 
Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART Catálogo de PLC S7-200 SMART
Catálogo de PLC S7-200 SMART
 
PLC: Automatismos industriales
PLC: Automatismos industrialesPLC: Automatismos industriales
PLC: Automatismos industriales
 
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...
 
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...PLC y Electroneumática: Electricidad y Automatismo eléctrico por  Luis Miguel...
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...
 
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...
 
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...
 
PLC: Motor Dahlander
PLC: Motor DahlanderPLC: Motor Dahlander
PLC: Motor Dahlander
 
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...Electrónica digital:  Introducción a la Lógica Digital - Teoría, Problemas y ...
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...
 

Último

Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...ssuser646243
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
TEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptx
TEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptxTEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptx
TEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptxYEDSONJACINTOBUSTAMA
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptxJhordanGonzalo
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
AVANCE EXPEDIENTE TECNICO POROTO - TRUJILLO
AVANCE EXPEDIENTE TECNICO POROTO - TRUJILLOAVANCE EXPEDIENTE TECNICO POROTO - TRUJILLO
AVANCE EXPEDIENTE TECNICO POROTO - TRUJILLOSANTOSESTANISLAORODR
 

Último (20)

Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
TEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptx
TEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptxTEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptx
TEC-SEMANA 9-GRUPO1 SENATI SEGURIDAD Y PREVENCIÓN DE RIESGOS.pptx
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
AVANCE EXPEDIENTE TECNICO POROTO - TRUJILLO
AVANCE EXPEDIENTE TECNICO POROTO - TRUJILLOAVANCE EXPEDIENTE TECNICO POROTO - TRUJILLO
AVANCE EXPEDIENTE TECNICO POROTO - TRUJILLO
 

Microcontroladores PIC: Manual de practicas PIC C Compiler

  • 1. 1 MANUAL DE PRÁCTICAS CURSO DE MICROCONTROLADORES PIC EN LENGUAJE C Creado por: Abiezer Hernández Oloarte Ing. en Mecatrónica
  • 2. 2 Í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
  • 3. 3 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
  • 4. 4 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.
  • 5. 5 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.
  • 6. 6 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.
  • 7. 7 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.
  • 8. 8 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”.
  • 9. 9 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.
  • 10. 10 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.
  • 11. 11 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.
  • 12. 12 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.
  • 13. 13 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.
  • 14. 14 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.
  • 15. 15 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.
  • 16. 16 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.
  • 17. 17 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.
  • 18. 18 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.
  • 19. 19 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.
  • 20. 20 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.
  • 21. 21 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.
  • 22. 22 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.
  • 23. 23 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. MAESTRO ESCLAVO 1 DIRECCIÓN “0X01” ESCLAVO 2 DIRECCIÓN “0X02” A B
  • 24. 24 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.
  • 25. 25 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.
  • 26. 26 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.
  • 27. 27 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.
  • 28. 28 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
  • 29. 29 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.
  • 30. 30 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.
  • 31. 31 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.
  • 32. 32 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.
  • 33. 33 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.
  • 34. 34 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.
  • 35. 35 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.
  • 36. 36 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.
  • 37. 37 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.
  • 38. 38 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.
  • 39. 39 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.