Curso de Pic

Post on 26-Nov-2015

209 views 1 download

Transcript of Curso de Pic

PROGRAMACIÓN DE UN MICROCONTROLADORPIC 16F628A.

PROGRAMACIÓN DE UNA APLICACIÓN PARA CELULAR ANDROID

CONTROL DE UN CIRCUITO VÍA BLUETOOTH

¿Qué es un microcontrolador y

para que sirve?

ES UN CIRCUITO INTEGRADO PROGAMABLE, CAPAZ DE EJECUTAR LAS ORDENES GRABADAS EN SU MEMORIA.

DOMOTICA

PRACTICA

Encender y apagar 5 ledsde forma independientepor medio del celular

MATERIALES

• MICROCONTROLADOR PIC 16F628A• 5 LEDS DE CUALQUIER COLOR• 5 RESISTENCIA DE 220 OHM O 330 OHM• UN CRYSTAL DE 4 MHZ (opcional)• 2 CAPACITORES DE 22 PICOFARADIOS (opcional)• 1 RESISTENCIA DE 10K OHM.• 5 PUSH BUTTON NORMALMENTE ABIERTO.• 1 METRO DE CABLE UTP.• 1 PROTOBOARD.• LAPTOP• MEMORIA USB• CARGADOR DE CELULAR DE 5V.

SOTFWARE A UTILIZAR

• COMPILADOR PIC C COMPILER, para la programación del microcontrolador.

• SIMULADOR ISIS 7 PROFESIONAL PROTEUS, para la simulación del circuito.

• MICRO PROG, para grabar el programa en el microcontrolador.

• COMPILADOR APPINVENTOR , para la programación de la aplicación android.

• DOCUMENTO PDF DATASHEET DEL MICROCONTROLADOR PIC 16F628A, en este documento se encuentran todas las especificaciones del pic.

• DOCUMENTO DATASHEET DEL MODULO BLUETOOTH HC-06

• JAVA, la programación de la aplicación android requiere tener instalado JAVA en la computadora.

FLUJO DE LA COMUNICACIÓN

CELULAR

MODULO BLUETOOTH HC-06 MICROCONTROLADOR

PIC

A ? “ * # N U / &

Codigo ascii

A ? “ * # N U / &

Los leds se pueden sustituir por pistones,motores, valvulas etc..con su debida etapa depotencia

COMO FUNCIONAN LOS MODULOS BLUETOOH HC-05 Y HC-06

• Tienen un alcance de 10m• El hc-06 solo funciona como esclavo• El hc-05 funciona como esclavo y maestro• Ambos se alimentan de 3.3v a 6v • El pin VCC es positivo (+)• El pin GND es negativo (-)• El pin TX es por donde el bluetooth Transmite información.• El pin RX es por donde el bluetooth recibe la información.

“Lo que el modulo bluetooth recibe Inalambricamente, inmediatamente Lo transmite por su pin TX.”

COMO FUNCIONAN LOS MODULOS BLUETOOH HC-05 Y HC-06

• Los modulos poseen una contraseña y un nombre de fabrica, en el caso de estos modulos su contraseña de fabrica es 1234 y su nombre de fabrica varia entre LINVOR, BT UART Y JY-MCU dependiendo del fabricante.

• Tanto la contraseña como el nombre pueden cambiarse.• Estos modulos se comunican por un protocolo llamado RS232, su

configuracion de fabrica de ese protocolo es Baudios=9600 Paridad= None, Bits=8 o 9 y stop = 1, estos son parametros del protocolo RS232.

los cuales se pueden cambiar.

“Cada dispositivo bluetooth existente en el mundo posee una identificaciónúnica, llamada DIRECCION MAC, deaspecto 00:00:00:00:00:00 “

1. PROGRAMAR LA APLICACIÓN ANDROID

2.PROGRAMAR EL MICROCONTROLADOR

¿QUÉ ES LO QUE SE VA A PROGRAMAR?

1. CUANDO SE PRESIONE EL BOTON 1(LED1) ENCENDERA EL LED NUMERO 1 YAL MISMO TIEMPO SE APAGARAN LOS DEMAS LED.

2. CUANDO SE PRESIONE EL BOTON 2 (LED2) ENCENDERA EL LED NUMERO 2 YAL MISMO TIEMPO SE APAGARAN LOS DEMAS LED.

