Tesis para optar por el Título de




descargar 0.54 Mb.
títuloTesis para optar por el Título de
página4/4
fecha de publicación03.03.2016
tamaño0.54 Mb.
tipoTesis
med.se-todo.com > Documentos > Tesis
1   2   3   4

Figura No.17. Etapa de potencia.

9.0. COSTOS DE FABRICACION

COSTOS PROYECTO

Estructura

Materiales

Valor ($)

Valor estructura($)

Mesa

Base negra

18.000

$73.000

4 Patas metálicas

50.000

Tornillería

3.000

Tapas de caucho

2.000

Acrílicos

Caja de circuitos

32.000

$105.000

Estructura Banda transportadora

45.000

Tornillería

10.000

Caja Cámara

18.000

Tolvas

Lamina

13.000

$267.800

Doblada y soldada

20.000

Dosificador y visor

50.000

3 Patas soporte

60.000

Acrílico lateral

3.000

Tapas de caucho

2.000

Acabados

60.000

Tornillería

14.800

Acrílicos

15.000

Madera

30.000

Banda Transportadora

Cinta dentada

20.000

$184.000

Poleas

85.000

Soportes

20.000

Tornillería

50.000

Acabados

9.000

Neumática

Electroválvulas

100.000

$189.000

Manguera

24.000

Uniones

50.000

Tornillería

10.000

Cableado

5.000

Control

Componentes electrónicos

37.000

$97.000

Cableado

9.000

Váquela

40.000

Acabados

10.000

Soportes

1.000

Potencia

Componentes electrónicos

30.000

$76.000

Váquela

30.000

Cableado

5.000

Acabados

10.000

Soportes

1.000

Motores

Motor paso a paso

58.000

$153.000

Motor D.C.

30.000

Vibrador

15.000

Estructuras

30.000

Cableado

10.000

Tornillería

10.000

Cámara

Cámara web

50.000

$50.000

Fuente

12 V – 10 A

80.000

$80.000

Otros

Herramientas

100.000

$300.000

Transporte

200.000

Mano de obra

Desarrolladores

3.600.000

$3.600.000

Total

$ 5.174.800


Tabla No.1. Descripción de Materiales y costos

CONCLUSIONES

Mediante la captura de una imagen JPG de la granza en un proceso productivo se logra garantizar la identificación de los productos por medio del color, a través de la comparación en el algoritmo en Matlab utilizando conjuntos difusos. El procesamiento digital de imágenes es más efectivo utilizando Matlab, debido a que sus herramientas son más funcionales en cuanto al desarrollo implementado.


Se diseño una interfaz grafica la cual permite manejar de una forma más versátil y dinámica el conteo de la granza que ha sido clasificada logrando minimizar el tiempo de operación haciendo más productivo el proceso.


Debido a la falta de homogeneidad en la granza, se hace necesario realizar un proceso de tamizaje o selección de la granza a ingresar a la máquina para evitar truncamiento en la tolva ocasionando fallas en la identificación del color.


BIBLIOGRAFIA

[1] “Libro: Automatas programables MARCOMBO 8426710891 9788426710895.”

[2] “Libro: COMUNICACIONES INDUSTRIALES Paraninfo 8428327068 9788428327060.”

[3] “Libro: PROGRAMACIoN DE AUToMATAS SIMATIC S7 300 Lenguaje AWL Ediciones Ceysa 8486108519 9788486108519.”

INFOGRAFIA

http://www.elprado.co.cr/ban_tra.html_
ANEXO 1. Programa detallado en Matlab

function captura_Callback(hObject, eventdata, handles)

