010101000100011101010010
10100101010
01010100010101010 101010101001010100 01010101 01010101
0101010101
de microcontroladores
con Pic ó ArdUino “Entra Mirando y Sal Programando”
010101000100010101010100 1010101010101111101010010
01010101010001110101
011010101010
0101010101
Curso BáSico
01010100000 1010010111010100 010101000100010101010100 1010101010101111101010010
0101010000 10101010100
0101010000 10101010100
01010101
10100101010
010101000101010000111101010101010100 1010101010101111101010100101010101010
0101010101
10100101010 10100101010
011010101010
10100101010
01010101
01010100010101010101010 101010010101010100
0101010101000010101
01010100010101010 101010100
10100101010 0110100000101101010101010
010101000100010101010100 1010101010101111101010010
10100101010
0101010000 10101010100
01010100010101010 101010101001010100
www.credetec.com.mx
Descripción:
010101000100010101010100 1010101010101111101010010
0101010000 10101010100
.
Este curso fue diseñado para personas que desean conocer e introducirse al mundo de los PIC y al Mundo ARDUINO, selecciona el curso que deseas! PIC ó ARDUINO.
Brindando una documentación amplia y la teoría-práctica, hacen que este curso se vuelva dinámico, desde el primer programa hasta algún diseño más complejo.
Recomendando siempre el auto aprendizaje, se incluye la primera parte de una excelsa recopilación de libros y manuales(digitales), que llevan de la mano a la persona que asiste al curso a entender y profundizar en el tema de los microcontroladores PIC & ARDUINO desde diferentes puntos: electrónicos, matemáticos, de programación, de diseño y diversas aplicaciones que propician una experiencia cultural en el mundo de los micros.
Finalmente la persona que acuda a este curso tendrá el conocimiento e idea clara de cómo empezar y desarrollar proyectos de gran alcance, realizando el siguiente proceso: teoría (introducción mundo PIC ó ARDUINO y Representación Digital), programación (compilador), simulación (simulador, PIC), físicamente (placa de pruebas), que junto a la creatividad harán un magnífico complemento.
Objetivo y Alcance:
Entra Mirando y Sal Programando: Lo que necesitas saber para echar a andar tus microcontroladores PIC ó ARDUINO, sin previo Conocimiento.
Los parámetros de alcance son desde personas que alguna vez hayan visto un chip, aficionados a la electrónica de los micros, estudiantes y maestros de: electrónica, programación, computación, control, robótica, mecatrónica, diseño electrónico e instrumentación que deseen trascender y actualizar los métodos educativos e implementar nuevas formas en que la tecnología ha ido cambiando, en prácticas, tareas, inventos e incluirlos en diseños con circuitos actuales.
.
1010101010101111101010010
0101010000
ÍNDICE Experimento 1 : Led enciende y apaga
1
Experimento 3: Semáforo
3
Experimento 2 : Led y switch
Experimento 4: Led´s rotando sólo ida
Experimento 5 : Led´s rotando ida y vuelta Experimento 6 : Puerto A = B
Experimento 7: Display de 7 segmentos
Experimento 8 : Display de cristal líquido (LCD)
Experimento 9: Modulación de ancho de pulso (PWM) y led Experimento 10: Generación de tonos y melodías Contacto
2 4 5 6 7 8 9
10 11
Experimento 1 : Led enciende y apaga
010101000100010101010100
10101010100
Descripción:
Este experimento trata de acercar la teoría y lo platicado con la práctica, en su primer programa conoceremos como realizar las configuraciones necesarias con el compilador para comenzar a programar nuestro pic ó arduino, terminando este proceso con el programa 1* compilado y cargado en nuestro microcontrolador. Mostraremos como utilizar nuestro programador pickit 2, que será el encargado de transferir el archivo hexadecimal creado por el compilador a nuestro pic. Se realizará una plática sobre cómo funciona dicho programador y cómo lograr programar diferentes microcontroladores de microchip con el mismo pickit 2, sin necesidad de gastar en programadores universales y se proponen programadores alternativos de gran calidad. Caso arduino, sólo basta transferir el archivo. *programa 1: Este programa está diseñado para encender y apagar un led, determinado tiempo, en un bucle infinito. Las variaciones del programa pueden ser: • • • • •
Que no sea en bucle infinito, que se haga sólo una vez Cambiar los tiempos de retardo en encendido y en apagado Encender y apagar varios leds a diferentes tiempos y diferentes secuencias programables. Implementación de interrupciones Encendido y apagado de un led para determinar un evento, puede ser una señal informativa, alarma, tiempo de disparo de algún circuito, tiempo de activación de un relé y toda manipulación que se pueda imaginar al llevar a un nivel alto o bajo un pin de nuestro pic. Tareas a desarrollar: Un semáforo
Alarma visual con led de alta luminiscencia
Conectar un buzzer y realizar mismas variaciones que con un led. Encontrar un dispositivo que sea de última tecnología y se active con un “1” o “0” lógico y sea manipulable del mismo modo que un led.
1
Experimento 2 : Led y Switch
010101000100010101010100
0101010000
Descripción:
Este experimento prueba el estado de un pin del puerto B(RB1) y dependiendo del mismo apaga o enciende un led (RB0) ó dos terminales de la placa arduino. Lo interesante es la configuración del puerto de ocho bits, donde poner 1 significa que ese pin es entrada y colocar un cero significa que ese pin es salida. *programa 2:
Este programa está diseñado para encender y apagar un led, dependiendo de la señal que manda un botón (sea uno o cero), en un bucle infinito. Las variaciones del programa pueden ser: • • • •
Que no sea en bucle infinito, que se haga sólo una vez Encender y apagar varios leds, presionando varios botones. Implementación de interrupciones Encendido y apagado de otra circuitería, activar un buzzer, o simplemente mandar una señal que se relacione con presionar el botón. Tareas a desarrollar:
Realizar un programa que al presionar un solo botón vaya incrementando un tiempo en que permanece encendido el led.
Realizar una implementación que al presionar el botón incremente los datos del puerto B. Imaginar que otras aplicaciones podemos realizar al presionar un solo botón.
2
Experimento 3 : Semáforo Descripción:
1010101010101111101010010
10101010100
Este experimento está diseñado para mostrar un ejemplo de la vida cotidiana y sencillo de indicación con leds. En este caso un semáforo. *programa 3:
Se presenta el programa de manera rudimentaria para dar una clara idea de lo que sucede dentro del micro y simular un semáforo. El programa esta paso a paso con el propósito de generar nuevas ideas de cómo mejorarlo y hacerlo más funcional. Las variaciones del programa y que se ven en clase son: • • • • •
Que no sea en bucle infinito, que se haga sólo una vez Cambiar los tiempos de retardo en encendido y en apagado Implementación de interrupciones Como utilizar funciones Como realizarlo con una librería Tareas a desarrollar:
Que el semáforo después de realizar la rutina 3 veces, comience a mandar la señal preventiva que normalmente se ve después de media noche Imaginar una nueva manera de presentar este programa, utilizando nuevos recursos.
3
Experimento 4 : Led´s rotando sólo ida
010101000100010101010100
0101010000
Descripción:
En esta práctica se pretende mostrar un led rotando, es un programa escrito de manera laboriosa, utilizando la rotación prácticamente a mano, diciéndole al microcontrolador que dato enviar al puerto y cuanto tiempo (500ms).
La rotación de un bit es uno de los ejemplos más comunes en el mundo de los microcontroladores, y utilizando la herramienta en c, existen diversas formas de llevar a cabo este ejemplo. *programa 4:
El microcontrolador tiene conectado en el puerto b, 8 leds, desde RB0 hasta RB7, ó terminales a la placa arduino, el programa está diseñado para encender el primer led, mantenerlo encendido medio segundo y apagarlo, después el segundo led y así hasta llegar al led 8, y el programa vuelve a iniciar. Sólo lleva un sentido. Las variaciones del programa pueden ser: • • •
Realizar el movimiento de leds de forma inversa Manipular el tiempo de encendido y apagado Comenzar en otro dato que no sea 0000 0001 Tareas a desarrollar:
Encontrar la anomalía del programa y pensar como corregirla Encender dos led y rotarlos a la derecha
Encender tres leds y rotarlos a la izquierda
Realizar efecto de parpadeo, que el led parpadee 3 veces antes de rotar Encender todos los leds excepto uno y rotar ese led apagado
Implementar técnicas de programación para realizarlo con : for, do, switch, while.
4
010101000100010101010100
10101010100
Experimento 5 : Led´s rotando ida y vuelta En esta práctica se pretende mostrar un led rotando de izquierda a derecha, es un programa escrito de manera laboriosa, utilizando la técnica de multiplicación de dato, pues considerando que los datos de 8 bits se escriben 0000 0000, y que cada posición es 2 n (0000 0001 = 1, 0000 0010=2, 0000 0100=4, 0000 1000=8, 0001 0000= 16, 0010 0000=32, 0100 0000=64, 1000 0000 =128, 1 0000 0000 =256). La rotación de un bit es uno de los ejemplos más comunes en el mundo de los microcontroladores, y utilizando la herramienta en c, existen diversas formas de llevar a cabo este ejemplo. *programa 5:
El microcontrolador tiene conectado en el puerto b, 8 leds, desde RB0 hasta RB7, mismo con las terminales de la placa arduino, el programa está diseñado para encender el primer led, mantenerlo encendido medio segundo y apagarlo, multiplicar el dato del puerto por 2 y mandar ese dato al puerto donde están los leds, generando el efecto de rotación e ida y al llegar al ultimo led, dividir el dato entre 2, para realizar el efecto de regreso. Las variaciones del programa pueden ser: • • • • •
Realizar el movimiento de leds de forma inversa Manipular el tiempo de encendido y apagado Comenzar en otro dato que no sea 0000 0001 Realizar el programa utilizando operadores << y >> Realizar el programa con una exponencial. Tareas a desarrollar:
Encender dos led y rotarlos a la derecha
Encender tres leds y rotarlos a la izquierda
Realizar efecto de parpadeo, que el led parpadee 3 veces antes de rotar Encender todos los leds excepto uno y rotar ese led apagado
Encontrar y corregir el error en el programa de operadores y corregirlo.
5
Experimento 6 : Puerto A = B Descripción:
010101000100010101010100
0101010000
El experimento actual trata de mostrar un manejo claro del puerto, como enviar 8 bits a nuestro puerto B del pic, o lo similar con arduino y manipular la información de modo tal que se vea reflejado a la salida del mismo. Se muestra como configurar los puertos del pic para hacerlos funcionar como entrada o como salida y la configuración en arduino, para realizar la manipulación de datos. Podemos entonces configurar todo un puerto como entrada o todo como salida según nos convenga, o bien, sólo configurar unos bits del puerto como entrada y otros como salida, también a nuestro gusto. *programa 6:
El programa está diseñado para enviar datos al puerto B dependiendo de lo que haya en el puerto A, de modo tal que hacemos puerto B = puerto A (lo que esté en el puerto A será asignado al puerto B), en arduino la entrada será la salida. Las variaciones del programa pueden ser: • • • •
Hacer la acción contraria puerto A= puerto B, considerando que el pin RA5 solo funciona como entrada, no como salida (colocar resistencia de pull-up),para pic. Cambiar las configuraciones de entrada y salida de los puertos a nuestra voluntad, haciendo algunas entradas y algunas salidas. Implementar con interrupciones Dependiendo de una entrada seleccionada, mandar una señal a la salida, podemos utilizar cualquier sensor.
Tareas a desarrollar:
Comparar una entrada y enmascarar los datos para evitar errores, se puede generar una secuencia de datos de entrada y si es correcta activar una salida.
Imaginar que otras cosas podemos realizar con cambios de estado de un pin o bien de un puerto completo. Implementación de esta práctica si seleccionaste el curso de arduino.
6
Experimento 7 : Display de 7 segmentos Descripción:
010101000100010101010100
10101010100
En este experimento utilizaremos un display de 7 segmentos, de cátodo común, con ayuda de una tabla, que es como normalmente se maneja, comenzar a enviar datos por el puerto, desde 0 y hasta 9. *programa 7: Este programa está diseñado para realizar una cuenta 0-9 y realizarlo de manera permanente. Las variaciones del programa pueden ser: • • • •
Que no sea en bucle infinito, que se haga sólo una vez Cambiar los tiempos en que se muestran los dígitos Implementación de interrupciones Cuenta regresiva Tareas a desarrollar:
Contador de objetos Que el dígito incremente al presionar un botón Que el dígito decremente al presionar un botón. Crear un dígito que no sea numérico (puede ser una letra). Implementar un contador de 0000 a 9999
7
Experimento 8 : Display de cristal líquido (LCD) Descripción:
010101000100010101010100
0101010000
El desarrollo de esta práctica nos muestra como conectar y comenzar a trabajar con un LCD de 16x2, las configuraciones necesarias y manejo de la librería lcd.c, enviando un texto y mostrándolo en el display de cristal líquido y aplicación de la librería para caso arduino. *programa 8: Este programa está diseñado para mandar un texto, el que sea a la LCD. Debemos conocer el límite de la pantalla 16x2, considerando la memoria virtual. (En menos 15 minutos!) Las variaciones del programa pueden ser: • • •
Implementación de interrupciones Mandar un dato a la LCD cuando suceda un evento Hacer un menú de selecciones Tareas a desarrollar:
Escribir un programa que mande el abecedario Mover una palabra por toda la pantalla Posicionarse en una coordenada que no sea (0,0) Mostrar un mensaje y después de 3 segundos que muestre otro Realizar un contador que se visualice en el LCD Implementar un teclado & LCD Realizar una animación Implementar un programa que muestre datos en la LCD, un reloj, termómetro, multímetro, frecuencímetro, comunicación etc. Describir en qué consiste la inicialización de una LCD.
8
Experimento 9 : Modulación de ancho de pulso (PWM) y Led
010101000100010101010100
0101010000
Descripción:
Este experimento nos enseña la modulación de ancho de pulso, de 0 a 5v, manejando los ciclos de trabajo de la señal digital.
*programa 9: Este programa está diseñado para encender un led conectado en la terminal RB3(ccp1/pwm) y controlar la intensidad y brillo de un led de alta luminiscencia, partiendo desde 0 y hasta el máximo de encendido. Con arduino, sólo basta con cargar el valor 0-256 ó 0-1023! Las variaciones del programa pueden ser: • • •
Implementación de interrupciones Control de un motor de CD Control de velocidad, intensidad, sonido, voltaje etc. Tareas a desarrollar: Control de velocidad de un ventilador de DC Medir la salida 0-5v
Realizar un programa que al presionar un botón incremente el PWM
Realizar un programa que al presionar un botón incremente el PWM y otro botón que al presionarlo decremente el PWM Realizar un programa que mande datos determinados, por ejemplo, voltaje y los despliegue en una LCD o al puerto serie.
9
Experimento 10 : Generación de tonos y melodías Descripción:
010101000100010101010100
0101010000
Este experimento nos enseña como generar tonos específicos y duración de los mismos utilizando la librería tones.c, y con instrucciones claras para la misma utilización. Mismo caso para arduino. *programa 10: El diseño de este programa es sencillo y muestra una pequeña tonada, el clásico happy birthday. Las variaciones del programa pueden ser: • • •
Implementación de interrupciones Modificar la duración de los tonos Realizar la tonada una octava arriba Tareas a desarrollar:
Generar la tonada del himno nacional mexicano. Generar la tonada del tema de la pantera rosa. Generar la tonada de estrellita.
Realizar un programa que toque 3 tonadas diferentes y con duraciones aleatorias.
Desarrollar un programa que tenga conectados botones en un puerto y al presionarlos suene un tono diferente, tipo piano. Realizar un programa que comience a tocar una tonada al presionar un botón y que la deje de tocar al presionar de nuevo. Realizar una simulación de sirena desde 350hz y hasta 5 khz
10
010101000100010101010100 1010101010101111101010010
0101010000 10101010100
CONTACTO
curso.micropic@gmail.com
Teléfono Móvil:
solicitar vía mail
No olvides darle like a la página de Facebook, para fomentar y difundir el desarrollo Tecnológico en México!
www.credetec.com.mx 11