3. CUANDO SE PRESIONE EL BOTON 3 (LED3) ENCENDERA EL LED NUMERO 3 YAL MISMO TIEMPO SE APAGARAN LOS DEMAS LED.

4.CUANDO SE PRESIONE EL BOTON 4 (LED4) ENCENDERA EL LED NUMERO 4 Y AL MISMO TIEMPO SE APAGARAN LOS DEMAS LED.

5. CUANDO SE PRESIONE EL BOTON 5 (LED5) ENCENDERA EL LED NUMERO 5 YAL MISMO TIEMPO SE APAGARAN LOS DEMAS LED.

6. CUANDO SE PRESIONE EL BOTON EL 6 (CONECTAR) EL CELULAR SE CONECTARA CON EL MODULO BLUETOOTH, PARA PODER ENVIAR LA INFORMACION

CELULAR

MICROCONTROLADOR PIC

AUN NO ENCIENDE NINGUN LED, SOLO SE ESTA LOGRANDOQUE EL CELULAR YEL BLUETOOTH SEENLAZEN

PRIMERO SE DEBE LOGRAR QUE EL CELULAR Y EL MODULO BLUETOOTHSE ENLAZEN PARA PODER INTERCAMBIAR INFORMACIÓN. POR ELLO SE PROGRAMARA QUE AL PULSAR EL BOTON 6 EL CELULAR BUSQUE AL MODULO BLUETOOTHY SE CONECTE CON EL (APAREAR/ENLAZAR).

PARA LOGRAR QUE SE ENLAZE, EL CELULAR DEBE BUSCAR LA DIRECCION MACDEL MODULO BLUETOOTH, Y UNA VEZ QUE LA ENCUENTRE SE CONECTARA A EL.

ENLAZE

CELULAR

A

SOLO ENCENDERA EL LED NUMERO 1

Una vez enlazado el celular y el bluetooth, están listos para intercambiar Información, comenzando con el boton1(led1), se programara lo siguiente:Al presionar el botón 1 el celular enviara por bluetooth una letra A (puede ser cualquier carácter del codigo ASCII) el microcontrolador al detectar la letra Aencenderá el led numero 1 y apagara los demás.

A

1

CELULAR

B

SOLO ENCENDERA EL LED NUMERO 1

Ahora para el boton2(led2), se programara lo siguiente:Al presionar el botón 2 el celular enviara por bluetooth una letra B (puede ser cualquier carácter del codigo ASCII) el microcontrolador al detectar la letra Bencenderá el led numero 2 y apagara los demás.

B

2

CELULAR

C

SOLO ENCENDERA EL LED NUMERO 1

Para el boton3(led3), se programara lo siguiente:Al presionar el botón 3 el celular enviara por bluetooth una letra C (puede ser cualquier carácter del codigo ASCII) el microcontrolador al detectar la letra Cencenderá el led numero 3 y apagara los demás.

C

3

CELULAR

D

SOLO ENCENDERA EL LED NUMERO 1

Para el boton4(led4), se programara lo siguiente:Al presionar el botón 4 el celular enviara por bluetooth una letra D (puede ser cualquier carácter del codigo ASCII) el microcontrolador al detectar la letra Dencenderá el led numero 4 y apagara los demás.

D

4

CELULAR

E

SOLO ENCENDERA EL LED NUMERO 1

Para el boton5(led5), se programara lo siguiente:Al presionar el botón 5 el celular enviara por bluetooth una letra E (puede ser cualquier carácter del codigo ASCII) el microcontrolador al detectar la letra Eencenderá el led numero 5 y apagara los demás.

E

5

REALIZANDO UNA TABLA DEL PROGRAMA, QUEDA:

BOTON DATO AENVIAR

LED1 LED2 LED3 LED4 LED5

Boton1 A ON OFF OFF OFF OFF

Boton2 B OFF ON OFF OFF OFF

Boton 3 C OFF OFF ON OFF OFF

Boton 4 D OFF OFF OFF ON OFF

Boton 5 E OFF OFF OFF OFF ON

Boton 6 Buscar direccion Mac para conectar

ENTRADAS SALIDAS

