Sei sulla pagina 1di 11

DEPARTAMENTO DE ENERGÍA Y MECÁNICA

INGENIERÍA MECATRÓNICA

MICONTROLADORES Y MICROPROCESADORES
NIVEL: 7mo

TÍTULO:
CONTROL DE VELOCIDAD DE UN MOTOR DC

AUTORES:
ALVARADO ELIZABETH
TORRES BRYAN

ING. MARCO PILATASIG

LATACUNGA
2019
1. TEMA

Control de velocidad de un motor DC mediante Android a través de una conexión bluetooth y


PIC16f877a.

2. OBJETIVOS

2.1. Objetivo General

Controlar la velocidad de un motor DC mediante una aplicación Android a través de una conexión
bluetooth y un microcontrolador PIC16f877a.

2.2. Objetivos Específicos

 Establecer mediante lenguaje C los parámetros necesarios para el envío de datos mediante comunicación
RS232 hacia el módulo HC-05.

 Realizar el envío de datos desde el dispositivo Android para el control de velocidad de un motor mediante
PWM.

 Cargar el código hexadecimal al microcontrolador e instalar el correspondiente apk para verificar su


funcionamiento.

3. MARCO TEÓRICO
3.1. PIC16F877A

Esta potente (ejecución de instrucciones de 200 nanosegundos) pero fácil de programar (solo 35
instrucciones de una sola palabra) El microcontrolador CMOS FLASH de 8 bits incluye la potente
arquitectura PIC® de Microchip en un paquete de 40 y es compatible con PIC16C5X, PIC12CXXX y
PIC16C7X dispositivos. El PIC16F877A cuenta con 256 bytes de memoria de datos EEPROM, auto
programación, un ICD, 2 comparadores, 8 canales de convertidor analógico a digital (A / D) de 10 bits, 2
funciones de captura / comparación / PWM, el puerto serie síncrono puede se configurará como Interfaz de
periféricos en serie de 3 hilos (SPI ™) o como un bus de circuito integrado de 2 hilos (I²C ™) y un
Transmisor de receptor asíncrono universal (USART). [1]
Fig. 1. Pines de un PIC16F8777A

3.2. Módulo HC-05

Dispositivo que puede configurarse tanto como Master que como Slave. Es ligeramente más complicado
de colocar en modo comandos y requiere una cierta manera de arrancado, concretamente requiere que el pin
KEY, esté en HIGH cuando encendemos el módulo. Funciona a 3,3 V. Por las pruebas hechas y los tutoriales
en principio no es necesario usar un divisor de tensión y los pines son tolerantes a 5V, pero hacerlo bajo vuestra
responsabilidad. [3]

Fig. 2. Módulo Bluetooth.

Los valores por defecto del módulo usado son:

 Name = HC-05
 Password = 1234
 Baud rate in communication mode = 9600
 Baud rate in AT/Command mode = 38400

3.3. MIT App Inventor 2

Es un framework creado inicialmente por el MIT (Instituto tecnológico de Massachusetts) y fué cogido por google,
para que cualquier persona con interés pueda crearse su propia aplicación móvil, ya sea para su empresa, para su
casa o por otros intereses. [4]
Fig. 3. MIT APP INVENTOR

Para crear una aplicación con app inventor hay que realizar tres pasos:

 El diseño de la aplicación, en la que se seleccionan los componentes para su aplicación.


 El editor de bloques, donde irás escogiendo los bloques que te sean necesarios según la aplicación que
tengas pensada de hacer.
 Descarga o simulación del respectivo apk.
4. Materiales

Tabla 1
Materiales y equipos

MATERIALES CANTIDAD CARACTERÍSTICAS GRÁFICO

Fuente de
alimentación D.C Se usa para abastecer de voltaje al
1
circuito. 5v y 9 v para el motor

Controlador del circuito, es


PIC 16f877A
programable
1

HC-05 Permite la conexión bluetooth


1

5. Procedimiento
 Realizar el respectivo código para la programación del Microcontrolador

Código para PIC

