Академический Документы
Профессиональный Документы
Культура Документы
AUTOMATIZACIÓN INDUSTRIAL I
TEMA: PROYECTO FINAL
FECHA INTEGRANTES FIRMAS
1. OBJETIVOS
1.1. Objetivo General
Aplicar los conocimientos de la neumática y la programación
(comunicación serial) a un proyecto de aplicación.
2. METODO
Programación del Pic en lenguaje C
3. EQUIPO Y MATERIALES
Equipos – Materiales - accesorios CANTIDAD DESCRIPCIÓN
Relés 8
Válvulas estranguladoras 8
Cilindros neumáticos de doble 4
efecto
Pickit3 1
PIC16F877 1
Módulo Bluetooth Arduino 1
Electroválvulas 4
Protoboard 1
Cables 50
4. FUNDAMENTO TEORICO
1
(hasta 200 mm) que en los cilindros de simple efecto, hay que tener en cuenta el
pandeo o curvamiento que puede sufrir el vástago en su posición externa [1].
Cuando el aire comprimido entra por la toma situada en la parte posterior, desplaza el
émbolo y hace salir el vástago (avance). Para que el émbolo retorne a su posición
inicial (retroceso), se introduce aire por la toma situada en la tapa delantera. De esta
manera, la presión actúa en la cara del émbolo en la que está sujeta el vástago, lo que
hace que la presión de trabajo sea algo menor debido a que la superficie de aplicación
es más pequeña. Hay que tener en cuenta que en este caso el volumen de aire es menor,
puesto que el vástago también ocupa volumen [1].
2
Fig. 3 Cilindro de doble efecto y sus partes
Electroválvulas
3
Válvulas estranguladoras
PIC16F877
4
Relé
5. PROCEDIMIENTO Y RESULTADOS
En primer lugar se procedió a realizar las conexiones entre el modulo bluetooth del
arduino y el PIC. Desde la aplicación realizada para el celular se envían los datos al
módulo bluetooth el cual por conexión serial le transmitirá los datos al PIC16F87 que a
su vez receptará para ir activando uno a uno los relés. Una pantalla LCD mostrará cuál de
los cuatro cilindros fue activado y además avisará que está esperando una orden par
ejecutar.
Habrá dos relés por cada cilindro de doble efecto, cada uno hará la activación ya sea para
la salida o entrada del cilindro.
5
Fig. 9 Diagrama simulado en fluidsim
6
Fig. 11 Conexión total del proyecto
7
Fig. 13 Diagrama del comportamiento de los cilindros
#INCLUDE <16F887.h>
#DEVICE ADC = 10
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#BYTE PORTA= 5
#BYTE PORTC= 7
#BYTE PORTD= 8
#include <lcd.c>
#define AM pin_b7
#define Ame pin_b6
#define BM pin_b5
#define Bme pin_b4
#define CM pin_b3
8
#define CMe pin_b2
#BYTE PORTB= 0
int dat_in=0;
#int_RDA
rda_isr()
{
dat_in=getc();
}
void main()
{
lcd_init();
set_tris_c(255);
set_tris_d(0);
set_tris_b(0);
enable_interrupts(int_rda);
enable_interrupts(global);
lcd_gotoxy(1,1);
printf(lcd_putc,"Hola mundo ALV\n");
printf(lcd_putc,"Ing. Mecatronica");
delay_ms(3000);
lcd_gotoxy(1,1);
printf(lcd_putc,"PROYECT DE: \n");
printf(LCD_PUTC," ");
delay_ms(2000);
lcd_gotoxy(1,1);
printf(lcd_putc,"Micros \n");
printf(lcd_putc,"Automatización \n");
delay_ms(3000);
output_low(AM);
output_low(AMe);
output_low(BM);
output_low(BMe);
output_low(CM);
output_low(CMe);
while(1)
{
if(dat_in==1)
{
lcd_gotoxy(1,1);
9
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Sale piston A");
output_high(AM);
delay_ms(1000);
dat_in=0;
delay_ms(2000);
output_low(AM);
}
else if(dat_in==2)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Reg. piston A");
output_high(AMe);
delay_ms(1000);
dat_in=0;
delay_ms(2000);
output_low(AMe);
}
else if(dat_in==3)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Sale piston B");
output_high(BM);
delay_ms(1000);
dat_in=0;
delay_ms(5000);
output_low(BM);
}
else if(dat_in==4)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Reg. piston B");
output_high(BMe);
delay_ms(1000);
dat_in=0;
delay_ms(5000);
output_low(BMe);
}
else if(dat_in==5)
{
lcd_gotoxy(1,1);
10
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Sale piston C");
output_high(CM);
delay_ms(1000);
dat_in=0;
delay_ms(5000);
output_low(CM);
}
else if(dat_in==6)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Reg. piston C");
output_high(CMe);
delay_ms(1000);
dat_in=0;
delay_ms(5000);
output_low(CMe);
}
else if(dat_in==7)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Orden: \n");
printf(lcd_putc,"Modo Automatico ");
output_high(AM);
delay_ms(1000);
output_low(AM);
delay_ms(500);
output_high(AMe);
delay_ms(1000);
output_low(AMe);
delay_ms(500);
output_high(BM);
delay_ms(1000);
output_low(BM);
delay_ms(500);
output_high(BMe);
delay_ms(1000);
output_low(BMe);
delay_ms(500);
output_high(CM);
delay_ms(1000);
output_low(CM);
delay_ms(500);
11
output_high(CMe);
delay_ms(1000);
output_low(CMe);
delay_ms(500);
dat_in=0;
}
else
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Esperando orden \n");
printf(LCD_PUTC," ");
}
}
}
12
Fig. 15 Programación de la app android
13
Conexiones eléctricas:
6. CONCLUSIONES
The use of pneumatics is very accessible for projects in which we need dynamic
movements. The pressure of the air helps us to have strength in our movements as in our
project. It is possible to conclude that it is very important to know the protocol of the
serial communication, since nowadays it is one of the most used because of the amount
of data that it can send in a short time, besides that much of our technology uses it. In this
case it was very useful for the bluetooth module.
14
7. RECOMENDACIONES
15