1. PROGRAMAR LA APLICACIÓN ANDROID

PRIMERO INSTALAMOS JAVA EN NUESTRA COMPUTADORA

SEGUNDO, CREAR UNA CUENTA EN GOOGLE DE ASPECTO ------@gmail.com

DESPUES ENTRAMOS A LA PAGINA WWW.APPINVENTOR.MIT.EDU ESTE ES ELSITIO OFICIAL DEL COMPILADOR APP INVENTOR, EN ESTE COMPILADOR SEPUEDE DESARROLLAR CUALQUIER APLICACIÓN PARA DISPOSITIVOS ANDROID.

ASPECTO AL TRATAR DE ENTRAR A APP INVENTOR, DEBE INTRODUCIRSEUNA CUENTA PARA PODER INGRESAR.

VENTANA PRINCIPAL DE APP INVENTOR

Seleccionarpara comenzar a inventar la aplicación

PARA CREAR UN NUEVO PROYECTO DAMOS CLIC EN “ NEW”

NOMBRE DE LA APLICACIÓN, “SIN ESPACIOS”

APARIENCIA DEL COMPILADOR APP INVENTOR, INTERFAZ VISUAL.

LA APLICACIÓN NECESITA TENER 5 BOTONES, UNO POR LED Y UN BOTON ESPECIAL PARA CONECTAR O DESCONECTAREL CELULAR DEL CIRCUITO.

EN TOTAL 6 BOTONES

Y ADICIONALMENTE SE AGREGARA UN CONTROLADOR BLUETOOTH A LA APLICACIÓN.

Para agregar un boton a la pantalla, simplemente arrastramos laOpcion BUTTON hacia la pantalla.

Boton agreado

Repetir para los botones restantes

6 BOTONES AGREGADOS

Aquí puede cambiarse laleyenda del boton

Leyenda cambiada

“FALTA EL CONTROLADOR BLUETOOTH”

DAMO CLIC EN “OTHER STUFF”EN LA OPCION BLUETOOTH CLIENT YARRASTRAMOS A LA PANTALLA

El bluetoothclient, sera el encargado de controlar la comunicación entre el celulary el modulo bluetooth

SE HA TERMINADO DE HACER LA PARTE VISUAL DE LAAPLICACIÓN, EL PURO ASPECTO QUE TENDRA, AHORADEBE PROGRAMARSE EL CODIGO FUENTE DE LA ORDENQUE LLEVARA A CABO CADA BOTON AL SER PRESIONADO

EL BUTTON1 (LED1) DEBE ENCENDER EL LED NUMERO 1 Y APAGAR LOS DEMAS

ASI CONSECUTIVAMENTE PARA LOS DEMAS BOTONES, EXEPTO EL BUTTON 6(CONECTAR)ESTE BOTON DEBE ENLAZAR EL CELULAR CON EL MODULO BLUETOOTH AL SER PRESIONADO.

DAMOS CLIC EN “OPEN DE BLOCKS EDITOR”El editor de bloques es la interfaz donde se programa el codigo fuente de las ordenes que ejecutara cada botón(SINTAXIS DEL PROGRAMA)

Abrir archivo JAVA

APARIENCIA DEL EDITOR DE BLOQUES, aquí se programaraLo que se desea que haga cada botón antes colocado.

CLIC EN “MY BLOCKS”

SE OBSERVAN LOS 6 BOTONESQUE SE COLOCARON EN LA INTERFAZVISUAL DE APP INVENTOR. ASI COMO ELCONTROLADOR BLUETOOH CLIENT

DAMOS CLIC EN EL BOTONBUTTON 6, para primero programarque el celular se enlace al modulobluetooth.

SE DESPLEGARON MUCHAS OPCIONESESTAS OPCIONES SON LOS DIFERENTESCASO EN LOS QUE PUEDE ESTAR EL BOTON. DISTINTAS ACTIVIDADES

SELECCIONAMOS LA PRIMER OPCION,PARA AGREGARLA A LA VENTANADE TRABAJO, SOLO HAY QUE ARRASTRAR LA FICHA.

¿PARA QUE ES ESTA FICHA?

SE INTREPRTA COMO:CUANDO EL BOTON 6 HAGA CLICKENTONCES HACER …….