#include <16F877A.h>
#device adc=10//bits
#fuses HS,NOWDT
#use delay (CLOCK=20M)
#define lcd_rs_pin pin_b0
#define lcd_rw_pin pin_b1
#define lcd_enable_pin pin_b2
#define lcd_data4 pin_b4
#define lcd_data5 pin_b5
#define lcd_data6 pin_b6
#define lcd_data7 pin_b7
#include <lcd.c>
int16 x, ys, i=0, j=0, m, k,l,n; //se ve 1024
float y, y1;
void uno()
{
set_adc_channel(0);//Defino el canal AN0
x=read_adc();//Lectura del canal AN0
set_adc_channel(5);
ys=read_adc();
y=(100.0*x)/1023.0;
y1=(10000.0/1023.0)*ys;
lcd_gotoxy(1,1);
m=y;
printf(lcd_putc,"Veloc=%Ld porciento",m);// l=long
lcd_gotoxy(2,2);
printf(lcd_putc,"Giro=Izquierda");//
delay_ms(200);
}

#INT_EXT
interr()
{
uno();
}

void main()
{
setup_adc_ports(0);//Activa los ADCs
setup_adc(ADC_CLOCK_INTERNAL);//Reloj interno
lcd_init();
set_tris_d(1);//entrada del puerto b
//Definir las interrupciones
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT); //Definir como se van a activar, siempre de alto a bajo
ext_int_edge(H_TO_L);//Apagar todo el puerto
while(true)
{
if(input(Pin_d0)==1)
{
uno();
}
while(input(Pin_d0)==0)
{
for(i=m;i>0;i--)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Veloc=%Ld",i);// l=long
lcd_gotoxy(2,2);
printf(lcd_putc,"Giro=Izquierda");//
delay_ms(90);
lcd_init();
}

for(j=0;j<m;j++)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Veloc=%Ld",j);// l=long
lcd_gotoxy(2,2);
printf(lcd_putc,"Giro=Derecha");//
delay_ms(90);
lcd_init();
}
}
}
}
 Realizar la aplicación Android en MIT App Inventor 2

Código para MIT App Inventor 2

Inicialización Comunicación Bluetooth

Control de velocidad a través de Android


Cierre de aplicación y desconexión de bluetooth.

 Vincular el dispositivo Bluetooth con el celular.

 Cargar el respectivo código hexadecimal al PIC

 Instalar la APK en el celular.

6. ESQUEMA DE CONEXIÓN
Fig. 4. Esquema de conexión.

7. ANÁLISIS DE RESULTADOS

Interfaz de Inicio de la aplicación


Para iniciar el programa en primer lugar Seleccionamos el dispositivo bluetooth, una vez escogido
aparecerá una notificación de “CONECTADO”.

Como se puede apreciar, los valores mostrados por los sensores están en valores enteros, debido a que la
función de concatenado no acepta valores en tipo float. La incorporación de los diez botones de control de
velocidad debido a que el envío de datos se da por caracteres Ascii, pero en cada uno de los botones yace
una activación del ancho de pulso distinto uno de otro entre los botones.

8. CONCLUSIONES

 Se han establecido las conexiones necesarias para el funcionamiento del módulo HC-05 y su conexión
con el microcontrolador usando comunicación RS232.

 Se ha elaborado un aplicativo para el envío de datos, además se ha implementado la interconexión


bluetooth para establecer un canal de comunicación entre el uC y el dispositivo Android con el uso de
su dirección MAC.

 Se ha realizado el envío de datos mediante botones para el control del PWM mediante casos del 0 al 9,
los cuales alterarán el ancho de pulso y por ende la velocidad del motor.
9. RECOMENDACIONES

 Se debe tener en cuenta que el envío y recepción de datos se da mediante cadenas de texto, lo cual llega
a dificultar el manejo datos que incluyan decimales.

 Cuando se envían mayor cantidad de datos desde el microcontrolador, el tratamiento de los mismos se
debe hacer mediante concatenado para establecer valores en forma de lista a ser separada una vez
recibida.

Potrebbero piacerti anche