% hObject handle to captura (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

%% inicio de programa central

global St %% variable de activacion de while del programa y terminacion de procesos

global P %%varibles de control de pasos: cuenta el numero de pasos, para el control del disparo de las electrovalvulas

global P1

global P2

global P3

global P4

global P5

global P6

global a %%varibles de deteccion de color

global z

global r

global ca %% varible de incremento pra contar la granza

global cb

global cr

ps1=0;

ps2=0;

ps3=0;

ps4=0;

ps5=0;

ps6=0;

ps7=0;

P=0;

P1=0;

P2=0;

P3=0;

P4=0;

P5=0;

P6=0;

cc=2;

cc1=0;

St=2;

while (St>1) %#ok error

if (cc>1)

a=0;

z=0;

r=0;

set(handles.captura,'Enable','off'); %%apago el boton

handles.rgb = getsnapshot(handles.vidobj); %%captura la imagen de la camara

imagen=handles.rgb; %%guarda la imagen en una variable

%% alineamioento de motor

%% identificar revorde sup

imagensl=imcrop(imagen,[ 65 0 20 25]); %% recorto borde sup izq cam

figure(10)

imshow(imagensl);

if size(imagensl,3)==3 %% RGB image

imagensl=rgb2gray(imagensl); %%Imagen de rgb a escala de grises

end

imagensl=im2bw(imagensl); %% binarizo

imagensl=~imagensl; %% hago el negativo

imagensl=imagensl(:); %%convierto la matriz_imagen en un vector

sl=sum(imagensl); %% sumo el vector

%% identificar revorde inf

imagenil=imcrop(imagen,[60 218 20 25]); %% recorto borde inf izq cam

figure(11)

imshow(imagenil);

if size(imagenil,3)==3 %% RGB image

imagenil=rgb2gray(imagenil); %%Imagen de rgb a escala de grises

end

imagenil=im2bw(imagenil); %% binarizo

imagenil=~imagenil; %% hago el negativo

imagenil=imagenil(:); %%convierto la matriz_imagen en un vector

il=sum(imagenil); %% sumo el vector

%% identificar revorde sup rai

imagensr=imcrop(imagen,[223 0 20 25]); %% recorto borde sup der cam

figure(12)

imshow(imagensr);

if size(imagensr,3)==3 %%RGB image

imagensr=rgb2gray(imagensr); %%Imagen de rgb a escala de grises

end

imagensr=im2bw(imagensr); %% binarizo

imagensr=~imagensr; %% hago el negativo

imagensr=imagensr(:); %%convierto la matriz_imagen en un vector

sr=sum(imagensr); %% sumo el vector

%% identificar revorde inf rai

imagenir=imcrop(imagen,[229 218 20 25]); %% recorto borde inf der cam

figure(13)

imshow(imagenir);

if size(imagenir,3)==3 %% RGB image

imagenir=rgb2gray(imagenir); %%Imagen de rgb a escala de grises

end

imagenir=im2bw(imagenir); %% binarizo

imagenir=~imagenir; %% hago el negativo

imagenir=imagenir(:); %%convierto la matriz_imagen en un vector

ir=sum(imagenir); %% sumo el vector

totalin=ir+sr+sl+il %%totaliza y guarada el peso de dichas variables

%% identificacion de paso

if (totalin < 1100) %% comparo el peso del totalizador anterior con un valor de aceptacion

%% IDENTIFICACION DEL COLOR

imagen1=imcrop(imagen,[ 63 48 182 160]); %corto la imagen en la esfera

%figure(2)

%imshow(imagen1);

if size(imagen1,3)==3 %RGB image

imagen2=rgb2gray(imagen1); %Imagen de rgb a escala de grises

end

%figure(3)

%imshow(imagen2);

imagengr=imagen2;

[x y]= size(imagen2); %capturo la imagen y la descopongoen una matriz x,y.

long = x*y; %calculo su longitud

b=reshape(imagen2,long,1); %caracteriso la imegen y la introdusco en una variable

for i=1:long %realizo un filtro con el cual detecto la esfera

if (b(i)>45)

if (b(i)<255)

b(i)=100;

end

elseif (b(i))

b(i)=255;

end

end

imagenfNN=reshape(b,x,y); %recupero la imagen despues de filtrarla

%figure(4)

%imshow(imagenfNN);

imagen3=im2bw(imagenfNN); %paso la imagen a blanco y negro

%figure(5)

%imshow(imagen3);

imagen4 = imfill(~imagen3,'holes'); %tomo la imagen le hago el negativo

imagen4 = bwareaopen(imagen4,4000); %a esta misma imagen la filto (quito puntos)

figure(6)

imshow(imagen4);

imagenentrada=imagen4(:); %verifica que haya una esfera

imagenentrada1=sum(imagenentrada)

if (imagenentrada1 > 15000)

cc=0; %% si este valor se encuentra en uno la vanda sigue hasta que se le permita tomar otra imagen

[L Ne]=bwlabel(imagen4); %introdusco la imegen el una matriz

propied=regionprops(L,'Centroid'); %busco el centroide de la imagen

R=imagen1(:,:,1);

G=imagen1(:,:,2);

B=imagen1(:,:,3);

R=R(propied.Centroid(2)-10:propied.Centroid(2)+10,propied.Centroid(1)-10:propied.Centroid(1)+10);

G=G(propied.Centroid(2)-10:propied.Centroid(2)+10,propied.Centroid(1)-10:propied.Centroid(1)+10);

B=B(propied.Centroid(2)-10:propied.Centroid(2)+10,propied.Centroid(1)-10:propied.Centroid(1)+10);

R1=R(:);

r2=sum(R1)

G1=G(:);

g2=sum(G1)

B1=B(:);

b2=sum(B1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% SELECCION DE COLOR

%% color amarillo

if (r2>=80000)

if (r2<=110000) %comparo el peso de cada uno de los vectores r, g, b.

a=1; %con pesos ya determinados para el color amarillo

end

end

if (g2>=72000)

if (g2<=100000)

a=a+1;

end

end

if (b2>=30000)

if (b2<=70000)

a=a+1;

end

end

%% color azul

if (r2>=10000)

if (r2<=30000) %comparo el peso de cada uno de los vectores r, g, b.

z=4; %con pesos ya determinados para el color azul

end

end

if (g2>=19000)

if (g2<=40000)

z=z+1;

end

end

if (b2>=13000)

if (b2<=60000)

z=z+1;

end

end

%% color rojo

if (r2>=48000)

if (r2<=90000) %comparo el peso de cada uno de los vectores r, g, b.

r=7 %con pesos ya determinados para el color rojo

end

end

if (g2>=20000)

if (g2<=47000)

r=r+1

end

end

if (b2>=12000)

if (b2<=39000)

r=r+1

end

end

%% guardar variables en paso de la sinta

%esto es guarda el color en un cuadro de la sinta y le asigna una

%posicion PSS

%para amarillo

if(a==3)

if (ps1==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS1=3 %% posision y color en la posicion

ps1=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

elseif (ps2==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS2=3 %% posision y color en la posicion

ps2=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

elseif (ps3==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS3=3 %% posision y color en la posicion

ps3=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

elseif (ps4==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS4=3 %% posision y color en la posicion

ps4=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

elseif (ps5==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS5=3; %% posision y color en la posicion

ps5=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

elseif (ps6==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS6=3; %% posision y color en la posicion

ps6=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

elseif (ps7==0)

ca=ca+1; %% contador de pepitas color amarillo

PSS7=3; %% posision y color en la posicion

ps7=1; %% bandera de colocasion de dato dentro de paso

set(handles.texyelow,'String',ca);

%St=0 %% apago while de programa

end

%fin amarillo

%para azul

elseif (z==6)

if (ps1==0)

cb=cb+1; %% contador de pepitas color amarillo

PSS1=6; %% posision y color en la posicion

ps1=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

elseif (ps2==0)

cb=cb+1; %% contador de pepitas color amarillo

PSS2=6; %% posision y color en la posicion

ps2=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

elseif (ps3==0)

cb=cb+1; %% contador de pepitas color amarillo

PSS3=6; %% posision y color en la posicion

ps3=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

elseif (ps4==0)

cb=cb+1; %% contador de pepitas color amarillo

PSS4=6; %% posision y color en la posicion

ps4=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

elseif (ps5==0)

cb=cb+1;%% contador de pepitas color amarillo

PSS5=6; %% posision y color en la posicion

ps5=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

elseif (ps6==0)

cb=cb+1; %% contador de pepitas color amarillo

PSS6=6; %% posision y color en la posicion

ps6=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

elseif (ps7==0)

cb=cb+1; %% contador de pepitas color amarillo

PSS7=6; %% posision y color en la posicion

ps7=1; %% bandera de colocasion de dato dentro de paso

set(handles.texblue,'String',cb);

%St=0 %% apago while de programa

end

%fin azul

%para rojo

elseif (r==9)

if (ps1==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS1=9; %% posision y color en la posicion

ps1=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

elseif (ps2==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS2=9; %% posision y color en la posicion

ps2=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

elseif (ps3==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS3=9; %% posision y color en la posicion

ps3=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

elseif (ps4==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS4=9; %% posision y color en la posicion

ps4=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

elseif (ps5==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS5=9; %% posision y color en la posicion

ps5=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

elseif (ps6==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS6=9; %% posision y color en la posicion

ps6=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

elseif (ps7==0)

cr=cr+1; %% contador de pepitas color amarillo

PSS7=9; %% posision y color en la posicion

ps7=1; %% bandera de colocasion de dato dentro de paso

set(handles.texred,'String',cr);

%St=0 %% apago while de programa

end

end

%fin rojo

%% incrementa paso despues del primer analisis

fprintf(handles.SerPIC,'%s','m'); %incremento un paso

fprintf(handles.SerPIC,'%s','m');

% fprintf(handles.SerPIC,'%s','t'); %muevo el mezclador

%fprintf(handles.SerPIC,'%s','t');

%% incremento de paso en variable

if (ps1==1)

P=P+1

end

if (ps2==1)

P1=P1+1;

end

if (ps3==1)

P2=P2+1;

end

if (ps4==1)

P3=P3+1;

end

if (ps5==1)

P4=P4+1;

end

if (ps6==1)

P5=P5+1;

end

if (ps7==1)

P6=P6+1;

end

%% disparo de elctrovalvulas

% fprintf(handles.SerPIC,'%s','r');

%PARA AMARILLO

if (P==12)

if(PSS1==3)

fprintf(handles.SerPIC,'%s','a');

%fprintf(handles.SerPIC,'%s','a');

a=1

ps1=0

st=0

P=0;

end

end

if (P1==12)

if(PSS2==3)

fprintf(handles.SerPIC,'%s','a');

%fprintf(handles.SerPIC,'%s','a');

ps2=0;

P1=0;

end

end

if (P2==12)

if(PSS3==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps3=0;

P2=0;

end

end

if (P3==12)

if(PSS4==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps4=0;

P3=0;

end

end

if (P4==12)

if(PSS5==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps5=0;

P4=0;

end

end

if (P5==12)

if(PSS6==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps6=0;

P5=0;

end

end

if (P6==12)

if(PSS7==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps7=0;

P6=0;

end

end

%PARA AZUL

if (P==19)

if(PSS1==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps1=0;

P=0;

end

end

if (P1==19)

if(PSS2==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps2=0;

P1=0;

end

end

if (P2==19)

if(PSS3==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps3=0;

P2=0;

end

end

if (P3==19)

if(PSS4==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps4=0;

P3=0;

end

end

if (P4==19)

if(PSS5==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps5=0;

P4=0;

end

end

if (P5==19)

if(PSS6==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps6=0;

P5=0;

end

end

if (P6==19)

if(PSS7==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps7=0;

P6=0;

end

end

%PARA ROJO

if (P==30)

if(PSS1==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps1=0

P=0;

end

end

if (P1==30)

if(PSS2==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps2=0;

P1=0;

end

end

if (P2==30)

if(PSS3==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps3=0;

P2=0;

end

end

if (P3==30)

if(PSS4==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps4=0;

P3=0;

end

end

if (P4==30)

if(PSS5==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps5=0;

P4=0;

end

end

if (P5==30)

if(PSS6==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps6=0;

P5=0;

end

end

if (P6==30)

if(PSS7==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps7=0;

P6=0;

end

end

else

fprintf(handles.SerPIC,'%s','m');

fprintf(handles.SerPIC,'%s','m');

pause(0.8);

%fprintf(handles.SerPIC,'%s','t');

%fprintf(handles.SerPIC,'%s','t');

if (ps1==1)

P=P+1

end

if (ps2==1)

P1=P1+1;

end

if (ps3==1)

P2=P2+1;

end

if (ps4==1)

P3=P3+1;

end

if (ps5==1)

P4=P4+1;

end

if (ps6==1)

P5=P5+1;

end

if (ps7==1)

P6=P6+1;

end

%PARA AMARILLO

if (P==12)

if(PSS1==3)

fprintf(handles.SerPIC,'%s','a');

%fprintf(handles.SerPIC,'%s','a');

ps1=0

P=0

end

end

if (P1==12)

if(PSS2==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps2=0;

P1=0;

end

end

if (P2==12)

if(PSS3==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps3=0;

P2=0;

end

end

if (P3==12)

if(PSS4==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps4=0;

P3=0;

end

end

if (P4==12)

if(PSS5==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps5=0;

P4=0;

end

end

if (P5==12)

if(PSS6==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps6=0;

P5=0;

end

end

if (P6==12)

if(PSS7==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps7=0;

P6=0;

end

end

%PARA AZUL

if (P==19)

if(PSS1==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps1=0;

P=0;

end

end

if (P1==19)

if(PSS2==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps2=0;

P1=0;

end

end

if (P2==19)

if(PSS3==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps3=0;

P2=0;

end

end

if (P3==19)

if(PSS4==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps4=0;

P3=0;

end

end

if (P4==19)

if(PSS5==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps5=0;

P4=0;

end

end

if (P5==19)

if(PSS6==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps6=0;

P5=0;

end

end

if (P6==19)

if(PSS7==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps7=0;

P6=0;

end

end

%PARA ROJO

if (P==30)

if(PSS1==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps1=0

P=0;

end

end

if (P1==30)

if(PSS2==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps2=0;

P1=0;

end

end

if (P2==30)

if(PSS3==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps3=0;

P2=0;

end

end

if (P3==30)

if(PSS4==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps4=0;

P3=0;

end

end

if (P4==30)

if(PSS5==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps5=0;

P4=0;

end

end

if (P5==30)

if(PSS6==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps6=0;

P5=0;

end

end

if (P6==30)

if(PSS7==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps7=0;

P6=0;

end

end

end

else

fprintf(handles.SerPIC,'%s','m');

fprintf(handles.SerPIC,'%s','m');

pause(0.8);

%fprintf(handles.SerPIC,'%s','t');

%fprintf(handles.SerPIC,'%s','t');

if (ps1==1)

P=P+1

end

if (ps2==1)

P1=P1+1;

end

if (ps3==1)

P2=P2+1;

end

if (ps4==1)

P3=P3+1;

end

if (ps5==1)

P4=P4+1;

end

if (ps6==1)

P5=P5+1;

end

if (ps7==1)

P6=P6+1;

end

%PARA AMARILLO

if (P==12)

if(PSS1==3)

fprintf(handles.SerPIC,'%s','a');

%fprintf(handles.SerPIC,'%s','a');

ps1=0

P=0

end

end

if (P1==12)

if(PSS2==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps2=0;

P1=0;

end

end

if (P2==12)

if(PSS3==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps3=0;

P2=0;

end

end

if (P3==12)

if(PSS4==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps4=0;

P3=0;

end

end

if (P4==12)

if(PSS5==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps5=0;

P4=0;

end

end

if (P5==12)

if(PSS6==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps6=0;

P5=0;

end

end

if (P6==12)

if(PSS7==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps7=0;

P6=0;

end

end

%PARA AZUL

if (P==19)

if(PSS1==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps1=0;

P=0;

end

end

if (P1==19)

if(PSS2==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps2=0;

P1=0;

end

end

if (P2==19)

if(PSS3==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps3=0;

P2=0;

end

end

if (P3==19)

if(PSS4==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps4=0;

P3=0;

end

end

if (P4==19)

if(PSS5==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps5=0;

P4=0;

end

end

if (P5==19)

if(PSS6==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps6=0;

P5=0;

end

end

if (P6==19)

if(PSS7==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps7=0;

P6=0;

end

end

%PARA ROJO

if (P==30)

if(PSS1==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps1=0

P=0;

end

end

if (P1==30)

if(PSS2==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps2=0;

P1=0;

end

end

if (P2==30)

if(PSS3==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps3=0;

P2=0;

end

end

if (P3==30)

if(PSS4==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps4=0;

P3=0;

end

end

if (P4==30)

if(PSS5==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps5=0;

P4=0;

end

end

if (P5==30)

if(PSS6==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps6=0;

P5=0;

end

end

if (P6==30)

if(PSS7==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps7=0;

P6=0;

end

end

end

else

while (cc1<2)

fprintf(handles.SerPIC,'%s','m');

fprintf(handles.SerPIC,'%s','m');

pause(1.5);

%% incremento de paso en variable

if (ps1==1)

P=P+1

end

if (ps2==1)

P1=P1+1;

end

if (ps3==1)

P2=P2+1;

end

if (ps4==1)

P3=P3+1;

end

if (ps5==1)

P4=P4+1;

end

if (ps6==1)

P5=P5+1;

end

if (ps7==1)

P6=P6+1;

end

%% disparo de elctrovalvulas

% fprintf(handles.SerPIC,'%s','r');

%PARA AMARILLO

if (P==12)

if(PSS1==3)

fprintf(handles.SerPIC,'%s','a');

%fprintf(handles.SerPIC,'%s','a');

ps1=0

P=0

end

end

if (P1==12)

if(PSS2==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps2=0;

P1=0;

end

end

if (P2==12)

if(PSS3==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps3=0;

P2=0;

end

end

if (P3==12)

if(PSS4==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps4=0;

P3=0;

end

end

if (P4==12)

if(PSS5==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps5=0;

P4=0;

end

end

if (P5==12)

if(PSS6==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps6=0;

P5=0;

end

end

if (P6==12)

if(PSS7==3)

fprintf(handles.SerPIC,'%s','a');

fprintf(handles.SerPIC,'%s','a');

ps7=0;

P6=0;

end

end

%PARA AZUL

if (P==19)

if(PSS1==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps1=0;

P=0;

end

end

if (P1==19)

if(PSS2==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps2=0;

P1=0;

end

end

if (P2==19)

if(PSS3==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps3=0;

P2=0;

end

end

if (P3==19)

if(PSS4==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps4=0;

P3=0;

end

end

if (P4==19)

if(PSS5==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps5=0;

P4=0;

end

end

if (P5==19)

if(PSS6==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps6=0;

P5=0;

end

end

if (P6==19)

if(PSS7==6)

fprintf(handles.SerPIC,'%s','z');

fprintf(handles.SerPIC,'%s','z');

ps7=0;

P6=0;

end

end

%PARA ROJO

if (P==30)

if(PSS1==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps1=0

P=0;

end

end

if (P1==30)

if(PSS2==9)

fprintf(handles.SerPIC,'%s','r');

%fprintf(handles.SerPIC,'%s','r');

ps2=0;

P1=0;

end

end

if (P2==30)

if(PSS3==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps3=0;

P2=0;

end

end

if (P3==30)

if(PSS4==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps4=0;

P3=0;

end

end

if (P4==30)

if(PSS5==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps5=0;

P4=0;

end

end

if (P5==30)

if(PSS6==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps6=0;

P5=0;

end

end

if (P6==30)

if(PSS7==9)

fprintf(handles.SerPIC,'%s','r');

fprintf(handles.SerPIC,'%s','r');

ps7=0;

P6=0;

end

end

cc1=cc1+1

end

cc=2;

end

end

ANEXO 2. Programa detallado del microcontrolador

#include <18F4550.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN

#use delay(clock=20000000)

#include ".\include\usb_cdc.h"
int c,motor,conta,vel_motor,conta1;
void paso(void)

{

for(conta1=0;conta1<=2;conta1++)

{

if (conta==0)

output_b(0b00000010);

//delay_ms(100);

else if (conta==1)

output_b(0b00000001);

//delay_ms(100);

else if (conta==2)

output_b(0b00001000);

//delay_ms(100);

else if (conta==3)

output_b(0b00000100);

//delay_ms(100);

conta++;

//conta1++;

if (conta>=4)

conta=0;
}
}
void valvula_amarilla(void)

{

output_high(pin_d1);

delay_ms(800);

output_low(pin_d1);

}
void valvula_azul(void)

{

output_high(pin_d2);

delay_ms(800);

output_low(pin_d2);

}
void valvula_rojo(void)

{

output_high(pin_d3);

delay_ms(800);

output_low(pin_d3);

}
void main()

{

setup_adc_ports(NO_ANALOGS|VSS_VDD);

setup_adc(ADC_OFF);

setup_psp(PSP_DISABLED);

setup_spi(FALSE);

setup_wdt(WDT_OFF);

setup_timer_0(RTCC_INTERNAL);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DIV_BY_16,255,16);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

set_tris_b(0x00);

set_tris_d(0x00);

vel_motor=0;

usb_cdc_init();

usb_init();
output_low(pin_d1);

output_low(pin_d2);

output_low(pin_d3);

output_high(pin_d4);

output_high(pin_a0);

output_high(pin_d0);

while(!usb_cdc_connected()) {}
for(;;)

{

usb_task();

if (usb_enumerated())

{

if(usb_cdc_kbhit())

{

//printf(usb_cdc_putc,"%c",gethex_usb());

c=usb_cdc_getc();

if (c=='a')

valvula_amarilla();

else if(c=='m')

paso();

else if(c=='z')

valvula_azul();

else if(c=='r')

valvula_rojo();
}

}

}

}

ANEXO 3. ESQUEMATICO ETAPA DE CONTROL


ANEXO 4. ESQUEMATICO ETAPA DE POTENCIA




1   2   3   4

similar:

Tesis para optar por el Título de iconTesis para optar el titulo de

Tesis para optar por el Título de iconTesis para optar el título de economista

Tesis para optar por el Título de iconTesis de grado para optar al título de Doctor en Teología

Tesis para optar por el Título de iconTesis para optar el título profesional de ingeniero informático

Tesis para optar por el Título de iconTesis para optar el titulo profesional de Ingeniero Químico

Tesis para optar por el Título de iconTesis para optar al título de maestria en métodos de investigación social cualitativa

Tesis para optar por el Título de iconTesis o trabajo de investigación presentada(o) como requisito parcial para optar al título de

Tesis para optar por el Título de iconTesis o trabajo de investigación presentada(o) como requisito parcial para optar al título de

Tesis para optar por el Título de iconTesis o trabajo de investigación presentada(o) como requisito parcial para optar al título de

Tesis para optar por el Título de iconTesis para optar el grado de


Medicina



Todos los derechos reservados. Copyright © 2015
contactos
med.se-todo.com