When=cuandoDo=hacer

EN ESTE ESPACIO SE COLOCA LA INSTRUCCIÓNQUE SE DESEA HACER

DAMOS CLIC EN LA PANTALLAPARA QUE SE APAREZCAN ESTAS OPCIONES, Y SELECCIONAMOS “CONTROL”, DESPUESSELECCIONAMOS “IF”

Se apareció esta ficha¿ Para que sirve esta ficha?

SE INTREPETA COMO:Si la prueba …… es correcta, entonces hacer

If= SiTest=pruebaThen=entoncesDo=hacer “ EN POCAS PALABRAS ES UN COMPARADOR”

HACEMOS EMBONAR LAS FICHAS

SE HAN EMBONADO, AHORATODO SE INTREPETA DE LASIGUIENTE MANERA,“ Cuando el boton 6 sea presionadolo que ara es comprobar si “cierto” Prueba es verdadera, en caso de que sea verdadera entonces ara loque este dentro del if

Aquí se coloca la pruebaque se desea compruebe elif

El obejtivo es que al pulsar el boton 6 el celular se conecte al Modulo bluetooth, por lo tanto la PRUEBA que debe realizares que busque al modulo modulo bluetooth y detecte si estanConectados o no, en este caso, el celular tratara de conectarse.

Para realizar eso, danos clic en BLUEOOTHCLIENT.

SE APARECIERON DISTINTAS OPCIONESSeleccionamos la segunda opcioncall BluetoothClient.Connect address

¿PARA QUE SIRVE ESTA OPCION?

SE INTERPRETA COMO:Llamar al bluetooth cliente y conectar a la direccion ……

Call=llamarConnect= conectarAddress= dirección

HACEMOS EMBONAR

Ha embonado.Ahora todo en conjunto seInterpreta como:

Cuando el boton 6 sea presionado ara lo siguiente; ComprobaraSi la prueba de llamar al bluetooth cliente y conectarse a la direcciónEspecificada es verdadera, en caso de que si, entonces ejecutara lasInstrucciones que vayan dentro del if

En este apartado se debe colocar la dirección MAC del bluetoothal que se desea enlazar

DAMOS CLIC EN “TEXT”

APARECIO UNA NUEVA FICHA, ESTA FICHA SIRVE PARA ESCRIBIR ALGUN TEXTO DENTRODE ELLA. EN ESTE CASO ESCRIBIREMOS LADIRECCION MAC DEL DISPOSITIVO BLUETOOTH

DIRECCION MAC DELMODULO BLUETOOTH, LA MACVARIA PARA CADA DISPOSITIVO.

HACEMOS EMBONAR.

HA EMBONADO, AHORA TODO EN CONJUNTO SE TRADUCE COMO:Cuando el boton 6 sea presionado lo que ara es, comparara Si laPrueba de “llamar al modulo bluetooh de la MAC especificada” es Correcta.

Ya no hace falta agregar una orden en caso de que la conexión seaUn éxito, de esta forma ya se logro que el celular busque alModulo bluetooth al presionar el boton 6.

Ya se ha terminado la primera parte de tan solo lograr queel celular se enlace con el modulo bluetooth al presionar elBotón numero 6.

Falta programar lo que aran los demas botones.

DAMOS CLIC EN BUTTON1 Y SELECCIONAMOS LA PRIMER OPCION ES LAMISMA FICHA QUE EL BUTTON6

Y SE TRADUCE COMO: CUANDO EL BOTON 1SEA PRESIONADO ENTONCES HACER……

LO QUE SE DESEA ES QUE AL PULSAREL BOTON 1, SE ENVIE UNA LETRA “A”VIA BLUETOOTH AL MODULO.

PARA LOGRAR ESO, DAMOS CLIC ENBLUETOOTHCLIENT

Y SELECCINAMOS LAOPCION call BluetoothClient.SendText text

APARECIO UNA NUEVA FICHAESTA FICHA SE INTERPRETA COMO:Llamar al bluetooth cliente y enviar untexto

Aquí se coloca el texto a enviaren este caso una letra A

Agregamos un texto, escribimos en el la letra A y posteriormente hacemosembonar con la ficha despues enbonamos con la ficha button1

Ha embonado, ahora todo en conjunto se traduce como:Cuando el boton1 sea presionado lo que ara la aplicación esllamar al bluetooth cliente (el modulo bluetooth) y leenviara un texto, en este caso una letra A

EL PROCEDIMIENTO PARA LOS DEMAS BOTONES 2,3,4 Y 5ES EXACTAMENTE EL MISMO, CON LA DIFERENCIA DE QUECAMBIARA EL TEXTO A ENVIAR.ASI QUE HACEMOS LO MISMO Y SOLO VARIAMOS LA LETRAA ENVIAR

SE OBSERVA QUE LO UNICO QUE VARIA ES LA LETRA A ENVIAR, LOS BLOQUES SONIDENTICOS

FIN DE LA PROGRAMACION DE LAAPLICACIÓN. Ahora ¿ Como Compiilar la Aplicación?

DAMOS CLIC EN PACKAGE FOR PHONEY EN DOWNLOAD THIS COMPUTER.De esta forma la aplicación se Compilara y guardara en la computadora

COMPILANDO APLICACION

APLICACIÓN GUARDADA EN LA COMPUTADORA, SOLO RESTAINTRODUCIRLA AL CELULAR E INSTALARLA COMO CUALQUIER APLICACIÓN O JUEGO.

FIN DE LA CREACION DE LA APLICACIÓNPARA CONTROLAR LOS 5 LEDS POR BLUETOOH.

LO SIGUIENTE ES PREPARAR (PROGRAMAR) EL MICROCONTROLADOR PIC16F628A PARA QUE RECIBA LOS DATOS(LETRAS)QUE EL MODULO BLUETOOTH LE ENVIARA Y DEPENDIENDO DELA LETRA QUE LE LLEGUE, MANDE A ENCENDER O APAGARLOS LEDS ADECUADOS.

2.PROGRAMAR EL MICROCONTROLADOR

¿Qué se necesita para poder programar el microcontrolador?

* DATASHEET PIC16F628A ( Hoja de especificaciones del microcontrolador)

* COMPILADOR PIC C COMPILER.

*GRABADOR DE PROGRAMA “MICRO PROG” (Los grabadores de programavarian de acuerdo a la placa que se utiliza para grabar el archivo en el pic)

¿COMO FUNCIONA UN MICROCONTROLADOR?

El microcontrolador es un dispositivo que se programa para quedependiendo de las entradas que el tenga provea salidas. Es decir, se programa para que active o desactive aparatosdependiendo de la señal que tenga en sus entradas

ENTRADASALIDA

DATA SHEET DEL PIC16F628A (HOJA DE ESPECIFICACIONES)

Cada pin del pic tieneun nombre.

“CONEXIONES QUE REQUIERE UN PIC PARA PODER TRABAJAR”

1.ALIMENTACION: La alimentación de un pic es a 5v de corriente directa (5VCD)en esta ocasión será con un cargador de celular de 5vcd.

2.CRYSTAL (OSCILADOR): La conexión del crystal es para que el pic tenganoción del tiempo que transcurre a partir de que comienza a trabajar. Esto es OPCIONAL ya que hay microcontroladores que traen un crystal de reloj integradoen el caso del pic16f628a no es necesaria la conexión de crystal ya que lotrae integrado, la frecuencia de este reloj es de 4MHZ(Megahertz).

3.RESET: El reset es para que el pic pueda reiniciarse , se realiza en el pin 5MCLR que significa Master Clear.

PIN 5 / VSS = Tierra PIN 14/ VDD= Positivo de la fuente de alimentación. 5V (+)

LOS PINES A0,A1,A2,A3,A4, A6,A7 B0,B1,B2,B3,B4,B5,B6,B7 PUEDEN CONFIGURARSE COMO ENTRADAS O SALIDAS.

LOS PINES A6 Y A7 PUEDEN SER ENTRADAS O SALIDAS O BIENLAS TERMINALES PARA LA CONEXIÓN DEL CRYSTAL DE RELOJ.

EL PIN A5 ES PARA CONECTAR EL RESET DEL PIC.

LOS PINES B1 Y B2 PUEDEN CONFIGURARSE COMO ENTRADAS O SALIDAS, O BIEN COMO MODULO TRANSMISOR/RECEPTOR EN ESTE CASO, SI SE NECESITAUTILIZAR COMO TRANSMISOR/RECEPTOR POR LO SIGUIENTE:

El bluetooth TRANSMITIRAinformación por lo tantoel pic debe RECIBIR

EL TX del bluetooth va conectadoal RX del Pic16f628A

Señalar que dentro del pic se debeconfigurar lo siguiente :

ACTIVAR la comunicación RS-232e igualar los parametros del bluetooth(Paridad,Bits,Baudios,Stop).

ACTIVAR una interrupción para la recepcion de datos, si esto no se colocael pic se colgara.

Declarar la frecuencia del reloj con la que trabajara el pic.

LOS LED SERAN CONECTADOS A LOS PINES B2,B3,B4,B5 Y B6B2 PARA EL LED NUMERO 1, B3 PARA EL LED NUMERO 2, B4PARA EL LED NUMERO 3, B5 PARA EL LED NUMERO 4 Y B6 PARA EL LED NUMERO 5.

¿COMO REALIZAR EL PROGRAMA EN PIC C COMPILER?BOTON

DATO AENVIAR

LED1

LED2 LED3 LED4 LED5

Boton1 A ON OFF OFF OFF OFF

Boton2 B OFF ON OFF OFF OFF

Boton 3

C OFF OFF ON OFF OFF

Boton 4

D OFF OFF OFF ON OFF

Boton 5

E OFF OFF OFF OFF ON

Boton 6

Buscar direccion Mac para conectar

Abrimos el compiladorPIC C COMPILER

PARA CREAR UN NUEVO PROYECTO SELECCIONAMOS “PROJECT” YDESPUES LA OPCION “PIC WIZARD”.

En esta ventana se colocael nombre del archivo y laubicación de donde se guardara en la computadora

Damos clic en GUARDAR

Se desplegara esta ventana que esun “ASISTENTE” para configurar elel pic.

En la opción “DEVICE” se seleccionael pic con el que se trabajaraen este caso se seleccionael PIC16F628A

En esta opción se seleccionala frecuencia del crystaloscilador con el que se trabajara

Falta ACTIVAR la interrupcion para que el pic reciba datos.

Seleccionamos la opcion “Interrupts”

Seleccionamos esta opción“ RS232 recibir datos disponible”

Ya ha quedado habilitada laInterrupción necesaria para que el picno se cuelgue al recibir un datoproveniente del bluetoooth

Damos clic en OK

ESTA ES LA VENTANA PRINCIPAL DELCOMPILADOR PIC COMPILERAQUÍ SE COLOCA LA SINTAXIS DELPROGRAMA.

TODO ESTO APARECE POR DEFAULTEL SIMBOLO // SIGNIFICA QUE LO QUE ESTA DESPUESES SOLAMENTE COMENTARIO, NO FORMA PARTE DE LA SINTAXIS DEL PROGRAMA

Esta es la configuracion de la comunicación RS232 que maneja el modulo bluetooth antes mencionada.XMIT es el pin del pic por el cual se transmitiran datos.RCV es el pin del pic por el cual se recibiran datos.

Se debe declarar una variable dentro del picya que el valor que envie el bluetooth varia, puedellegar a tomar el valor de una A o B, C,D,E,F dependiendo del boton que se pulse. Por ello se coloca como variable, porque no se sabe que valorsera, y se coloca como CHAR, porque soncaracteres.

LETRA=GETCHAR(); SOLAMENTESE IGUALO LA VARIABLE CON EL CARÁCTERQUE EL BLUETOOTH ENVIE.

YA SE CONFIGURA LA RS232, SE DECLAROLA VARIABLE A USARY SE IGUALO LA VARIABLE AL DATODE ENTRADA EN LA INTERRUPCIONES TODA LA CONFIGURACION NECESARIA, YA SEPUEDE COMENZAR A PROGRAMAR

El programa principal se colocadentro del void main,dentro de lasLlaves { }

EL BUCLE WHILE Y LA SENTENCIA IF EN LENGUAJE C.

¿QUE ES UN BUCLE?

¿QUE ES UNA SENTENCIA?

¿DIFERENCIA ENTRE UN BUCLE Y UNA SENTENCIA?

BUCLE WHILE

SENTENCIA IF