Está en la página 1de 204

AUTOMATIZACIÓN DEL PROCESO DE DISEÑO Y ELABORACIÓN DE

CIRCUITOS IMPRESOS

LEIDY CAROLIN OLARTE CIPRIÁN


SANDRA PAOLA MONROY RUÍZ
WERNHER ALLEN REINA ÁLVAREZ

UNIVERSIDAD DE SAN BUENAVENTURA


FACULTAD DE INGENIERÍA
PROGRAMA DE ELECTRÓNICA
BOGOTÁ DC
2009
AUTOMATIZACIÓN DEL PROCESO DE DISEÑO Y ELABORACIÓN DE
CIRCUITOS IMPRESOS

LEIDY CAROLIN OLARTE CIPRIÁN


SANDRA PAOLA MONROY RUÍZ
WERNHER ALLEN REINA ÁLVAREZ

Proyecto de grado como requisito para optar al titulo de Ingeniero Electrónico

Asesor
Ingeniero Electrónico
Antonio José Albarracín Ramírez

UNIVERSIDAD DE SAN BUENAVENTURA


FACULTAD DE INGENIERÍA
PROGRAMA DE ELECTRÓNICA
BOGOTÁ DC
2009
Nota de aceptación:

________________________________

________________________________

________________________________

________________________________

________________________________

__________________________________
Firma del presidente del jurado

______________________________
Firma del jurado

_____________________________
Firma del jurado

Bogotá D.C. (19, Mayo, 2009)


En memoria de Camilo Cerón. Mas que un amigo fuiste un hermano…
incondicional y leal hasta el último día. Enfrentaste la vida con el mismo coraje
con el que un día decidiste que todo tenía que acabar. Ahora estas donde
siempre quisiste estar. En nuestra memoria y nuestro corazón queda tu
sonrisa, tus locuras y un agradecimiento infinito a Dios por permitirnos
compartir tantos momentos con el ser más especial… Te amamos.
Gracias DIOS por darme el privilegio de haber nacido en una familia tan
hermosa y llena de amor. A mis papitos les regalo la felicidad que siento en el
corazón por haber culminado mi sueño, ustedes son lo principal, son el motor
de mi vida. Cada vez que me sentí rendir pensé en ustedes en los valores que
me enseñaron y en las ganas de luchar hasta el final. Gracias.

Sandra Paola Monroy Ruiz

Le doy gracias a DIOS por darme la oportunidad de vivir, por regalarme una
familia maravillosa y por ser mi fuerza y mi guía en todo momento. A mis
padres y hermanos por llenar mi vida de tanto amor y por apoyarme
incondicionalmente. A Wernher por su amor, su comprensión y por ser mi
mayor apoyo. Aquí esta la materialización de lo que un día soñé.

Leidy Carolin Olarte Ciprián.

Esta tesis esta dedicada a mis Padres, a quienes agradezco de todo corazón
por su amor, cariño y compresión. En todo momento los llevo conmigo.
A mis compañeras, que dieron lo mejor, a esa dedicación y perseverancia que
con ayuda de Dios las llevara a cumplir todas sus metas. Especialmente a
Camilo, mi amigo para siempre.

Wernher Allen Reina Álvarez.


AGRADECIMIENTO GENERAL

A Dios.

Por habernos permitido llegar hasta este punto y habernos dado salud, y
sabiduría para lograr nuestros objetivos, además de su infinita bondad y amor.

A Mis Maestros.
Agradecemos a nuestros tutores, el Ingeniero Antonio José Albarracín y la
Licenciada Patricia Carreño, quienes nos orientaron oportunamente e hicieron
posible este proyecto, gracias por su gran apoyo y motivación para la
culminación de nuestros estudios profesionales y para la elaboración de este
trabajo de grado.

A Nuestros Amigos.

Gracias por su compañía, su cariño y el apoyo en los momentos difíciles.

A la Universidad de San Buenaventura y en especial a la Facultad de


Ingeniería por permitirnos ser parte de una generación de triunfadores y gente
productiva para el país.
CONTENIDO

INTRODUCCIÓN ................................................................................................1

1. PLANTEAMIENTO DEL PROBLEMA.............................................................2

1.1 ANTECEDENTES (ESTADO DEL ARTE) ....................................................2

1.2 DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA .................................6

1.3 JUSTIFICACIÓN...........................................................................................6

1.4 OBJETIVOS DE LA INVESTIGACIÓN .........................................................7

1.4.1 Objetivo general.........................................................................................7

1.4.2 Objetivos específicos .................................................................................7

1.5 ALCANCES Y LIMITACIONES DEL PROYECTO ........................................8

2. MARCO DE REFERENCIA...........................................................................10

2.1 MARCO TEÓRICO - CONCEPTUAL..........................................................10

2.2 MARCO LEGAL O NORMATIVO ………………………………………….… 32

3. METODOLOGÍA ...........................................................................................35

3.1 ENFOQUE DE LA INVESTIGACIÓN………………………………………… 35


3.2 LÍNEA DE INVESTIGACIÓN……………………...........................................35

3.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN ................................36

3.4 POBLACIÓN Y MUESTRA .........................................................................36

3.5 HIPÓTESIS.................................................................................................36

3.6 VARIABLES ................................................................................................37

3.6.1 Variables independientes........................................................................37

3.6.2 Variables dependientes ...........................................................................37

4. DESARROLLO INGENIERIL ........................................................................39

5. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS………………………… 101

6. CONCLUSIONES………………………………………………………………..103

7. RECOMENDACIONES………………………………………………………….106

BIBLIOGRAFÍA……………………………………………………………….…… 108
LISTA DE FIGURAS

Pág.

Figura 1. Manipulador Cartesiano……………………………………………….. 4

Figura 2. Interfase de programación…………………………………………….. 4

Figura 3. Taladro PCB…………………………………………………………….. 5

Figura 4. Estructura de una placa fotosensible positiva………………………. 12

Figura 5. Diagrama de un circuito a fabricar……………………………………. 13

Figura 6. Placa virgen de cobre………………………………………………….. 13

Figura 7. Marcador permanente………………………………………………….. 14

Figura 8. Percloruro férrico……………………………………………………….. 14

Figura 9. Placa antes de ser sometida a la corrosión…………………….…… 15

Figura 10. Placa después de ser afectada por el percloruro férrico………….. 15

Figura 11. Limpieza de la placa…………………………………………………... 19

Figura 12. Corrosión del cobre en las tarjetas procesadas……………………. 20

Figura 13. Impreso terminado…………………………………………………….. 21

Figura 14. Circuito grabado……………………………………………………….. 23

Figura 15. Aplicación de la tinta para serigrafía………………………………… 25

Figura 16. Imagen del circuito impreso marcado con tinta…………………….. 26

Figura 17. Conector DB9 hembra-Macho………………………………………. 26

Figura 18. Adaptación de niveles PC-MICRO………………………………….. 27

Figura 19. Configuración interna de un motor P-P bipolar…………………..... 28

Figura 20. Secuencia medio paso. ………………………………………………. 29


Figura 21. Aspectos de diseño de un circuito electrónico……………………... 33

Figura 22. Aspectos del ensamblaje electrónico de un circuito impreso…….. 33

Figura 23. Diagrama de bloques del sistema…………………………………… 39

Figura 24. Requerimientos previos a la utilización del módulo de perforado... 41

Figura 25. Diagrama de bloques del módulo de perforado …………………... 42

Figura 26. Modulo perforador ……………………….………………………….… 43

Figura 27. Base y guía de fijación de la tarjeta ………………………………… 43

Figura 28. Sensores para el fin de carrera ……………………………………….44

Figura 29. Dispositivo de perforado.……………………………………..………. 44

Figura 30. Tarjetas para control de los motores paso a paso y los sensores.. 46

Figura 31. Circuito electrónico de control de motores paso a paso y


comunicación con el PC por puerto paralelelo…. …………………. 47

Figura 32. PCB de la tarjeta para el control de los motores paso a paso…… 48

Figura 33. Configuración motor paso a paso KH56KM2………………………. 48

Figura 34. Motor paso a paso de imán permanente…………………………… 49

Figura 35. Secuencia del motor………………………………………………….. 50

Figura 36. Circuito electrónico que capta el estado de los sensores……...…. 51

Figura 37. PCB de la tarjeta que controla los sensores……………………….. 52

Figura 38. Diagrama de bloques software CNC………………………………… 52

Figura 39. Descripción de la programación de la interfaz de usuario………… 53

Figura 40. Diseño en el origen de la ventana de trabajo de CIRCAD 98……. 56

Figura 41. Ajustando la broca al mandril………………………………………… 57

Figura 42. Base de fijación puesta según guías. ……………………………… 57

Figura 43. Origen respecto al diseño de CIRCAD 98………………………….. 58

Figura 44. Tarjeta sujeta a la guía………………………………………………... 58


Figura 45. Conexión del módulo a los puertos serial y paralelo……………… 59

Figura 46. Conexión del módulo a los motores y sensores de la estructura...59

Figura 47. Módulo conectado y encendido……………………………………... 60

Figura 48. Ventana principal - interfaz de usuario del software de perforado


Mesa XYZ ……………………………………………………………… 60

Figura 49. Menú “Configuración”, opciones “Configurar Motor X”, “Configurar


Motor Y”, y “Configurar Motor Z”…………………………………….. 61

Figura 50. Eligiendo la configuración para los ejes X, Y y Z…………………... 61

Figura 51. Menú “Configuración”, opción “Puerto COM”………………………. 62

Figura 52. Ventana de configuración puerto COM…………………………..…. 62

Figura 53. Menú “Configuración”, opción “Puerto LPT”………………………... 62

Figura 54. Ventana de configuración puerto LPT………………………………. 63

Figura 55. Menú “Archivo”, opción “Abrir”. …………………………………….... 63

Figura 56. Icono para la opción “Abrir”…………………………………………... 64

Figura 57. Seleccionando el archivo de CIRCAD 98 a perforar………………. 64

Figura 58. Archivo extraído de CIRCAD 98…………………………………...… 65

Figura 59. Menú “Edición”, opción “Procesar”……………………………….….. 66

Figura 60. Icono para la opción “Procesar”……………………………………… 66

Figura 61. Puntos ordenados en la ventana principal, pestaña “Proceso”…... 67

Figura 62. Menú “Edición”, opción “Dibujar”…………………………………..… 68

Figura 63. Icono para la opción “Dibujar………………………………………… 68

Figura 64. Puntos dibujados en la ventana principal, pestaña “Grafica……… 68

Figura 65. Menú “Edición”, opción “Taladrar”…………………………………… 69

Figura 66. Icono para la opción “Taladrar”………………………………………. 69

Figura 67. Mensaje de finalización del proceso de perforado………………… 70


Figura 68. Apagando el módulo de perforado…………………………………... 70

Figura 69. Retirando la tarjeta de la guía de fijación…………………………… 71

Figura 70. Tarjeta lista para ser insolada……………………………………..…. 71

Figura 71. Requerimientos previos a la utilización del módulo insolador……. 72

Figura 72. Diagrama de bloques del módulo insolador ……………………….. 72

Figura 73. Fotolitos positivo y negativo ……………………..…………………... 73

Figura 74. Circuito de interfaz de usuario……………………………………….. 74

Figura 75. Diseño PCB del módulo insolador…………………………………….76

Figura 76. Circuito electrónico del módulo de insolación……………………… 77

Figura 77. Diagrama de pines RTC DS1307……………………………………. 78

Figura 78. Circuito de reloj para el diseño de la insoladora…………………… 78

Figura 79. Configuración básica del LCD………………………………………...79

Figura 80. Diseño PCB en CIRCAD 98………………………………………….. 80

Figura 81. En el menú “File” opción “Printer Out”, de CIRCAD 98, imprimir
el fotolito……………………………………………………………...… 81

Figura 82. Configuración de las opciones de impresión en la ventana


“Printer Output Setup”……………………………………..………...... 82

Figura 83. Fotolito negativo impreso…………………………………………….. .82

Figura 84. Quitando el film protector…………………………………………….. .83

Figura 85. Fotolito sobre el cristal de la insoladora…………………………….. 84

Figura 86. Colocando la placa contra el fotolito………………………………… 84

Figura 87. Placa fotosensible sobre el fotolito………………………………...... 85

Figura 88. Placa fotosensible sobre el fotolito…………………………………... 85

Figura 89. Insoladora encendida…………………………………………………. 86

Figura 90. Ajustando el tiempo de insolación…………………………………… 86


Figura 91. Insoladora actuando………………………………………………...… 87

Figura 92. Retirando la placa de la insoladora... ………………………………. 87

Figura 93. Placa lista para ser revelada…………………………………………. 88

Figura 94. Diagrama de bloques de proceso en el módulo revelador………... 89

Figura 95. Módulo revelador………………………………………………………. 89

Figura 96. Módulo ajustado a la guía de fijación…………………………………90

Figura 97. Preparando la solución cáustica……………………………………... 91

Figura 98. Llenado del contenedor hasta la marca de referencia…………….. 91

Figura 99. Se introduce la placa en la solución cáustica………………………. 92

Figura 100. Material fotosensible desprendiéndose de la placa…………….... 92

Figura 101. Retirando la placa del contenedor…………………….…………… 93

Figura 102. Lavando la placa que ha sido revelada…………………….……... 94

Figura 103. Placa una vez ha sido revelada…………………………………….. 94

Figura 104. Modulo de atacado………………………………………………...… 95

Figura 105. Diagrama de bloques atacador………………………………….…. 95

Figura 106. Llenando el contenedor……………………………………………… 96

Figura 107. Introduciendo la placa en el atacador……………………………… 97

Figura 108. Pasando el seguro del módulo atacador. ………………………… 97

Figura 109. Retirando la tarjeta del contenedor del módulo atacador…….…. 98

Figura 110. Placa luego de retirar el cobre innecesario……………………….. 98

Figura 111. Limpiando la placa con acetona……………………………………. 99

Figura 112. Producto final, placa lista para ser ensamblada………………….. 99


LISTA DE TABLAS

Pág.

Tabla 1. Función de cada pin del DB-9…………………………………………... 27

Tabla 2. Secuencia para controlar motores P - P bipolares …………………... 28


LISTA DE ANEXOS

Pág.

ANEXO A. Ventana de trabajo - Diseño CIRCAD 98……………………..……111

ANEXO B. Ventana de trabajo de Visual Studio 6.0...................................... 112

ANEXO C. Código de programación PIC16F628A, control de sensores fin


de carrera y dispositivo de perforado a través del puerto serial... 113

ANEXO D. Código de programación del módulo Principal............................. 117

ANEXO E. Código de programación del Formulario “Principal”..................... 125

ANEXO F. Código de programación del Formulario “Calibración”................. 140

ANEXO G. Código de programación del Formulario “ConfigMotor”............... 143

ANEXO H. Código de programación del Formulario “ConfigPuertoCOM”..... 145

ANEXO I. Código de programación del Formulario “ConfigPuertoLPT”......... 146

ANEXO J. Código de programación para el proceso de insolación............... 148

ANEXO K. Código de programación de La LCD............................................ 155

ANEXO L. Vistas 3D de estructura en acrílico para la insoladora…………... 159

ANEXO M. Datasheet TIP122........................................................................ 165

ANEXO N. Datasheet TIP3055....................................................................... 167

ANEXO O. Datasheet 4N33........................................................................... 169

ANEXO P. Datasheet MAX232...................................................................... 171

ANEXO Q. Datasheet PIC16F628A............................................................... 176

ANEXO R. Datasheet PIC16F886A................................................................ 179

ANEXO S. Datasheet DS1307....................................................................... 183


GLOSARIO

BAQUELITA: sustancia plástica totalmente sintética, fenoplástico a partir de


moléculas de fenol y formaldehído. Este producto puede moldearse a medida
que se forma y resulta duro al solidificar. No conduce la electricidad, es
resistente al agua y los solventes, pero fácilmente mecanizable.

BASTIDOR: armazón de madera o metal que sirve de soporte a otros


elementos.

BORLAND BUILDER C++: software de programación.

BORNE: nombre dado en Electricidad a cada uno de los terminales de metal


en que suelen terminar algunas máquinas y aparatos eléctricos, y que se
emplean para su conexión a los hilos conductores.

CLORURO FÉRRICO: el cloruro férrico es un cloruro de hierro (III), de fórmula


FeCl3. Una de sus más importantes aplicaciones es en electrónica para
producir plaquetas. El cloruro férrico reacciona con el cobre dando cloruro
ferroso y cloruro cúprico.

CONTROL NUMÉRICO: se considera control numérico por computador,


también llamado CNC (Computer Numerical Control) a todo dispositivo capaz
de dirigir el posicionamiento de un órgano mecánico móvil mediante órdenes
elaboradas de forma totalmente automática a partir de informaciones
numéricas en tiempo real.

DRIVER: controlador de dispositivo (llamado normalmente controlador) es un


programa informático que permite al sistema operativo interactuar con un
periférico, haciendo una abstracción del hardware y proporcionando una
interfaz -posiblemente estandarizada- para usarlo. También se le conoce con
este nombre a los circuitos integrados que controlan diferentes tipos de
circuitos.

FOTOLITO: plancha que reproduce el objeto sobre película o soporte


transparente.

FOTOMECÁNICA: técnica para obtener transparencias negativas o positivas


de dibujos, fotografías y textos, que servirán en primer lugar para hacer una
copia exacta en la plancha, estando en pleno contacto con ella.

GALVANOPLASTIA: proceso basado en el traslado de iones metálicos desde


un ánodo a un cátodo en un medio líquido, compuesto fundamentalmente por
sales metálicas y ligeramente acidulado.
INSOLADORA: dispositivo que contiene uno o varios tubos de rayos
ultravioleta, con el que se atacan las placas de circuitos impresos fotosensibles,
logrando un acabado profesional.

INTERFAZ SERIAL: interfaz de comunicaciones de datos digitales,


frecuentemente utilizado por computadoras y periféricos, en donde la
información es transmitida bit a bit enviando un solo bit a la vez, en contraste
con el puerto paralelo que envía varios bits simultáneamente.

INTERFAZ USB: (Universal Serial Bus) Puerto de gran velocidad para


comunicar computadoras y periféricos. Soporta plug & play y conexión en
caliente (hot plugging). Soporta transferencias de 12 Mbps. Un sólo puerto USB
permite ser usado para conectar más de 127 dispositivos periféricos.

LCD: pantalla de cristal líquido o LCD (acrónimo del inglés Liquid crystal
display) es una pantalla delgada y plana formada por un número de píxeles en
color o monocromos colocados delante de una fuente de luz o reflectora. A
menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza
cantidades muy pequeñas de energía eléctrica.

LINUX: es la denominación de un sistema operativo tipo-Unix y el nombre de


un núcleo. Es uno de los paradigmas más prominentes del software libre y del
desarrollo del código abierto, cuyo código fuente está disponible públicamente.

LUZ ULTRAVIOLETA: es un tipo de radiación electromagnética. La luz


ultravioleta también es conocida coloquialmente como luz negra. Para generar
este tipo de luz se usan unas lámparas fluorescentes especiales. En estas
lámparas se usa sólo un tipo de fósforo en lugar de los varios usados en las
lámparas fluorescentes normales.

MATERIAL FOTOSENSIBLE: soporte que contiene una capa o un conjunto de


capas sensible a la luz que reaccionan al contacto con la luz formando una
imagen latente. En esta categoría se encuentran por un lado las películas que
están formadas por un soporte plástico transparente recubierto por una de sus
caras con la emulsión fotosensible y por otro lado están los papeles, en los que
el soporte es una hoja de papel más o menos grueso.

MICROCONTROLADOR: circuito integrado o chip que incluye en su interior las


tres unidades funcionales de una computadora: CPU, Memoria y Unidades de
E/S, se trata de un computador completo en un solo circuito integrado.

MOTORTOOL: herramienta rotativa profesional ideal para modelismo, trabajos


finos en cualquier tipo de material y trabajos artesanales que requieren de gran
precisión. Es una herramienta universal que funciona como taladro, lijadora,
esmeriladora, cortadora, pulidora, rebajadora en trabajos pequeños o que
requieren de extrema precisión.
PAD: en la fabricación de productos electrónicos, se refiere a una superficie
plana utilizada para hacer el contacto eléctrico. En las tarjetas electrónicas, el
punto donde se sueldan los componentes.

PC: un computador personal (Personal Computer), es una máquina electrónica


que recibe y procesa datos para convertirlos en información útil. Una
computadora es una colección de circuitos integrados y otros componentes
relacionados que puede ejecutar con exactitud, rapidez, y de acuerdo a lo
indicado por un usuario o automáticamente por otro programa, una gran
variedad de secuencias o rutinas de instrucciones que son ordenadas,
organizadas y sistematizadas en función a una amplia gama de aplicaciones
prácticas y precisamente determinadas.

PCB: printed circuit board, medio para sostener mecánicamente y conectar


eléctricamente componentes electrónicos, a través de rutas o pistas de material
conductor, grabados desde hojas de cobre laminadas sobre un sustrato no
conductor.

PROTEUS: programa para simular circuitos electrónicos complejos integrando


inclusive desarrollos realizados con microcontroladores de varios tipos, en una
herramienta de alto desempeño con altas capacidades graficas. Presenta una
filosofía de trabajo semejante al SPICE, arrastrando componentes de una barra
e incrustándolos en la aplicación.

PWM: modulación por ancho de pulsos (o PWM, de pulse-width modulation en


inglés) es una técnica en la que se modifica el ciclo de trabajo de una señal
periódica (por ejemplo sinusoidal o cuadrada).

RTC: el real time clock es un reloj de computadora (generalmente en forma de


circuito integrado) que mantiene la hora actual. Los RTCs están presentes en
casi todos los dispositivos electrónicos que necesitan del tiempo actual. Los
RTCs generalmente tienen una fuente de energía diferente al de la
computadora, de esta manera pueden mantener la hora aunque la fuente de
energía primaria no está presente. Generalmente la fuente alternativa de
energía era una batería de litio en los sistemas antiguos y los nuevos usan
supercapacitores.

SERIGRAFÍA: técnica de impresión empleada en el método de reproducción


de documentos e imágenes sobre casi cualquier material y consiste en
transferir una tinta a través de una gasa tensada en un marco, el paso de la
tinta se bloquea en las áreas donde no habrá imagen mediante una
emulsión o barniz, quedando libre la zona donde pasará la tinta.

TEMPORIZADORES: mecanismos que funcionan o hacen una operación por


cierto tiempo donde el tiempo es ajustado de acuerdo del uso dado. Entre estos
existen pequeños dentro de un integrado o grande para potencia en fin digitales
o no llevan los mismos implementos básicos. Están presentes en casi todos los
circuitos electrónicos y son la aplicación análoga más común de la electrónica
de control. Su principio de funcionamiento se basa circuitos RC.

TRAXMAKER 2000: software de diseño de PCB y diseños esquemáticos.


INTRODUCCIÓN

Debido al alto impacto que generó el desarrollo de las nuevas tecnologías en el


mundo moderno, se globalizaron conceptos y servicios que hoy día tienen gran
demanda tales como seguridad electrónica, tecnología médica e ingeniería
industrial, etc., proyectos de alta tecnología que sin duda alguna revolucionaron
la electrónica y la forma de diseñar, construir y producir circuitos impresos cada
vez más pequeños y eficientes para las telecomunicaciones, la industria y la
informática, herramientas que actualmente son indispensables en cualquier
sociedad.

En tiempos pasados para realizar un circuito electrónico se recurría al cableado


con hilo conductor. Este sistema daba lugar a gran cantidad de averías, ya que
los hilos iban directamente sobre el chasis, además de la complejidad y
voluminosidad de los montajes. La implantación de los circuitos impresos
facilitó y simplificó enormemente las tareas de montaje y reparación de circuitos
electrónicos.

Son pocas las técnicas para trazar circuitos impresos de alta calidad que se
encuentran hoy día, debido al costo del equipo y los materiales que se
requieren para implementar un proceso sofisticado de los mismos. Las
diferentes técnicas que existen actualmente para la elaboración de los circuitos
impresos, generalmente demandan mucho tiempo, son incómodas de trabajar y
en muchos casos poco eficientes.

Este proyecto está encaminado en la construcción de un dispositivo que a


través de una serie de módulos automatizará y facilitará la elaboración de
tarjetas electrónicas paso a paso haciendo el proceso mucho más sencillo de
forma educativa.

1
1. PLANTEAMIENTO DEL PROBLEMA

1.1 ANTECEDENTES (ESTADO DEL ARTE)

Inicialmente el diseño de los circuitos impresos se hacía de forma totalmente


manual, dibujando los caminos electrónicos directamente sobre la placa virgen
o baquelita con un marcador de tinta indeleble; sin embargo, con el tiempo se
fue incorporando el computador como principal herramienta en el diseño de
circuitos impresos, dando a conocer las técnicas de fabricación de circuitos
impresos, por medio de software, facilitando así realización de las pistas que se
trazan sobre la baquelita, o sobre la fibra de vidrio.

Hay programas que se denominan PCB MAKER que sirven para diseñar los
caminos eléctricos; entre los más utilizados están EAGLE Layout Editor (de los
mejores por su completa librería), PROTEUS, ORCAD y el Express PCB.
Existe otros como TARGET 3001 que no son muy comerciales o como
CIRCAD que es bastante sencillo.

A nivel estudiantil el proceso de elaboración de los circuitos impresos es


completamente manual; se recurre a la típica técnica del trazado de un diseño
con un marcador de tinta indeleble en la baquelita; luego ésta es sumergida en
cloruro férrico para corroer la superficie de cobre no deseada.

A continuación se citan algunos proyectos que tienen relación con la


automatización del proceso de diseño y elaboración de circuitos impresos; sin
embargo una vez consultadas las fuentes, se observa que los trabajos
encontrados se relacionan de forma directa con el proceso de perforación de
circuitos impresos, más no con todo el proceso de elaboración de los mismos
como es el objetivo de este trabajo.

Tomando como referencia los siguientes trabajos, se tiene un buen punto de


partida en la medida en que se aclaran las diferentes técnicas, mecanismos y
tipos de software utilizados para el proceso de perforación de PCB.

2
• Proyecto: Software para el control en red de un Sistema de perforación
Automática de Circuitos Impresos1.

Autor: Boris Pablo Carbo Bustinza - Jeo Marion Mamani Albuquerque.

Institución: INICTEL

Detalle del proyecto: El proyecto propuesto consiste en desarrollar un


software basado en Linux que servirá para controlar un sistema de perforación
de circuitos impresos utilizando la computadora personal y una etapa de control
de motores. Cuarto puesto concurso de proyectos de software libre: Ada
Lovelace.

• Proyecto: Control numérico computarizado aplicado a la perforación de


tarjetas para circuitos impresos2.

Autor: Juan Gabriel Ávila Meza – Luis Vicente Coy

Institución: Centro de Docencia Consultoría Administrativa CIDCA –


Fundación Universitaria Los Libertadores.

Detalle del proyecto: Como resultado final se obtuvo un manipulador


cartesiano (Ver figura 1) capaz de realizar las perforaciones en las tarjetas de
los circuitos impresos controlado a través de una interfase de programación
(Ver figura 2) desde un computador, con el cual se obtienen resultados
aceptables teniendo en cuenta las limitaciones técnicas y económicas para la
construcción del sistema. Sin embargo se enfrenta un problema técnico para la
consecución de elementos ópticos que lean con precisión los sensores (0.3mm
- 0.5mm), lo que dificulta el control en lazo cerrado del sistema. Este proyecto
tiene como limitante el tamaño de las tarjetas a perforar y el posicionamiento
inicial es por ahora manual.

____________
1
CARBO BUSTINZA Boris P. y MAMANI ALBURQUEQUE Jeo M. Software para el control en
red de un Sistema de perforación Automática de Circuitos Impresos. Lima: Inictel, 2004, p1.

2
ÁVILA MEZA Juan G. y COY Luis V. Control numérico computarizado aplicado a la
perforación de tarjetas para circuitos impresos. Bogotá: Fundación Universitaria Los
Libertadores, 1991, p.1.

3
Figura 1. Manipulador Cartesiano

Fuente: Perforación de circuitos impresos. [En línea] Colombia.


http://www.cidca.edu.co/REVISTA/Vol1/p ags39-45.pdf. Centro de Investigación Docencia y
Consultoría Administrativa CIDCA. (Consulta: 10 octubre, 2007. h: 14:24).

Figura 2. Interfase de programación

Fuente: Perforación de circuitos impresos. [En línea] Colombia.


http://www.cidca.edu.co/REVISTA/Vol1/p ags39-45.pdf. Centro de Investigación Docencia y
Consultoría Administrativa CIDCA. (Consulta: 10 octubre, 2007. h: 14:24).

4
• Proyecto: “TALADRO PCB” 3.

Autor: Alex Gildemeister - Juan González

Institución: Pontificia Universidad Católica de Chile.

Detalle del Proyecto: el taladro PCB (Ver figura 3) es un producto diseñado


para la perforación de circuitos eléctricos impresos. Este se compone de dos
partes principales, la plataforma (taladro) y el software PCB DRILL. El objetivo
de este producto es facilitar la perforación de placas prediseñadas de forma
automatizada. Para ello el sistema consta de tres grados de libertad. El PCB
DRILL 1.0 inicialmente posee compatibilidad con el software de diseño de PCB,
Traxmaker 2000. Debilidades: todos los tipos de puntos son considerados con
el mismo espesor, avance de perforación diferencial únicamente para el eje X e
Y, la plataforma debe estar a una distancia mínima del taladro.

Figura 3. Taladro PCB

Fuente: TALADRO PCB. [En línea] : Chile. http://www.2.ing.pu


c.cl/~iee3912/htm/proyecto/proyectos/old/2200205.pdf. Pontificia Universidad Católica de Chile.
(Consulta: 19 septiembre, 2007. h: 16:32).

____________
3
GILDEMEISTER Alex y González Juan. TALADRO PCB. Santiago de Chile: Pontificia
Universidad Católica de Chile, 2002, p.2.

5
1.2 DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA

El problema que se evidencia en el diseño y elaboración de los circuitos


impresos a nivel estudiantil es que el proceso es totalmente manual, por lo
tanto demanda mucho tiempo, es incómodo de trabajar y adicionalmente
emplear estas técnicas artesanales para la elaboración de estas tarjetas
electrónicas generalmente no arroja una baquelita con un diseño preciso; es
decir los resultados obtenidos son de baja calidad.

Estudiantes de electrónica, comerciantes de productos electrónicos, docentes,


y muchas otras personas que tienen que ver con el diseño y elaboración de
prototipos electrónicos y circuitos impresos, constantemente se encuentran
con limitantes económicas, de costos y tiempo a la hora de realizar sus
tareas referentes a la elaboración completa de tarjetas electrónicas de una
forma rápida y eficiente.

¿Cómo automatizar el proceso de diseño y elaboración de tarjetas electrónicas,


con el fin de obtener un circuito impreso totalmente terminado y listo para ser
ensamblado?.

1.3 JUSTIFICACIÓN

Como ya se ha descrito el proceso para obtener una tarjeta impresa a nivel


estudiantil se hace de forma totalmente artesanal; a través del proceso de la
tinta indeleble. Este proyecto surge como respuesta a la necesidad de mejorar
y automatizar el proceso de diseño y elaboración de circuitos impresos que por
años se ha efectuado manualmente a través de diferentes técnicas. El objetivo
es hacer de este proceso algo sencillo para que cualquier persona a nivel
profesional o simplemente experimental sea capaz de diseñar y producir
circuitos impresos de una forma rápida, eficiente, altamente mecanizada y a un
bajo costo; dando así solución a las necesidades de técnicos, ingenieros y
estudiantes de electrónica.

Es preciso desarrollar este proyecto teniendo en cuenta que va a ser un trabajo


con alto contenido educativo y formativo, pues no sólo es un dispositivo que
automatiza la construcción de circuitos impresos; sino que también ilustra
alrededor de la investigación sobre las mejores técnicas para el diseño y
elaboración de los circuitos impresos. Además el dispositivo servirá como
apoyo en prácticas de laboratorio desarrolladas alrededor del diseño y la
6
construcción de circuitos impresos y elaboración de diferentes proyectos que
empleen tarjetas electrónicas.

Como elemento adicional y de innovación, se tiene que en los proyectos


consultados, el proceso de diseño y construcción de circuitos impresos, no
había sido automatizado completamente; es decir solo se enfocaban en la
perforación de la tarjeta. El objetivo es mejorar algunos prototipos similares de
los cuales ya se tiene conocimiento, pero ir un paso más allá con el fin de
mecanizar este proceso desde sus inicios, empezando desde el diseño
adecuado del PCB, pasando por la impresión, el revelado y atacado hasta la
perforación de la tarjeta.

1.4 OBJETIVOS DE LA INVESTIGACIÓN

1.4.1 Objetivo general

• Diseñar y construir un dispositivo que automatice el proceso de diseño y


elaboración de circuitos impresos.

1.4.2 Objetivos específicos

• Evaluar las diferentes técnicas empleadas en el diseño y elaboración de


circuitos impresos.

• Comparar las técnicas usadas para la construcción de tarjetas


electrónicas.

• Seleccionar la técnica más adecuada para cada una de las etapas del
proceso de diseño y construcción de circuitos impresos, tomando como
base aspectos como aplicabilidad y costos.

• Diseñar un prototipo electrónico y mecánico, que ejecute paso a paso


las diferentes tareas que al final del proceso permitan tener cualquier
tarjeta electrónica lista para ensamblar en ella los dispositivos
electrónicos.

• Construir el mecanismo de acuerdo con las especificaciones técnicas del


diseño, teniendo en cuenta que cumpla a cabalidad con el objeto de
tener un circuito impreso de las características solicitadas.
7
• Implementar el dispositivo a nivel estudiantil, como un proyecto
educativo que sirva como guía en las prácticas de laboratorio
desarrolladas en torno a la construcción de tarjetas de circuitos
impresos.

• Realizar pruebas de funcionamiento del dispositivo y comprobar que


efectivamente corresponde a las necesidades para las que fue diseñado.

1.5 ALCANCES Y LIMITACIONES DEL PROYECTO

El dispositivo a desarrollar automatizará el proceso de diseño y elaboración de


circuitos impresos, al menos en un 70%, considerando que actualmente los
estudiantes realizan todos los procedimientos que este demanda de forma
manual.

El proyecto culmina con el diseño de un mecanismo que paso a paso, permita


la obtención de un PCB (Printed Circuit Board) completamente terminado, listo
para ensamblar en él los componentes electrónicos.

Los logros alcanzados con respecto al diseño y elaboración de circuitos


impresos se verán reflejados en la facilidad con la que se podrá obtener un
PCB, utilizando luz para revelar la tarjeta y no el proceso de tinta indeleble ya
mencionado; de la misma forma para el atacado se usará un modulo que por
acción mecánica perturbará el agua sin intervención manual por parte del
usuario como se hace actualmente en el proceso artesanal que se utiliza a
nivel estudiantil. Adicionalmente la perforación de la tarjeta se hará de forma
automática a través de un software y un posicionador XYZ.

Los módulos de insolación, y atacado, permiten la producción de varias tarjetas


impresas al mismo tiempo, teniendo en cuenta que el tamaño de una o varias
baquelitas no puede ser mayor a 13.5cm x 32cm. Sin embargo en el módulo de
revelado se limita a 13cm x 14cm que es el tamaño de los contenedores
usados; por tratarse de recipientes simples que solo cumplen la función de
albergar los líquidos y químicos usados, es posible reemplazarlos por otros de
mayor tamaño para poder trabajar con tarjetas un poco más grandes.

Como limitante, se tiene que el sistema no será totalmente automático y


mecanizado; es decir, que en ciertos puntos se requerirá de acción manual por
parte del usuario.

8
La precisión del sistema depende en gran medida, del punto de partida del
taladro (posición 0,0) y la adecuada posición de la placa al momento de iniciar
la perforación, ya que se hace de forma manual. La desviación en la precisión
del perforador es de 0.01mm, teniendo 68 pasos por milímetro.

Otra limitante se encuentra en el tamaño de la perforación, debido a que ésta


depende de los diferentes diámetros que se manejan para los PAD´s; se puede
variar el tamaño de perforación según las brocas comerciales que van de 1/32,
1/64, 3/64, etc. hasta donde soporte el mandril. Este cambio de la broca del
perforador se realiza al inicio del proceso, únicamente de forma manual,
teniendo en cuenta que el ajuste de la broca al mandril debe hacerse de tal
forma que la broca sobresalga 2cm. del mismo para el adecuado
funcionamiento del perforador.

El diseño en general de la elaboración de circuitos impresos es un proceso


semiautomático, debido a que la obtención del circuito impreso, se hace a
través de una serie de módulos; el cambio entre módulos y la adecuada
preparación de la tarjeta para el uso óptimo de los mismos implica intervención
manual por parte del usuario. Cabe aclarar que este diseño se enfoca en la
producción de los circuitos impresos de una sola faz, aunque mediante técnica
de precisión manual es posible usar los módulos para la elaboración de tarjetas
doble faz.

Este prototipo no es diseñado, para producir tarjetas impresas con máscara de


componentes ni antisolder.

9
2. MARCO DE REFERENCIA

2.1 MARCO TEÓRICO - CONCEPTUAL

Un circuito impreso o PCB (Printed Circuit Board), es un medio para sostener


mecánicamente y conectar eléctricamente componentes electrónicos, a través
de rutas o pistas de material conductor, grabados desde hojas de cobre
laminadas sobre un sustrato no conductor.

El cobre, de símbolo Cu, es el elemento químico de número atómico 29. Se


trata de un metal de transición de color rojizo y brillo metálico que, junto con la
plata y el oro, forma parte de la llamada familia del cobre, caracterizada por ser
los mejores conductores de electricidad. Gracias a su alta conductividad
eléctrica, ductilidad y maleabilidad, se ha convertido en el material más
utilizado para fabricar cables eléctricos y otros componentes eléctricos y
electrónicos.

La conductividad eléctrica del cobre puro fue adoptada por la Comisión


Electrotécnica Internacional en 1913 como la referencia estándar para esta
magnitud, estableciendo el International Annealed Copper Standard (Estándar
Internacional del Cobre Recocido) o IACS. Según esta definición, la
conductividad del cobre recocido medida a 20 ºC es igual a 58,1086 S/m. A este
valor de conductividad se le asigna un índice 100% IACS y la conductividad del
resto de los materiales se expresa en porcentaje de IACS. La mayoría de los
metales tienen valores de conductividad inferiores a 100% IACS pero existen
excepciones como la plata o los cobres especiales de muy alta conductividad.

El aislante eléctrico es un material con escasa conductividad eléctrica, Debido


a que no es buen conductor, Éste material es muy utilizado para evitar
cortocircuitos, forrando con ellos los conductores eléctricos, para mantener
alejadas del usuario determinadas partes de los sistemas eléctricos que, de
tocarse accidentalmente cuando se encuentran en tensión, pueden producir
una descarga.

El comportamiento de los aislantes se debe a la barrera de potencial que se


establece entre las bandas de valencia y conducción que dificulta la existencia
de electrones libres capaces de conducir la electricidad a través del material.

10
Al realizar pistas y rutas de material conductor sobre una base o soporte
aislante se pueden realizar diseños de circuitos electrónicos específicos, en los
cuales la corriente conducirá únicamente por las rutas y caminos establecidos,
permitiendo de esta manera que cada elemento del circuito electrónico pueda
conducir.

El diseño de un proyecto electrónico o prototipo se resume en las siguientes


etapas: la prueba del circuito armado en protoboard, el diseño esquemático del
circuito, el diseño del circuito impreso (y fabricación), y el ensamble de
componentes. La primera etapa se considera fundamental, con ella se certifica
que el circuito bajo prueba funcione a la perfección. Una vez que el circuito se
prueba y se acepta, la siguiente etapa a realizar, es la etapa de diseño del
esquemático

Trazado de los circuitos impresos Entre las diferentes técnicas para trazar
circuitos impresos que se encuentran al alcance de estudiantes, algunas
permiten obtener tarjetas de muy buena calidad a bajo costo. Una de estas es
la técnica tradicional de serigrafía.

Las técnicas tradicionales son:

1. Circuitos impresos elaborados con tinta indeleble.


2. Circuitos impresos elaborados con logotipo.
3. Circuitos impresos elaborados con la técnica de serigrafía.
4. Circuitos impresos elaborados con la técnica fotográfica.
5. El fresado de circuitos impresos.
6. Impresión en material termosensible.

Materiales para las tarjetas de impresión Existen varios tipos de materiales


útiles que se utilizan como tarjetas de impresión o trazado de circuitos
impresos, los más comunes de encontrar en el mercado son la fibra fenólica
(baquelita) y la fibra de vidrio. Estos materiales cuentan con una y/o dos caras
cubiertas de una capa delgada de cobre sobre la cual se traza el circuito
impreso. Ofrecen características físicas adecuadas para el proceso de
manufactura de los circuitos impresos, como la capacidad para soportar el
calor, la rigidez que ofrecen para llevar a cabo el montaje de los componentes y
la facilidad de corte para obtener tarjetas de variadas dimensiones.

También encontramos las placas fotosensibles (Ver Figura 4) que se


componen de un film protector, una capa fotosensible, el cobre y el material de
soporte. El film tiene como función proteger de los rayos UV (ultravioleta) la

11
capa fotosensible. La capa fotosensible posee dos propiedades fundamentales:
es resistente a los ácidos y vulnerable a los rayos UV, tiene un espesor
aproximado de 4~6µm (micras), sirve para la protección del cobre frente al
agente de grabado que es un ácido. La capa de cobre tiene un espesor que
puede oscilar entre 0,025 y 0,07mm y los materiales más usados son la
baquelita y la fibra de vidrio, aunque también existen otros materiales como:
poliamidas de vidrio, kevlar, compuestos de cuarzo, aluminas (cerámicas),
invar-cobre.

Figura 4. Estructura de una placa fotosensible positiva

Circuitos impresos su estructura y fabricación. [En Línea]. Estructura de una placa fotosensible
positiva. (Consulta: 20 septiembre, 2008. h.1:52).

Los circuitos impresos elaborados con tinta indeleble. Esta manera de


producir tarjetas de circuito impreso es la más económica que existe, ya que
sólo se necesita un plumón de tinta indeleble, la baquelita donde se plasma el
diseño y el agente que se encarga de corroer la superficie de cobre no
deseada. Este agente es el conocido cloruro férrico.

La manera de producir estas tarjetas se realiza mediante el dibujo manual de


las pistas del circuito, razón por la cual resulta muy difícil llegar a obtener
trabajos de mediana complejidad.

• Ejemplo de la elaboración de circuitos impresos con tinta indeleble:

Para realizar circuitos impresos con la técnica de tinta indeleble se necesita.

12
Primero: un diagrama del circuito del que se desea fabricar (Ver Figura 5).

Figura 5. Diagrama del circuito a fabricar

Circuitos impresos. http://www.circuitosimpresos.org/2008/05/19/que-necesitas-para-fabricar-


circuitos-impresos/[En Línea]. Diagrama del circuito del que deseas fabricar la placa de circuito
impreso. (Consulta: 20 septiembre, 2008. h.1:48)

Segundo: se requiere comprar un placa virgen de cobre (Ver figura 6).

Figura 6. Placa virgen de cobre

Circuitos impresos. http://www.circuitosimpresos.org/2008/05/19/que-necesitas-para-fabricar-


circuitos-impresos/[En Línea]. Placa virgen cobre. (Consulta: 20 septiembre, 2008. h.1:48).

Tercero: marcador permanente (tinta indeleble), o bien una impresora, de


preferencia láser, caso contrario una normal o fotocopiadora (Ver figura 7).

13
Figura 7. Marcador permanente

Circuitos impresos. http://www.circuitosimpresos.org/2008/05/19/que-necesitas-para-fabricar-


circuitos-impresos/[En Línea]. Marcador permanente -tinta indeleble-. (Consulta: 20 septiembre,
2008. h.1:59)

Cuarto: percloruro férrico (también llamado Cloruro Férrico, Percloruro de


hierro) (Ver Figura 8). Si desea preparar usted mismo el percloruro, debe de
ser cuidadoso con el manejo ya que es altamente tóxico y mancha la ropa; para
esto debe contar con guantes, mascarilla y anteojos que cubran
completamente el área de los ojos. La preparación es como sigue:

• 1 litro de agua tibia.


• 300 gramos de percloruro de hierro o férrico.

Preparación: Agregar al agua el percloruro y se revuelve con un utensilio


plástico hasta que esté completamente disuelto.

Figura 8. Percloruro férrico

Circuitos impresos. http://www.circuitosimpresos.org/2008/05/19/que-necesitas-para-fabricar-


circuitos-impresos/[En Línea]. Percloruro férrico. (Consulta: 20 septiembre, 2008. h: 2:43)

Quinto: Recipiente plástico o de vidrio para poner allí suficiente percloruro para
que la placa de circuito impreso quede cubierta totalmente.

14
Sexto: taladro liviano para abrir los agujeros. Adicional Broca de 1 mm. o de
1.5mm. Martillo y punzón o un clavo acerado delgado. Estas herramientas
sirven para hacer una guía para la broca en los puntos donde se insertarán los
pines de los diferentes componentes electrónicos.

En la figura 9 se observa la placa antes de ser sometida a la corrosión con el


percloruro férrico. Todo lo que está en negro no se verá afectado por la
corrosión y en la figura 10 se observa como queda después de ser sometida a
corrosión.

Posteriormente se debe quitar la pintura negra con una lija fina para que
queden las pistas de cobre. Por último, el tiempo estimado para la corrosión es
de unos 15 a 20 minutos con una solución nueva. Con solución usada oscila
entre 40 y 60 minutos.

Figura 9. Placa antes de ser sometida a la corrosión.

Circuitos impresos. http://www.circuitosimpresos.org/2008/05/19/que-necesitas-para-fabricar-


circuitos-impresos/[En Línea]. (Consulta: 20 septiembre, 2088. h: 3:56).

Figura 10. Placa después de ser afectada por el percloruro férrico.

Circuitos impresos. http://www.circuitosimpresos.org/2008/05/19/que-necesitas-para-fabricar-


circuitos-impresos/[En Línea]. (Consulta: 20 septiembre, 2088. h: 4:09).
15
Los circuitos impresos elaborados con logotipo. La elaboración de circuitos
impresos mediante logotipo es muy similar a la que se menciona anteriormente,
sólo que difiere en la forma de impresión. En el procedimiento anterior se
dibujaba a mano el diseño de circuito impreso sobre la baquelita con la tinta
indeleble.

Esta técnica consiste en colocar sobre la baquelita logotipos (calcomanías) que


tienen diversas figuras: pistas y terminales de componentes. Tienen la
característica de que inhiben sobre la superficie cubierta la acción corrosiva del
cloruro férrico, de esta forma se llegan a obtener circuitos impresos con mejor
calidad que con el procedimiento anterior, aunque no deja de ser una forma
artesanal de producción. De la misma manera resulta muy difícil llegar a
obtener diseños de circuito impresos de mediano tamaño. Esta forma de
producción es menos económica que la anterior por el costo del logotipo.

Circuitos impresos elaborados con técnicas de serigrafía. Esta técnica de


producción de circuitos impresos tiene la ventaja de obtener trabajos de buena
calidad a un precio razonable, además permite la realización de varias copias
del mismo diseño una vez que se ha revelado en la seda, lo que nos lleva a
una producción en serie de tarjetas impresas. Aunque no deja de ser un
proceso manual, esta técnica es válida y permite obtener trabajos con la
suficiente calidad y presentación necesaria para la realización de prototipos
electrónicos y/o aplicaciones especificas de la Industria.

El procedimiento serigráfico es muy sencillo. A grandes rasgos consiste en


revelar la seda con el diseño del circuito impreso, para lo cual será necesario
contar primero con el fotolito (Positivo) del Diseño realizado. La impresión
serigráfica utiliza tintas resistentes al grabado para proteger la capa de cobre.
Los grabados posteriores remueven el cobre no deseado. Alternativamente, la
tinta puede ser conductiva, y se imprime en una tarjeta virgen no conductiva.
Esta última técnica también se utiliza en la fabricación de circuitos híbridos.

• Ejemplo de la elaboración de circuitos impresos con técnicas de


serigrafía

Para realizar esta técnica se necesita los siguientes materiales:

1. Seda No.90 y No. 120 con su respectivo marco.


2. Un Kg. de emulsión y un frasco de bicromato.
3. Un litro de solvente serie 300.
4. Diez (10) cm. de rasero.
16
5. Un cristal delgado con las mismas dimensiones que el marco.
6. Un cuadro de esponja grueso del tamaño interior del marco.
7. Cien (100) g de tinta para metal serie 300.
8. Un kilogramo de estopa blanca.
9. Dos espátulas de plástico pequeñas.
10. Un cuarto de litro (1/4) de solvente retardante serie 300.
11. Medio (1/2) litro de cloruro férrico.
12. Un litro de thinner.
13. Un litro de cloro doméstico.
14. Recipientes de plástico adecuados para el baño de las tarjetas.
15. Dos trozos de tela o franela: uno para limpiar y el otro para cubrir contra
la luz.

Primero: En un cuarto oscuro se mezcla con la espátula 10 porciones de


emulsión por 1 de bicromato hasta obtener una mezcla uniforme. Una vez que
se obtiene la mezcla se esparce a lo largo y ancho de la seda haciendo uso del
rasero, hasta formar una capa uniforme sobre la superficie, se deja secar por
un período de 15 a 20 minutos. Recomendación: utilizar una secadora de pelo
para minimizar el tiempo de secado, los resultados no se afectan.

Segundo: Una vez que ha secado la mezcla esparcida sobre la seda y que se
cuenta ya con el fotolito del diseño, este se fija en el cristal (con cinta
transparente). Se cuida que la parte frontal del fotolito se coloque hacia el
cristal. Una vez hecho esto se coloca el cristal sobre la seda y se coloca del
lado donde la seda se encuentra sujeta al marco.

Se coloca la esponja por la parte posterior de la seda, de tal forma que la


presione contra el cristal, para lograr con ello, que el espacio entre el fotolito
que se sujeta al cristal y la seda sea el menor posible.

Tercero: Utilizando el trozo de tela denso se cubre el cristal, el marco y la


esponja para evitar el paso de la luz. Se prepara un espacio o lugar adecuado
para exponer a la luz del día la seda sin mover el cristal y la esponja. Otra
opción es exponer la seda a la luz de una lámpara o foco de gran intensidad.

Antes de proceder a descubrir la seda, se debe asegurar de que la intensidad


de luz sea la adecuada.

Cuarto: Se descubre la seda y se expone a la luz por un período aproximado


de 40 segundos; inmediatamente después se cubre la seda y se lleva a una
fuente de agua donde se enjuaga por ambos lados y si es necesario se frota
17
suavemente con las yemas de las manos mientras se enjuaga. Después de
unos cuantos segundos se observa cómo la seda se revela conforme al
Diseño.

Quinto: Una vez revelada la seda y completamente seca, se podrá trazar


sobre las baquelitas que se requiera el diseño del circuito impreso, poniendo
estás en la parte frontal de la seda (para mayor referencia del lado donde se
une al marco).

Se coloca la tinta para metal por el otro lado de la seda, se traza con el mismo
rasero el diseño del circuito impreso sobre la superficie de las tarjetas.

Sexto: Después de haber terminado todas las impresiones deseadas es


necesario limpiar la seda de la tinta acumulada, ya que de lo contrario se
taparía la seda estropeándola; para esto se utiliza el solvente de tinta serie 300,
el cual se aplica con una estopa.

Si se desea eliminar el circuito impreso de la seda, entonces se utiliza el cloro


que removerá el circuito plasmado en la seda para dejar habilitada la seda para
otro diseño de circuito impreso.

Circuitos impresos elaborados con el proceso fotográfico. El método


fotográfico para la elaboración de circuitos impresos se lleva a cabo a partir de
un fotolito negativo, ya sea de un dibujo manual en papel o de un diseño por
computadora impreso.

El fotograbado utiliza fotomecánica y grabado químico para eliminar la capa de


cobre del sustrato. La fotomecánica usualmente se prepara con un plotter, a
partir de los datos producidos por un programa para el diseño de circuitos
impresos. Algunas veces se utilizan transparencias impresas en una impresora
láser como foto herramientas de baja resolución.

• Ejemplo de la elaboración de circuitos impresos con el proceso


fotográfico.

Para realizar esta técnica se necesita los siguientes materiales:

1. Un frasco de revelador.
18
2. Un frasco de sensibilizador.
3. Dos vidrios de 20x20x0.5 cms.
4. Un pincel suave.
5. Dos clips.
6. 1 bola de fibra metálica.
7. Una botella de cloruro férrico.
8. Dos palitos de madera.

Primero: Limpiar perfectamente la tablilla de circuito impreso con fibra


metálica, agua y jabón en polvo. No tocar después la superficie de cobre con
los dedos, -dejar secar perfectamente- (Ver Figura 11).

Figura11. Limpieza de la placa

Circuitos impresos elaborados mediante proceso fotográfico. Archivo pdf. [En Línea].
http://www.udistrital.edu.co/comunidad/profesores/jruiz/jairocd/texto/circuitosimpr/cirimpresos.p
df

Segundo: En un cuarto oscuro aplicar sensibilizador con un pincel de cerdas


finas a la tabla, de manera uniforme hasta formar una capa que cubra toda la
tabla. Dejar secar y luego aplicar una segunda capa y dejarla secar. Vaciar la
cantidad suficiente de revelador en un recipiente No metálico y preparar otro
recipiente con agua jabonosa.

Tercero: Colocar el negativo encima de la tabla cuidando que no quede al


revés; situarlo entre los dos cristales y colocar los clips.

19
Cuarto: Exponer la tablilla al sol por un minuto aproximadamente.

Quinto: Meter la tablilla al cuarto oscuro, desmontarla de los cristales y retirar


el negativo.

Sexto: Sumergir la tablilla en el liquido revelador con los palos de madera,


cuidando no raspar la superficie de cobre de la misma, y meterla en un
recipiente con agua jabonosa agitando la tabla.

Séptimo: Retirar la tabla del liquido revelador con los palos de madera y
meterla en el recipiente con agua jabonosa agitando la tabla.

Octavo: Encender la luz o salir del cuarto oscuro y limpiar la tabla con un
chorro de agua y dejar secar. Revisar el estado de las pistas plásticas en la
superficie de la tabla y si es necesario retocar las que lo requieran.

Noveno: Se procede a realizar la corrosión del cobre en las tarjetas


procesadas (Ver figura 12).

Figura 12. Corrosión del cobre en las tarjetas procesadas

Circuitos impresos elaborados mediante proceso fotográfico. Archivo pdf. [En Línea].
http://www.udistrital.edu.co/comunidad/profesores/jruiz/jairocd/texto/circuitosimpr/cirimpresos.p
df

Décimo: Una vez trazadas las tarjetas se procede a bañar las mismas en
Cloruro Férrico, con lo cual la acción corrosiva del cloruro férrico actuará sobre

20
las superficies descubiertas de la tinta metálica, obteniendo así el Circuito
impreso.

Para obtener el circuito impreso en la versión de cobre, se procede a eliminar la


tinta metálica de la tarjeta que protegió de la corrosión al Diseño. Una técnica
rápida y limpia es mediante un baño de thinner y posteriormente se sumerge en
agua.

Si se realiza correctamente el procedimiento anterior se obtiene una tarjeta de


circuito impreso de Calidad y buena presentación (Ver figura 13).

Figura 13. Impreso terminado

Circuitos impresos elaborados mediante proceso fotográfico. Archivo pdf. [En Línea].
http://www.udistrital.edu.co/comunidad/profesores/jruiz/jairocd/texto/circuitosimpr/cirimpresos.p
df

El fresado de circuitos impresos. Utiliza una fresa mecánica de 2 ó 3 ejes


para quitar el cobre del sustrato. Una fresa para circuitos impresos funciona en
forma similar a un plotter, recibiendo comandos desde un programa que
controla el cabezal de la fresa los ejes x, y y z. Los datos para controlar la
máquina son generados por el programa de diseño, y son almacenados en un
archivo en formato HPGL o Gerber.

Impresión en material termosensible. Usada para transferir las pistas a


través de calor a la placa de cobre. En esta técnica es posible trabajar con
papel glossy (fotográfico) o papel con cera, como los papeles en los que vienen
los autoadhesivos.

21
Pasos del proceso de diseño y elaboración de circuitos impresos

Diseño electrónico automatizado. A menudo se utilizan programas de diseño


electrónico automatizado, para distribuir e interconectar los componentes.
Estos programas almacenan información relacionada con el diseño, facilitan la
edición y pueden también automatizar tareas repetitivas.

Programas para el diseño de circuitos impresos

• OrCAD. Diseño de circuitos impresos y la simulación de esquemáticos.


• CIRCAD. Holophase PCB CAD Software.
• Proteus. Software para el diseño profesional de PCB.
• EDWinXP - Herramienta de diseño y simulación de esquemáticos,
simulación de código VHDL y elaboración de PCBs.
• Circuit Maker - Herramienta de diseño y simulación de esquemáticos y
elaboración de PCBs.
• FreePCB - Herramienta libre para Windows.
• PCB – Herramienta libre para X11.
• gEDA – Familia de herramientas EDA, disponibles bajo GPL
• Kicad – GPL PCB suite.
• EAGLE – Herramienta comercial, existe una versión gratis para
amateurs (con limitaciones en el tamaño de la tarjeta).
• Cadstar – Completa herramienta comercial para el desarrollo de PCBs.
• Cadstar Express – Herramienta de diseño gratis.
• Altium Designer – Sistema de desarrollo completo.
• Zuken – Software de diseño.
• RANGER XL – Herramienta comercial, existe una versión demo limitada
en numero de piezas.

Manufactura. Elaboración de los patrones utilizando cualquiera de las técnicas


ya mencionadas.

Atacado. El atacado de la placa virgen se puede realizar de diferentes


maneras. La mayoría de los procesos utilizan ácidos o corrosivos para eliminar
el cobre excedente. Existen métodos de galvanoplastia que funcionan de
manera rápida, pero con el inconveniente de que es necesario atacar con ácido
la placa después del galvanizado, ya que no se elimina todo el cobre.

El ataque químico común es con Cloruro férrico HClFe3


el cual esta constituido por una parte de hidrogeno, una de cloro tres de hierro

22
y seis partes de agua. Esta solución es muy lenta para grabar circuitos
impresos, pero tiene un grado de peligrosidad bajo y no causa severos daños a
las personas. Su manejo debe hacerse con mucho cuidado y guates de látex.

Se vierte la solución de cloruro férrico en un recipiente en donde quepa la


totalidad de la placa y esta sea cubierta por la el fluido, es indispensable que al
recipiente sea de un material no ferroso, tal como plástico o vidrio, en ningún
caso se pondrá utilizar un recipiente o utensilios de aluminio, cobre, acero, etc.
El ataque químico comienza cuando la solución entra en contacto con las áreas
de cobre desprotegidas por la tinta. La corrosión y remoción total de estas
áreas puede tardar varios minutos. Cuando se haya consumado la corrosión de
aquellas áreas indeseadas, se extrae la placa de la solución para enjuagarla
perfectamente con agua y secarla con un paño. Es indispensable hacer una
revisión visual para determinar si ya no existe cobre en las áreas que deben
estar limpias, y de encontrarse rastros de cobre se puede volver a sumergir la
placa en la solución hasta eliminar todo lo indeseado.

Después de realizado este proceso se remueve la tinta con solvente para


obtener el circuito grabado que se desea (Ver figura 14).

Figura 14. Circuito grabado.

Fuente: Ataque químico con Cloruro férrico HClFe3. [En línea]. Tutorial de serigrafía, planograf
y estampado. http://planograf.com.ar/2008/07/mtodo-de-serigrafa-para-la-impresin-de.html.
(Consulta: 21 Octubre, 2008. h: 15:06).

Perforado. Las perforaciones, o vías, del circuito impreso se taladran


con pequeñas brocas hechas de carburo tungsteno. Se debe tener en cuenta la
posición y tamaño de cada perforación taladrada.

23
La perforación se puede realizar de diferentes maneras, una de las técnicas es
utilizando maquinaria automatizada, controlada por una cinta de perforaciones
o archivo de perforaciones. Estos archivos generados por computador son
también llamados taladros controlados por computador (NCD – Network
Controlled Dirll) o archivos Excellon. El archivo de perforaciones describe la
posición y tamaño de cada perforación taladrada.

Cuando se requieren vías muy pequeñas, taladrar con brocas es costoso,


debido a la alta tasa de uso y fragilidad de éstas. En estos casos, las vías
pueden ser evaporadas con un láser.

Otras maneras de realizar la perforación son: a través de taladrado con control


de profundidad (para no atravesar completamente la tarjeta), perforado láser,
pre-taladrando las láminas individuales antes de la laminación (superposición
antes de tener la placa terminada) o producir perforaciones que conectan sólo
algunas de las capas de cobre, en vez de atravesar la tarjeta completa. Estas
perforaciones se llaman vías ciegas cuando conectan una capa interna con una
de las capas exteriores, o vías enterradas cuando conectan dos capas internas.

Las paredes de los orificios, para tarjetas con dos o más capas, son
metalizadas con cobre para formar, orificios metalizados, que conectan
eléctricamente las capas conductoras del circuito impreso4.

Estañado y máscara antisoldante. Los pads y superficies en las cuales se


montarán los componentes, usualmente se metalizan, ya que el cobre al
desnudo no es soldable fácilmente. Las áreas que no deben ser soldadas
pueden ser recubiertas con un polímero resistente a la soldadura, el cual evita
cortocircuitos entre las patas cercanas de un componente.

Serigrafía. Los dibujos y texto se pueden imprimir en las superficies exteriores


de un circuito impreso a través de la serigrafía.

Uno de los métodos utilizados en éste proceso, es aquel que emplea un


bastidor o marco de madera el cual tienen un malla muy fina de nylon; se cubre
con una delgada capa de emulsión fotosensible por medio de un proceso

__________

4
[En línea]. España. http://es.wikipedia.org/wiki/Circuito_impreso. (Consulta: 19 septiembre,
2007. h: 17:34)

24
fotográfico y con la imagen del circuito impreso en positivo se curan
aquellas áreas de la emulsión que fueron expuesta a la luz y se remueve por
completo la emulsión de aquellas áreas que no fueron atacadas por la luz.

El bastidor grabado tiene áreas de la malla obstruidas por la emulsión curada y


otras áreas libres que corresponden a las áreas de cobre que se diseño para
el circuito impreso.

El positivo se obtiene haciendo una impresión láser de alta calidad de la


imagen del circuito impreso sobre una hoja de acetato, y de ser necesario se
retoca con marcador opaco. El bastidor, se coloca sobre la placa virgen
perfectamente limpia, y encima de la malla se le aplica tinta. Se deja una
capa uniforme a lo largo del bastidor. De esta forma la tinta pasa solo por
aquellas partes de la malla que están libres de emulsión (Ver figura 15). Al
separar el bastidor de la placa de cobre, se observa la imagen de el circuito
impreso marcado con tinta (Ver figura 16).

Figura 15. Aplicación de la tinta para serigrafía.

Fuente: Método de serigrafía para la impresión de circuito impreso. [En línea]. Tutorial de
serigrafía, planograf y estampado. http://planograf.com.ar/2008/07/mtodo-de-serigrafa-para-la-
impresin-de.html. (Consulta: 16 octubre, 2008. h: 20:28).

25
Figura 16. Imagen del circuito impreso marcado con tinta.

Fuente: Método de serigrafía para la impresión de circuito impreso. [En línea]. Tutorial de
serigrafía, planograf y estampado. http://planograf.com.ar/2008/07/mtodo-de-serigrafa-para-la-
impresin-de.html-. (Consulta: 16 octubre, 2008. h: 21:09).

Puerto serie. Un puerto de serie es una interfaz de comunicaciones de datos


digitales, frecuentemente utilizado por computadoras y periféricos, en donde la
información es transmitida bit a bit enviando un solo bit a la vez, en contraste
con el puerto paralelo que envía varios bits simultáneamente.

En los PCs hay conectores DB9 macho, de 9 pines, por el que se conectan los
dispositivos al puerto serie (Ver figura 17). Los conectores hembra que se
enchufan tienen una colocación de pines diferente, de manera que se conectan
el pin 1 del macho con el pin 1 del hembra, el pin2 con el 2, etc. Cada pin tiene
una función diferente (Ver Tabla 1).

Figura 17. Conector DB9 hembra-Macho.

Fuente: Comunicación serie. [En línea]. Cuaderno técnico I: Comunicaciones serie (HW).
ttp://www.iearobotics.com/proyectos/cuadernos/ct1/ct1.htm. (Consulta: 20 octubre, 2008. h:
15:24).

26
Tabla 1. Función de cada Pin del DB-9.

Pin Función
TXD (Transmitir Datos)
RXD (Recibir Datos)
DTR (Terminal de Datos Listo)
DSR (Equipo de Datos Listo)
RTS (Solicitud de Envío)
CTS (Libre para Envío)
DCD (Detección de Portadora)

Fuente: Estándar de comunicaciones RS-232C (O Cómo funciona un puerto serie...). [En


línea]. http://www.euskalnet.net/shizuka/rs232.htm. (Consulta: 20 octubre, 2008. h: 15:24).

Conexión de un microcontrolador al puerto serie del PC. Para conectar el


PC a un microcontrolador por el puerto serie se utilizan las señales Tx, Rx y
GND. El PC utiliza la norma RS232, por lo que los niveles de tensión de los
pines están comprendidos entre +15 y -15 voltios. Los microcontroladores
normalmente trabajan con niveles TTL (0-5v). Es necesario por tanto intercalar
un circuito que adapte los niveles, uno de los circuitos más utilizados es el
MAX232. (Ver figura 18).

Figura 18. Adaptación de niveles PC-MICRO.

Fuente: Comunicación serie. [En línea]. Cuaderno técnico I: Comunicaciones serie (HW).
ttp://www.iearobotics.com/proyectos/cuadernos/ct1/ct1.htm. (Consulta: 20 octubre, 2008. h:
16:14).

Motor bipolar. El motor Bipolar tiene generalmente cuatro cables de salida


(Ver figura 19). Estos requieren cambio de dirección del flujo de corriente a

27
través de las bobinas en la secuencia apropiada para realizar un
movimiento.

Figura 19. Configuración interna de un motor P-P bipolar.

Fuente: Tutorial sobre Motores Paso a Paso (Stepper motors). [En línea]
Argentina.http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm.
Todorobot – Argentina.

Secuencias para manejar motores paso a paso Bipolares. Estos motores


necesitan la inversión de la corriente que circula en sus bobinas en una
secuencia determinada. Cada inversión de la polaridad provoca el movimiento
del eje en un paso, cuyo sentido de giro está determinado por la secuencia
seguida (Ver tabla 2).

Tabla 2. Secuencia para controlar motores P - P bipolares.

0 TERMINALES
A B C D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V

Fuente: Tutorial sobre Motores Paso a Paso (Stepper motors). [En línea] Argentina.
http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm.
Todorobot – Argentina.

28
Secuencia del tipo medio paso. En esta secuencia se activan las bobinas
de tal forma que se logre un movimiento igual a la mitad del paso real. Para ello
se activan primero dos bobinas y luego solo una y así sucesivamente. La
secuencia completa consta de 8 movimientos en lugar de 4 (Ver figura 20).

Figura 20. Secuencia medio paso.

Fuente: Tutorial sobre Motores Paso a Paso (Stepper motors). [En línea] Argentina.
http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm.
Todorobot – Argentina. (Consulta: 20 octubre, 2008. h: 17:53).

29
Temporizador Los temporizadores son mecanismos que funcionan o hacen
una operación por cierto tiempo donde el tiempo es ajustado de acuerdo con el
uso dado. Entre los temporizadores existen algunos muy pequeños que son
incorporados en un IC (circuito integrado) y otros grandes empleados en
circuitos de potencia; pueden ser digitales o análogos cuando portan
implementos básicos.

Los temporizadores están presentes en casi todos los circuitos electrónicos y


son la aplicación análoga más común de la electrónica de control. Su principio
de funcionamiento se basa en el tiempo de descarga de los condensadores
(C), normalmente asociados a una resistencia de carga (R), en lo que se
conoce como circuitos RC.

Al aplicar momentáneamente un voltaje DC al circuito RC, el condensador


adquirirá una carga por medio de la R asociada. El tiempo que dure en
descargarse este voltaje dependerá principalmente de la capacidad en
Faradios del C, y la impedancia de salida del circuito. Esto quiere decir que a
mayor valor en Faradios del C, mayor tiempo tomará en descargarse; este
tiempo varía proporcionalmente también con la impedancia de salida del
circuito RC, lo que aplica si el circuito RC tiene que alimentar en su salida
elementos electrónicos como LEDs o transistores, etc.

Este voltaje almacenado es el que se utiliza como señal análoga de circuitos


que precisan de un tiempo para trabajar, el cual se puede modificar a voluntad,
bien sea aumentando o disminuyendo la resistencia o la capacitancia. Al
amplificar esta señal se tiene un temporizador básico.

RELOJ DE TIEMPO REAL EXACTO. El RTC Dallas DS1307 es un circuito


integrado que funciona como un reloj de tiempo real exacto, el cual
automáticamente, mantiene el tiempo y la fecha actual, incluyendo
compensación para meses con menos de 31 días y saltos de año.

El DS1307 es un dispositivo de 8 pines al que se le conecta un cristal de


cuarzo estándar, a 32.768kHz entre los pines 1 y 2 para proveer tiempo base
exacto. Opcionalmente se le puede conectar al pin3, baterías de respaldo de
3V asegurando que se mantendrá el tiempo y la fecha aunque esté
desconectada la fuente de tensión del circuito principal. El circuito integrado

30
automáticamente detecta que se ha removido la energía en el circuito principal
y se conectan las baterías de respaldo cuando es requerido.

Adicionalmente el circuito integrado DS1307 tiene dos características


interesantes. El pin 7 es una salida de colector abierto, que puede ser
programada para hacer “flash” cada 1Hz. Esto permite la colocación de un led
como indicador de segundos en aplicaciones de reloj.

31
2.2 MARCO LEGAL O NORMATIVO

Los estándares internacionales IPC son aquéllos dedicados a la producción de


electrónica. Este cuerpo de estándares debe su nombre a la sigla del "Institute
for Printed Circuits", fundado en 1957 en EEUU, cuyo nombre actual es "IPC,
Association Connecting Electronic Industries". La misión de esta organización
de empresas relacionadas con la industria de la interconexión electrónica es
aumentar la excelencia competitiva de sus integrantes (de todo el mundo),
mediante la creación de estándares y programas de mejoramiento tecnológico,
entre otros.

Los estándares IPC cubren, prácticamente, todos los aspectos de la fabricación


de circuitos electrónicos y ciertos aspectos del diseño (Ver figuras 21 y 22). Tal
como ocurre con todos los sistemas de estándares, al seguirlos podemos
obtener una serie de beneficios:

• Proporciona conocimiento y criterios técnicos validados


ampliamente por la experiencia.

• Asegura la compatibilidad con un enorme universo de procesos y


materiales.

• Proporciona a todos los actores de la industria electrónica un


lenguaje común para describir atributos de calidad en el diseño y
fabricación de circuitos electrónicos.

Es común que fabricantes y diseñadores electrónicos de todo el mundo


indiquen a sus clientes que trabajen de acuerdo con los estándares IPC para
que éstos sepan que pueden exigir y contar con un nivel definido y conocido de
calidad en los circuitos recibidos.

32
Figura 21. Aspectos de diseño de un circuito electrónico.

Fuente: ELECTRO INDUSTRIA. Estándares IPC. [En línea] Chile.


http://www.emb.cl/electroindustria/articulo.mv?xid=33&rank=1. Protonic Chile. (Consulta: 31
Octubre, 2008. h: 00:26).

Figura 22. Aspectos del ensamblaje electrónico de un circuito impreso.

Fuente: ELECTRO INDUSTRIA. Estándares IPC. [En línea] Chile.


http://www.emb.cl/electroindustria/articulo.mv?xid=33&rank=1. Protonic Chile. (Consulta: 31
Octubre, 2008. h: 00:26).

33
El universo de conocimiento y criterios tanto de manufactura como de diseño
electrónico que proporcionan los estándares IPC es enorme, pero es posible
presentar algunas de las normas que nos permiten ver su utilidad e
importancia:

• El estándar IPC-2221 (Generic Standard on Printed Board Design) entre otras


cosas, nos permite determinar el ancho de una pista para una corriente
deseada, según el espesor del cobre, la temperatura de operación, el material
del sustrato y si se trata de pistas ocultas o de superficie con y sin máscara
antisoldante.

• La norma IPC-SM-782 (Surface Mount Design and Land Pattern Standard)


plantea la adecuada orientación y ubicación que deben llevar los circuitos
integrados DIP en su tarjeta, el tamaño y posición correctos de los pads para
montar un componente superficial (SMT) o la forma de soldar "componentes de
pie" .

• Entre los estándares IPC también están los de "aceptabilidad". Tal es el caso
del IPC-A-610, "Aceptabilidad de Ensambles Electrónicos" (disponible en
español). Este estándar muestra, con fotografías en colores y textos
explicativos, qué se considera universalmente como "lo ideal", "lo aceptable" y
"lo defectuoso" en la industria del ensamblado de componentes electrónicos y
otros elementos. Esta norma entrega además consejos y buenas prácticas para
evitar errores en el armado y lograr ensambles electrónicos fiables, verificables
y robustos.

Las normas del IPC son una herramienta imprescindible para adoptar
rápidamente prácticas de diseño y fabricación de electrónica de alta calidad sin
tener que pasar por años de pruebas y errores. Conocerlas nos otorga criterios
relevantes a la hora de evaluar la calidad de los circuitos electrónicos.
Aplicarlas nos deja un paso más cerca de alcanzar un nivel de calidad
comparable al de los países líderes de la industria electrónica, y lo mejor de
todo, sin aumentar nuestros costos.

34
3. METODOLOGÍA

3.1 ENFOQUE DE LA INVESTIGACIÓN

El enfoque a emplear en el proyecto de acuerdo con las políticas para la


investigación establecidas por la Universidad, es Empírico-analítico, puesto que
la construcción del dispositivo se realizará con base en información ya
establecida, pero al mismo tiempo se evaluará la mejor técnica de elaboración
de los circuitos impresos, así como el mejor diseño de construcción del
mecanismo, seleccionando dispositivos y mecanismos de control a través de
prueba y error.

3.2 LINEA DE INVESTIGACIÓN

El proyecto se enmarca en:

Línea institucional de investigación: Tecnologías actuales y sociedad.

El proyecto se enmarca en esta línea de investigación en la medida en que


utiliza los más recientes avances tecnológicos para automatizar un proceso. No
solo hace más fácil el trabajo de un determinado grupo de la sociedad, sino que
en este caso contribuye como proyecto educativo y de formación para el área
estudiantil.

Sub línea de investigación de la Facultad: Instrumentación y Control de


Procesos.

La construcción de este dispositivo que automatiza el proceso de diseño y


elaboración de circuitos impresos, necesariamente incluye el control de cada
uno de los procesos que permiten obtener finalmente una tarjeta impresa. Este
mecanismo se construyó a partir de técnicas de instrumentación electrónica,
mecánica y de potencia que permitieron generar un diseño que proporciona un
funcionamiento óptimo del mismo.

35
Campo temático: Microelectrónica, Control.

El proyecto abarca este campo temático puesto que su objetivo primordial fue
lograr la construcción de un dispositivo que controla una serie de mecanismos
y procesos, que hacen más sencilla la forma de producir circuitos impresos.

3.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN

La metodología de trabajo es totalmente experimental. El proyecto está dividido


en una serie de etapas, iniciando con el diseño de la estructura mecánica. Para
ello se hizo necesario evaluar una serie de componentes y sus características,
para luego elegir los de mejor desempeño dentro del sistema.

Las técnicas de medición se ejecutaron a través de elementos comunes en el


laboratorio como osciloscopio digital y multímetro, para la toma de muestras y
análisis del rendimiento de los dispositivos y respuesta del sistema en general.

3.4 POBLACIÓN Y MUESTRA

Este proyecto está dirigido específicamente a estudiantes que trabajan con


diseños electrónicos y que están especialmente interesados en aprender una
técnica que les permita diseñar y elaborar circuitos impresos de una forma
rápida, económica, sencilla y que arroje tarjetas de buena calidad.

Sin embargo, el proyecto también está dirigido a todas aquellas personas que
estén interesadas en la fabricación de circuitos impresos, ya sean profesores,
estudiantes, ingenieros, técnicos o comerciantes o simplemente aficionados a
la electrónica.

3.5 HIPÓTESIS

En este proyecto se pretende crear un dispositivo que automatice el proceso de


diseño y elaboración de circuitos impresos; este elemento debe ser capaz de
mecanizar el proceso casi en su totalidad.

36
Dicho mecanismo será un elemento educativo que ilustrará y servirá como
punto de referencia para prácticas de laboratorio y aprendizaje alrededor de la
elaboración de tarjetas electrónicas.

3.6 VARIABLES

3.6.1 Variables independientes

Diámetro de la perforación. Es probable que algún diseño demande


perforaciones de distinto diámetro; sin embargo, dentro del proyecto en la
etapa de perforación, se manejará un único diámetro para cada cambio de
broca.

Espacio mínimo entre PADS y caminos. Esta medida debe ser milimétrica
cuidando de no hacer corto y está dada por las características de los
componentes mecánicos que se utilicen para construir el dispositivo.

Velocidad de perforación. Depende directamente de la programación de los


dispositivos electrónicos a través del software de interfaz de usuario y de las
características de desempeño de los componentes mecánicos; la velocidad de
perforación constante para todos los PADS.

3.6.2 Variables dependientes

Número de pads. Esta variable está dada únicamente por el diseño específico
que se quiera trabajar.

Tamaño del circuito impreso. El tamaño de la tarjeta electrónica está definido


por el diseño; sin embargo, existe un límite para el tamaño del mismo dado por
el tamaño de la plataforma de fijación del mecanismo y del alcance de
movimiento del perforador, para este caso limitamos el tamaño a 13.5cm x
32cm para los módulos de insolación, atacado y perforado, y de 13cm X 14cm
para el módulo de revelado (opción de usar tarjetas más grandes, cambiando
los contenedores); cabe aclarar que se puede trabajar varios circuitos impresos
en una sola tarjeta al mismo tiempo, respetando esta restricción.

37
Tiempo de elaboración del circuito impreso. Depende finalmente de la
complejidad del diseño del circuito impreso, principalmente del número de
PADS, que determinan el tiempo de trabajo en el módulo de perforación. El
tiempo de insolación, revelado y atacado es el mismo para todas las placas,
independientemente de su tamaño.

38
4. DESARROLLO INGENIERIL

El dispositivo que automatice el proceso de diseño y elaboración de circuitos


impresos estará dividido en los siguientes módulos: perforado, insolación,
revelado y atacado (Ver figura 23); previo a su utilización se hace necesario
tener una etapa de diseño y otra de impresión de plantillas; al igual que al final
se requiere una etapa para la limpieza de la placa. Dichos módulos permitirán
la construcción del circuito impreso paso a paso y serán controlados de forma
independiente, permitiendo obtener claridad y mayor dominio de los procesos.

Figura 23. Diagrama de bloques del sistema.

El proceso de automatización de diseño y elaboración de circuitos impresos


inicia con una primera etapa en la cual se diseña (en un computador) el PCB a
partir de un plano electrónico (diseño esquemático); para esto se usa el
software CIRCAD 98, por ser de fácil adquisición (existe una versión on line
gratuita) y ofrecer un archivo de coordenadas (x, y), necesario para la
perforación. Es importante diseñar el PCB, teniendo en cuenta las normas IPC
(Institute Printed Circuits), mencionadas en este documento, referentes a
criterios de manufactura, como ancho de las pistas para la corriente deseada,
orientación y ubicación de los componentes, adecuada posición de los PADs,
etc. De la calidad del diseño PCB, depende la calidad y adecuado
funcionamiento del circuito impreso.

Es importante diseñar el PCB en CIRCAD 98, teniendo en cuenta la ubicación


del diseño; este debe ir en la parte inferior izquierda del área de trabajo del
software, esto será útil para el posicionamiento en el módulo de perforado.

Una vez se tiene el diseño PCB, iniciamos la segunda etapa, que corresponde
a la impresión de las plantillas o fotolitos; desde el software CIRCAD 98, se
imprime el fotolito correspondiente al plano electrónico y diseño PCB deseado.
Para este proyecto se usa fotolitos negativos puesto que se usa placas
fotosensibles negativas, en caso contrario, el fotolito se imprime positivo. Estas
39
plantillas ofrecen mejores resultados imprimiendo en acetato aunque también
es posible usar papel vegetal; en cualquier caso es recomendable usar un alto
nivel de tinta.

Una vez se obtiene el diseño PCB y las plantillas, empieza el trabajo en cada
uno de los cuatro módulos.

En el módulo perforado se taladra la tarjeta, de acuerdo a los PADs que


contenga el diseño PCB. En este módulo es necesario contar con un PC
(personal computer) que tenga puertos paralelo y serial; además de tener
instalados los software CIRCAD 98 y “MESA XYZ” (entorno gráfico programado
en Visual Studio 6.0).

El módulo de perforado cuenta con una estructura como posicionador XY


(contiene tres motores paso a paso acoplados cada uno a un tornillo sin fin, sus
respectivos driver y un motor DC que actúa como taladro), controlada por el
software “MESA XYZ”; del archivo de CIRCAD 98 en el que se diseñó el PCB,
este software extrae las coordenadas de los puntos a perforar, las ordenas, las
procesa y las dibuja en una ventana independiente, posteriormente se ejecuta
la opción “Taladrar”. Las órdenes dadas por el usuario en el PC son enviadas a
unas tarjetas de control a través de los puertos COM y LPT del PC.

Cuando la tarjeta ha sido perforada, ya está lista para plasmar en ella el diseño
PCB, para ello se usan los fotolitos impresos en la segunda etapa. Se debe
insolar la tarjeta haciendo coincidir los PADs marcados en el fotolitos con los
agujeros hechos en el módulo de perforado.

Luego de ser insolada, la tarjeta está lista para ser revelada; este proceso se
hace con una disolución cáustica, y se obtiene el diseño PCB revelado (visible)
en la placa en muy pocos minutos.

El último módulo que se emplea es el de atacado. Se toma la tarjeta revelada y


se introduce en el contenedor del módulo, en donde se agita Cloruro Férrico,
haciendo que el movimiento del líquido haga corrosión de la placa.

Por ultimo, en la etapa de limpieza de la placa, se usa acetona para quitar


residuos de los químicos utilizados y otras impurezas, además de el material
fotosensible que aún protege las pistas y PADs (secciones conductivas de
cobre) del diseño PCB plasmado en la placa.
40
Finalmente al final del proceso descrito se obtiene en corto tiempo una placa
totalmente terminada, de buena calidad y lista para ser ensamblada.

A continuación se describe con mayor detalle cada uno de los cuatro módulos.

Módulo de perforado En este módulo se perforará todos los PAD que


contenga el diseño del PCB. La perforaciones se harán en orden secuencial
haciendo un barrido en el eje X, de acuerdo a las posiciones (x, y, z) de cada
PAD, extraídas del software de diseño CIRCAD 98, (software elegido para el
diseño de PCB en este prototipo). Inicialmente todas las perforaciones tendrán
el mismo tamaño, pues el taladro que manejará el módulo tendrá la misma
broca durante todo el proceso de perforación.

Para utilizar el módulo de perforado se necesita tener previamente un diseño


PCB en CIRCAD 98, que corresponda al plano electrónico que se quiere
trabajar; dicho archivo PCB debe ser guardado con extensión “.pcb”, para
posteriormente cargarlo en el software “MESA XYZ” (desarrollado en Visual
Studio 6.0) el cual es el encargado de extraer, procesar y dibujar dichas
coordenadas para la perforación (Ver figura 24).

Figura 24. Requerimientos previos a la utilización del módulo de perforado.

41
Figura 25. Diagrama de bloques del módulo de perforado.

El módulo de perforado consta de una estructura con tres motores paso a paso,
acoplados cada uno a un tornillo sinfín, para desplazarse en el eje X e Y, y para
subir y bajar (eje Z) el dispositivo de perforado (Ver figura 26). También posee
una base con una guía de fijación de la tarjeta (Ver figura 27), para ajustarla en
el punto (0,0) e impedir que se mueva y una serie de sensores usados como fin
de carrera en cada uno de los ejes (dos para cada eje, uno en cada extremo)
(Ver figura 28). El dispositivo de perforado fue construido con un motor DC
acoplado a un mandril que sujeta las brocas (Ver figura 29). El taladro se
desplazará a lo largo y ancho de esta base según las posiciones XY como se
describió anteriormente y en el eje Z conservando un límite superior y bajando
cada vez que se ubique un nuevo punto a perforar. El taladro que conforma el
módulo es controlado por motores paso a paso a través de un microcontrolador
y un PC (Ver figura 25).

Para el diseño e implementación de los diferentes módulos se utiliza diversos


programas y mecanismos. En el módulo de diseño se utiliza CIRCAD 98 (Ver
anexo A) para la diagramación del PCB; se seleccionó este programa dada su
facilidad de manejo y aprovechando las características de posicionamiento XY
que nos proporciona el programa. Dichas coordenadas (x, y) serán extraídas
del programa y utilizadas para posicionar el taladro en la placa en la etapa de
perforación, a través de un software programado en Visual Studio (Ver anexo
B) que maneja los motores a través del puerto paralelo (LPT) y los sensores
de final de carrera a través del puerto serial (COM) de un PC.

42
Figura 26. Modulo perforador.

Figura 27. Base y guía de fijación de la tarjeta.

43
Figura 28. Sensores para el fin de carrera.

Figura 29. Dispositivo de perforado.

44
Para controlar la estructura del módulo de perforado se diseñaron dos tarjetas
(Ver figura 30). Como ya se dijo la primera controla los tres motores paso a
paso para los ejes X, Y, y Z, a través del puerto paralelo. En el circuito se
utilizan tres bloques de drivers iguales, uno para cada motor; estos driver se
componen de cuatro conjuntos de elementos. Cada conjunto se compone de
un TIP 122 (Ver Anexo M), un optoacoplador 4N33 (Ver Anexo O) y un
TIP3055 (Ver Anexo N), así tenemos cuatro conjuntos iguales de elementos,
uno para cada bobina de cada uno de los tres motores.

Además el circuito contiene tres conectores (uno para cada motor), de seis
salidas cada uno que corresponden a cuatro bobinas y dos comunes (salidas
conectadas a 5V); estos conectores son el acople entre los tres bloques de
drivers y los motores paso a paso.

Adicionalmente se tiene también una serie de leds que indican el movimiento o


recorrido en pasos que deben efectuar las bobinas del motor para alcanzar el
punto a perforar según las coordenadas enviadas por el PC a través del puerto
LPT y recibidas en la tarjeta por un conector DB 25 (Ver figura 31 y 32).

Para que cada motor establezca comunicación con la interfase, se requiere que
la entrada de ésta, reciba 2 bits de datos, un dato representa movimiento a la
derecha, y el otro a la izquierda, ambos bits en cero representan estado
inactivo.

Para controlar los tres motores paso a paso, se necesitan 4 pines de control
para las bobinas de cada motor; por lo tanto, se utilizan en total 12 pines para 3
motores de 4 bobinas cada uno. La conexión mediante puerto paralelo se hace
utilizando los pines de control del 2 al 13 del conector DB25. Los pines del 18 al
25 se conectan a tierra.

Las señales digitales que provienen del PC, activan el diodo led del opto
acoplador 4N33 correspondiente. Una vez activado, éste envía el pulso al foto
detector tipo Darlington, el cual lo envía a la base de un transistor de propósito
general. Este transistor es del tipo NPN para el giro a la derecha, mientras que
para el giro a la izquierda se utiliza un transistor tipo PNP.

45
Cada motor es conectado al colector de ambos transistores, para así recibir los
voltajes tanto positivo como negativo, dependiendo del sentido de giro.

En caso de que se active los dos bits al mismo tiempo para un motor, la
resistencia de 330Ω con retroalimentación de los cátodos del diodo led del opto
acoplador, anulan el paso de corriente al opto-acoplador complementario,
evitando el riesgo de corto circuito. Por lo tanto, si se presenta el caso en que
las entradas reciban un “1” lógico, el motor permanece en estado inactivo.

La dirección de puerto LPT 0x378 es usada para enviar y recibir los datos que
permiten el control de los tres motores paso a paso a través del puerto paralelo.

Figura 30. Tarjetas para control de los motores paso a paso y los sensores.

En el perforador se utiliza tres motores paso a paso unipolares, con la siguiente


configuración: 200 pasos y 1.8º/paso a 5V y 1.2A (Ver figura 33). Cada motor
controlará de forma totalmente independiente los motores encargados de la
posiciones X, Y, Z, para posterior perforación de las tarjetas electrónicas.

El funcionamiento de un motor bipolar de imán permanente está basado en una


rotación permanente de un imán rodeado de los polos del estator con las
bobinas (Ver figura 34). El movimiento está reforzado por el cambio de bobinas
en secuencia.

46
Figura 31. Circuito electrónico de control de motores paso a paso y
comunicación con el PC por puerto paralelo.

47
Figura 32. PCB de la tarjeta para el control de los motores paso a paso.

Figura 33. Configuración motor paso a paso KH56KM2.

Fuente: Motor paso a paso. [En línea]. 48Inform Catalog.


http://www.datasheetcatalog.net/s/datasheets_pdf/L/2/9/7/L297_1.shtml. (Consulta: 24 agosto,
2008. h: 23:11).

48
Figura 34. Motor paso a paso de imán permanente.

.
Fuente: Motor paso a paso. [En línea]. 49Inform Cataloga.
http://www.datasheetcatalog.net/s/datasheets_pdf/L/2/9/7/L297_1.shtml. (Consulta: 28 agosto,
2008. h: 11:29).

Para los motores utilizados en el diseño del circuito del perforador hay tres
posibles secuencias. La primera es para dinamizar las bobinas en la secuencia
AB / CD / BA / DC. Esta secuencia se conoce como una fase de plena ola de
paso o modo unidad. Sólo es una fase de energía en un momento dado.

La segunda posibilidad es la de dinamizar las dos fases juntas, a fin de que el


rotor siempre se alinee libremente entre dos posiciones. Denominado dos fases
en paso pleno, este modo es la secuencia normal del motor bipolar.

La tercera opción es para dinamizar una fase, luego dos, entonces uno, etc., de
manera que el motor se mueva en incrementos de mitad de paso. Esta
secuencia, es conocida como un modo medio paso (Ver Figura 35).

49
Figura 35. Secuencia del motor.

Fuente: Motor paso a paso. [En línea]. 50Inform Catalog.


http://www.datasheetcatalog.net/s/datasheets_pdf/L/2/9/7/L297_1.shtml. (Consulta: 28 octubre,
2008. h: 13:07).

Para la rotación en la dirección opuesta (sentido antihorario) se utilizan las


mismas tres secuencias. Los motores que se utiliza en el circuito tienen
múltiples polos para reducir el ángulo de paso a unos pocos grados, pero el
número de bobinas y secuencias de la unidad no se modifican.

La segunda tarjeta diseñada incluirá los sensores de final de carrera. La


estructura maneja seis sensores como fin de carrera, dos para cada eje (X, Y, y
Z), uno en cada extremo. Estos sensores permiten tener un límite de tal forma
que los motores no giren tantos pasos como para desbordar la estructura.
Cuando uno de los sensores es activado, el software “MESA XYZ” (software
que controla los motores paso a paso de la estructura a través de un PC) lo
identifica, inmediatamente cambia el sentido de giro del motor correspondiente,
o detiene su curso según sea el caso. Otra función de los sensores es permitir
la ubicación de la estructura en la posición (0,0).

El circuito que capta el estado de los sensores se compone de seis


optoacopladores 4N33 (Ver Anexo O), seis leds indicadores del estado en que
se encuentran (activo o inactivo, dependiendo de si se encuentra abierto o
50
cerrado) y seis conectores uno para cada uno de los sensores. Además,
contiene otro optoacoplador 4N33 y un TIP 122 (Ver Anexo M) para controlar el
motor DC de 12V que actúa como dispositivo perforador. El circuito es
controlado por un PIC 16F628A (Ver Anexo Q) que contiene un código de
programación que permite ver el estado de los sensores de fin de carrera y
comunica esa información al PC a través del puerto serial, para que
posteriormente con base en esto se ejecuten las acciones correspondientes
sobre los motores a través del puerto paralelo (Ver anexo C). Como salida del
circuito hacia el PC, se usa un conector DB 9, que está acoplado al
microcontrolador por un MAX 232 (Anexo P) y su configuración básica de
componentes (Ver figuras 36 y 37).

Figura 36. Circuito electrónico que capta el estado de los sensores.

51
Figura 37. PCB de la tarjeta que controla los sensores.

Software “MESA XYZ”

El código del software que controla los motores fue desarrollado en Visual
Studio 6.0, generando una interfaz de usuario en una ventana con una serie de
menús, botones y gráficos que permiten al usuario manejar el software de
perforación de una manera muy sencilla y visualmente ilustrativa.

Figura 38. Diagrama de bloques software “MESA XYZ”.

El software que se usa para controlar el modulo perforador fue desarrollado en


Visual Studio 6.0. La función básica de dicho software es cargar el archivo de
52
CIRCAD 98 que deseamos trabajar, extraer de allí las coordenadas (x, y) de los
pads de la tarjeta diseñada, procesarlos y plasmarlos en una ventana del
software y luego graficar los puntos a perforar en otra ventana. Posteriormente
cuando ya se han ejecutado las opciones de cargar, procesar y dibujar, se
procede a taladrar. Esto se hace enviando órdenes de movimiento a los
motores a través del puerto LPT (Ver figura 38).

Cuando la función “Taladrar” es activada el software inmediatamente busca la


posición de origen, activando los motores a través del puerto paralelo y
llevándolos a la posición (0,0), indicada por la activación de los sensores X1,
Y1 y Z1 a través del puerto serial. Una vez encontrada dicha posición, se
ordena detener los motores y se empieza a ubicar los puntos que deben ser
perforados. Luego se inicia la perforación de la tarjeta de manera secuencial
según las coordenadas extraídas.

De igual forma es posible ubicar la estructura en la posición (0, 0) a través del


software “MESA XYZ” usando la opción correspondiente “Mover al origen” o
también lo hace de forma automática cuando pulsamos la opción “Taladrar”,
antes de empezar a ubicar los puntos a perforar.

Figura 39. Descripción de la programación de la interfaz de usuario

53
La ventana principal del software de interfaz de usuario “MESA XYZ”, se divide
en los menús “Archivo”, “Edición”, “Mover”, “Configuración” y “Ayuda” (Ver
figura 39).

Dentro del menú “Archivo”, encontramos las opciones “Abrir” (para abrir un
archivo de CIRCAD 98) Y “Salir”. En el menú “Edición”, encontramos las
opciones “Procesar”, “Dibujar” y “Taladrar” (los puntos a perforar del archivo
PCB). En el menú “Mover”, están las opciones “Origen”, “Final” (mueven los
motores de los ejes X y Y al origen o final de la estructura) y “Taladro” (mueve
el taladro o motor DC a los límites superior o inferior del eje Z). Dentro del
menú “Configuración” se encuentran las opciones “PuertoCOM”, “PuertoLPT”
(seleccionan los puertos a trabajar), “Motor X”, “Motor Y” y “Motor Z” (se
configuran pasos/mm, velocidad y número de bobinas para cada motor
respectivamente). Por último está el menú “Ayuda”, donde se encuentran las
opciones “Calibración Eje X”, “calibración Eje Y” y “Calibración Eje Z” (allí es
posible configurar la precisión de los motores según el número de bobinas y el
número de pasos/mm).

Adicionalmente en la ventana principal del software “MESA XYZ”, se


encuentran cinco íconos que son rutas rápidas para las funciones “Salir”,
“Abrir”, “Procesar”, “Dibujar” y “Taladrar”. También se tiene seis cuadros de
visualización del estado de cada uno de los sensores de final de carrera
(cuando están activos, cambia de blanco a rojo) y tres botones que
corresponden a las funciones “Motor ON”, “Motor OFF” (para encender y
apagar el motor respectivamente) y “Detener Todo” (anula cualquier operación
o proceso).

Esta ventana principal también contiene tres pestañas: “Archivo”, “Proceso” y


“Gráfica”, pulsándolas, se puede cambiar el área de visualización de la ventana
entre los diferentes procesos.

El software de interfaz de usuario se divide en un módulo principal y una serie


de formularios. En el código del módulo (Ver Anexo D) se programa y
especifican las librerías, las constantes y las variables, se manejan los puertos
(paralelo), se inicializa el sistema, se lee el estado de los sensores y con base
en esto se programa el movimiento de los motores.

Se tiene cinco formularios; el primero es el formulario “Principal”, en el que el


código programado (Ver Anexo E) permite graficar los puntos con base en las
coordenadas (x, y) extraídas de CIRCAD 98, también se controla el
funcionamiento del dispositivo de perforado (taladro prendido o apagado), se
54
programa las funciones de los menú de la ventana principal (Archivo, Edición,
Mover, Configuración y Ayuda).

En el menú “Archivo” se programan las funciones para abrir el archivo de PCB


de CIRCAD 98 que se quiere trabajar y otra para salir del programa. En el
menú “Edición”, se programan funciones para procesar, dibujar y taladrar los
puntos; en el menú “Mover”, se programan las funciones para desplazar la
estructura al origen, al final o simplemente mover el taladro; en el menú
“Configuración”, se programaron las opciones para seleccionar los puertos
COM y LPT que se usarán, y la configuración predeterminada de X, Y y Z,
donde es posible modificar los pasos/mm, la velocidad y el número de bobinas
con las que trabajará cada motor de forma independiente; dentro del menú
“Ayuda”, se programó una función para la calibración de X, Y y Z en donde es
posible escoger el número de bobinas de operación del motor, los pasos, la
velocidad y el sentido de giro.

Además dentro de este formulario es posible encontrar la forma en la que


perfora el taladro: dentro del menú “Edición” en la función procesar, se
desarrolla la secuencia, empezando por leer los puntos a perforar, ordenarlo de
acuerdo a la coordenada X, y los muestra en pantalla. Luego dentro del menú
“Edición” en la función taladrar, primero el taladro se mueve al origen X, Y, Z (0,
0,0), ubicándose en los sensores X1, Y1, Z1, luego se mueve al primer punto,
taladra y regresa a la posición de origen en el eje Z (sensor Z1) y
posteriormente empieza a hacer cálculos en X y Y para buscar el siguiente
punto, repitiendo la secuencia. Adicionalmente en el formulario principal
también se programó el botón “Detener operación”, con la función que permite
detener cualquier proceso y cerrar el puerto.

Los cuatro formularios restantes corresponden a “Calibración” (Ver Anexo F),


“ConfigMotor” (Ver Anexo G), “ConfigPuertoCOM” (Ver Anexo H), y
“ConfigPuertoLPT” (Ver Anexo I) estos formularios están asociados con los
menús y funciones programadas en el formulario “Principal”, desde donde son
“llamadas” las rutinas correspondientes para ejecutar la función.

En el módulo de perforación los desplazamientos serán controlados por tres


motores paso a paso de configuración bipolar que permitirán desplazar el
taladro a lo largo de la placa del circuito impreso de acuerdo a las coordenadas
de posicionamiento XY, extraídas del software de diseño.

55
Pasos para usar el módulo de perforado:

Primero: Seleccionar el diseño PCB de CIRCAD 98 que se quiere trabajar y


verificar que éste se encuentre en el origen; es decir, en la parte inferior
izquierda de la ventana de trabajo (Ver figura 40).

Figura 40. Diseño en el origen de la ventana de trabajo de CIRCAD 98.

Segundo: Seleccionar el tamaño de broca deseado según el diseño hecho en


CIRCAD 98 y sujetarla del mandril dispuesto en el eje Z de la estructura,
teniendo en cuenta que la broca debe sobresalir de este 2,5cm (Ver figura 41).

56
Figura 41. Ajustando la broca al mandril.

Tercero: Verificar que la base de fijación esté correctamente puesta según las
guías (Ver figura 42).

Figura 42. Base de fijación puesta según guías.

Cuarto: Sujetar la tarjeta a perforar a la guía sobre la base de fijación teniendo


en cuenta que se debe poner con la cara fotosensibilizada hacia abajo y que el
origen debe ser acomodado en el vértice de la guía de la misma forma en que
grafica el software perforador (Ver figuras 43 y 44).

57
Figura 43. Origen respecto al diseño de CIRCAD 98.

Figura 44. Tarjeta sujeta a la guía.

Quinto: Conectar el módulo de perforado a los puertos serial y paralelo del PC


(Ver figura 45), conectar los cables correspondientes a motores (conectores
grises) y a sensores (conectores blancos) del módulo a la estructura (Ver figura
46).

58
Figura 45. Conexión del módulo a los puertos serial y paralelo.

Figura 46. Conexión del módulo a los motores y sensores de la estructura.

Sexto: Conectar el módulo a una toma (AC) y encenderlo (Ver figura 47).

59
Figura 47. Módulo conectado y encendido.

Séptimo: Abrir el software de perforado “Mesa XYZ” (Ver figura 48).

Figura 48. Ventana principal-interfaz de usuario del software de perforado


Mesa XYZ.

60
Octavo: En el menú “Configuración”, en las opciones correspondientes a
“Motor X”, “Motor Y”, y “Motor Z” (Ver figura 49), verificar que en el campo
“Pasos/mm”, esté configurado a 68. En el campo “Velocidad” elegir un valor
cualquiera para X desde 8, para Y desde 9 y para Z desde 7, hasta 100,
teniendo en cuenta que a menor número en este campo, mayor velocidad. De
igual forma en el campo “Nº de bobinas”, elegir la opción 1 ó 2 bobinas, siendo
1 bobina configuración del motor a paso completo y 2 bobinas configuración
medio paso (Ver figura 50). Tener en cuenta que lo ideal es que la
configuración de “Nº de bobinas” y “Pasos/mm” para los tres ejes sea la misma.

Figura 49. Menú “Configuración”, opciones “Configurar Motor X”, “Configurar


Motor Y”, y “Configurar Motor Z”.

Figura 50. Eligiendo la configuración para los ejes X, Y y Z.

61
Noveno: En el menú “Configuración”, en la opción correspondiente a “Puerto
COM” (Ver figura 51), verificar que esté configurado en 1 (Ver figura 52). De
igual forma en el menú “Configuración”, en la opción correspondiente a “Puerto
LPT” (Ver figura 53), verificar que esté configurado en 0x378 (Ver figura 54).

Figura 51. Menú “Configuración”, opción “Puerto COM”.

Figura 52. Ventana de configuración puerto COM.

Figura 53. Menú “Configuración”, opción “Puerto LPT”.

62
Figura 54. Ventana de configuración puerto LPT.

Décimo. Cargar el diseño de CIRCAD 98 que se desea perforar (Ver figura 55).
En el menú “Archivo”, pulsar la opción “Abrir” y seleccionar el archivo elegido
(Ver figura 56), también es posible hacerlo desde la ventana principal en el
icono correspondiente (Ver figura 57). A continuación en la ventana principal,
en la pestaña “Archivo”, aparecerá el archivo extraído de CIRCAD 98, que
contiene todas las características del diseño PCB incluyendo las coordenadas
correspondientes a los pads del diseño a trabajar (Ver figura 58).

Figura 55. Menú “Archivo”, opción “Abrir”.

63
Figura 56. Icono para la opción “Abrir”.

Figura 57. Seleccionando el archivo de CIRCAD 98 a perforar.

64
Figura 58. Archivo extraído de CIRCAD 98.

Decimoprimero: En el menú “Edición”, pulsar la opción “Procesar” (Ver figura


59), también es posible hacerlo desde la ventana principal en el icono
correspondiente (Ver figura 60) y a continuación en la ventana principal en la
pestaña “Proceso”, verificar que efectivamente se han exportado y ordenado
los puntos a perforar desde CIRCAD 98 (Ver figura 61).

65
Figura 59. Menú “Edición”, opción “Procesar”.

Figura 60. Icono para la opción “Procesar”.

66
Figura 61. Puntos ordenados en la ventana principal, pestaña “Proceso”.

Decimosegundo: En el menú “Edición”, pulsar la opción “Dibujar” (Ver figura


62), también es posible hacerlo desde la ventana principal en el icono
correspondiente (Ver figura 63) y a continuación en la ventana principal en la
pestaña “Gráfica”, verificar que efectivamente se han graficado los puntos a
perforar según el diseño de CIRCAD 98 (Ver figura 64).

67
Figura 62. Menú “Edición”, opción “Dibujar”.

Figura 63. Icono para la opción “Dibujar”.

Figura 64. Puntos dibujados en la ventana principal, pestaña “Grafica”.

Decimotercero: En el menú “Edición”, pulsar la opción “Taladrar” (Ver figura


65), también es posible hacerlo desde la ventana principal en el icono
correspondiente (Ver figura 66).
68
Figura 65. Menú “Edición”, opción “Taladrar”.

Figura 66. Icono para la opción “Taladrar”.

Decimocuarto: Una vez el módulo empieza a perforar la tarjeta, solo resta


esperar a que el proceso termine, cuando esto suceda, en la ventana principal
del software de perforación “Mesa XYZ” aparecerá un mensaje, indicando que
el proceso ha finalizado (Ver figura 67), pulsar “Aceptar”.

69
Figura 67. Mensaje de finalización del proceso de perforado.

Decimoquinto: Apagar el módulo de perforación (Ver figura 68).

Figura 68. Apagando el módulo de perforado.

Decimosexto: Retirar la tarjeta de la guía de fijación (Ver figura 69).

70
Figura 69. Retirando la tarjeta de la guía de fijación.

La tarjeta está lista para pasar al módulo de insolación (Ver figura 70).

Figura 70. Tarjeta lista para ser insolada.

Módulo de insolación. El objetivo del módulo de insolación es transferir las


pistas del diseño PCB a la placa virgen a través del calor emitido por tubos
fluorescentes. Este tipo de lámparas emiten bastante luz infrarroja y producen
es decir calor (Ver figura 72).

71
Previo a la insolación de la tarjeta, se requiere un fotolito (impreso con alto nivel
de tinta, preferiblemente en acetato) que sirva como plantilla para plasmar el
diseño PCB, exactamente en la tarjeta (Ver Figura 71).

Figura 71. Requerimientos previos a la utilización del módulo insolador.

Figura 72. Diagrama de bloques del módulo insolador.

La estructura de la insoladora es de acrílico y tiene dos compartimentos, uno


en el cual está el circuito y otro en donde se alojan los tubos (Ver anexo L).
72
La insoladora permite tener unos acabados casi profesionales con unos costos
reducidos. Las placas vírgenes para circuitos impresos suelen ser de fibra de
vidrio, baquelita, teflón, etc. y están recubiertas por una o por las dos caras por
un baño de cobre que es elemento por el que circula la corriente en los
circuitos. Esta capa de cobre a su vez se recubre con otra de un barniz
fotosensible o también se puede adquirir la placa virgen con este material ya
impregnado. Como esta película es sensible a la luz, lo que se hace es
proteger unas zonas de la luz ultravioleta y otras no, con lo que se consigue
que el circuito quede estampado en la placa fotosensibilizada. Esto se hace
con un fotolito, que es una transparencia con el diseño de las pistas del circuito.
Si se va a usar una transparencia que tenga las pistas marcadas en negro y el
resto transparente (Ver figura 73, izquierda), se debe usar una placa
fotosensibilizada positiva. En caso contrario (Ver figura 73, derecha) se debe
usar una placa fotosensibilizada negativa. Para este proyecto se usa fotolitos
negativos.

Figura 73. Fotolitos positivo y negativo.

La importancia de la insoladora radica en que el diseño de las pistas del circuito


quedará grabado exactamente igual en la placa fotosensible gracias a la luz
ultravioleta.

Se utiliza tubos fluorescentes F8T5WWBL16 6/CS 1/SKU de Silvana porque


emiten el espectro de luz perfecto para la insolación de las placas, en su mayor
parte UV. El tiempo de exposición depende de la potencia de los tubos que se
empleen, de la reflexión de luz y del tamaño del circuito. En este caso se utiliza
cinco tubos de 8W y 30cm de longitud cada uno, por lo cual, el tiempo de
exposición para una placa de 10cm x 10cm es de aproximadamente 10
minutos.

73
El módulo está dotado de un temporizador que permite controlar el tiempo de
exposición a la luz UV de la placa fotosensible.

El circuito para el módulo de insolación cuenta con una interfaz de usuario


(teclado), un display LCD para visualización, un reloj de tiempo real (RTC), una
fuente de alimentación y un microcontrolador PIC16F886A (Ver Anexo R), (Ver
figuras 75 y 76) programado en Borland Builder 6.0.

En la programación del Microcontrolador se tiene un código hecho en Borland


Builder 6.0 que permite realizar el proceso de insolación (Ver Anexo J).

La interfaz de usuario está compuesta por cuatro pulsadores PNA (Pulsador


normalmente abierto) B1, B2, B3 y B4 que nos permiten ajustar el tiempo de
insolación al que va a estar expuesta la tarjeta (Ver figura 74). Los cuatro
pulsadores corresponden a las funciones: aumentar tiempo (UP), disminuir
tiempo (DOWN), iniciar proceso (ENT), y detener proceso (ESC). El aumento o
disminución del tiempo de insolación se ajusta cada vez que se pulsan los PNA
correspondientes ajustando treinta segundos por cada pulso.

Figura 74. Circuito de interfaz de usuario.

Una vez ha sido programado el tiempo de operación del módulo se pulsa el


botón “Inicio” para que comience el proceso, iniciándose una cuenta regresiva
por parte del RTC, del tiempo programado. Es posible detener la insolación si
se pulsa el botón “Detener proceso” (ESC), en este caso los contadores
vuelven a cero.
74
El circuito integrado RTC Maxim/Dallas DS1307 (Ver figura 77) es un reloj de
tiempo real exacto, el cual automáticamente mantiene el tiempo y la fecha
actual, incluyendo compensación para meses con menos de 31 días y año
bisiesto.

El DS1307 (Ver Anexo S) es un dispositivo de 8 pines al que se le conecta un


cristal de cuarzo estándar, de bajo costo, a 32.768kHz entre los pines 1 y 2
para proveer una base de tiempo exacta. Opcionalmente se le puede conectar
al pin3, baterías de respaldo de 3 voltios, asegurando que se mantendrá el
tiempo y la fecha aunque esté desconectada la fuente de tensión del circuito
principal. El pin 7 es una salida de colector abierto, que puede ser programada
para hacer “flash” cada 1Hz. El circuito integrado también tiene 56 bytes de
memoria RAM para propósito general, la cual puede ser usada como memoria
extra.

El DS1307 ofrece una alta precisión a lo largo del tiempo, se maneja mediante
el bus I2C del microcontrolador. En su pin SQW/OUT proporciona una onda
cuadrada programable.

Para la programación del RTC se emplea el bus I2C para comunicarse con un
dispositivo "maestro", que en este caso es el microcontrolador. El bus I2C usa
dos líneas, una de reloj: SCL y una de datos: SDA. La comunicación siempre la
inicia un dispositivo “de inteligencia”, en este caso el micro, y funciona como un
"maestro". El periférico que se controla actúa como "esclavo" y responde al
llamado del maestro. Las líneas SCL es controlada por el micro pues el manda
los pulsos de sincronía, y el flujo de información en la línea SDA es
determinado por el dispositivo que solicita o envía informacion.

Este tipo de bus no hace uso de un "chip select" puesto que el primer byte que
uno transmite es la dirección del periférico a controlar. Se transmiten octetos o
grupo de 8 bits acompañados de la señal de reloj, que también son 8 pulsos
mas uno de ACK; en total serían 9 pulsos de reloj para 8 bits de data mas uno
de ACK. Se transfiere el bit más significativo primero.

La comunicación inicia con un BIT de START, que es un cambio de nivel en las


líneas SCL y SDA; su estado inicial es HI (ambas) y la primera línea que va a
LO es SDA, seguida de SCL. Seguido de esto, se transmite el primer byte de
forma sincrónica con los pulsos de reloj, donde hay dos condiciones: de
CAMBIO PERMITIDO y de DATO VALIDO, establecidas por el cambio de la
línea SCL (clock). Cuando SCL es HI (1) el valor de la línea SDA (bit) será un
bit válido, es decir, que si SDA = 0, ese bit tendrá un valor de 0. Cuando SCL
75
es LO (0), el valor de SDA puede cambiar, solo en ese momento. De esta
manera, a partir del bit de START, se deben generar 8 pulsos de reloj para
transmitir el primer byte, y generar un 9° pulso de reloj para que el micro revise
el estado de la línea SDA, es decir, debe mirar si hay un ACK o no por parte de
un dispositivo esclavo; en este noveno pulso el micro debe cambiar el estado
del pin SDA de salida a entrada para chequear si alguien en el bus recibió el
byte de manera correcta.

El primer byte que se transmite es la dirección del dispositivo esclavo. Para el


RTC, el DS1307, este byte es 0xD0 (0b1101000x). El último bit especifica que
operación se quiere hacer, escritura o lectura (Read = 1, / Write = 0). Después
de enviar la dirección interna del dispositivo, el micro debe seguir transmitiendo
información o recibir los datos que debe esperar del dispositivo I2C (la hora o
fecha para el RTC).

Para liberar el bus, el micro debe restablecer las líneas SCL y SDA a nivel HI
(1) con un bit de STOP. Dicha condición se cumple después de revisar el último
bit ACK; SCL debe llegar primero a nivel HI, y se hace válido cuando SDA hace
la transición de LO a HI.

Figura 75. Diseño PCB del módulo insolador.

76
Figura 76. Circuito electrónico del módulo de insolación.

77
Figura 77. Diagrama de pines RTC DS1307.

Fuente: Diagrama de pines RTC DS1307. [En línea]. Datasheetcatalog.


www.datasheetcatalog.net/es/datasheets_pdf/D/S/1/3/ds1307.shtml. (Consulta: 4 agosto, 2008.
h: 12:58).

La figura 78 muestra el circuito completo del temporizador de tiempo real y sus


pines de conexión al micro; se conectan a SDA y SCD (Pines 5 y 6
respectivamente) resistencias 10k como Pull Up (conectadas a 5V). El uso del
cristal de 32.768 Khz. se debe a que, el DS1307 requiere un oscilador para la
base de tiempo del reloj. El circuito oscilador del reloj no requiere de ningún
capacitor adicional para su funcionamiento. La alimentación es doble. Por un
lado el VCC del circuito (Pin 8) y por otro una batería de litio (VBAT, Pin 3) que
permite que el reloj siga su funcionamiento aún cuando se apague el PIC.

Figura 78. Circuito de reloj para el diseño de la insoladora.

78
Una pantalla LCD de 2 X 16 es la que permite la visualización del contador de
tiempo descendente (tiempo de operación del módulo insolador), así como
también muestra las opciones del menú para aumento o disminución del tiempo
de exposición de la tarjeta y la programación de inicio o pausa del proceso.

La configuración de la LCD es la conexión básica al microcontrolador (Ver


figura 79). Los pines 1 y 2, son los utilizados para la alimentación del módulo
LCD; la tensión utilizada es de 5 voltios. El pin 3 se utiliza para ajustar el
contraste de la pantalla LCD, conectando dos resistencias de 10k para regular
la intensidad de los caracteres. El pin 4 se utiliza para indicar al bus de datos si
la información que le llega es una instrucción o por el contrario es un carácter,
si RS=0 indicara que en el bus de datos hay presente una instrucción y si RS=1
indicará que tiene un carácter alfanumérico. El pin 5 es el de escritura o lectura,
si está en 0 el módulo escribe en pantalla el dato que haya en el bus de datos y
si está en 1 lee lo que hay en el bus de datos. El pin 6 hace que el módulo LCD
funcione o por el contrario no acepte ordenes de funcionamiento, cuando E=0
no se podrá utilizar el display y cuando E=1 se transfieren datos y se realizan
las demás operaciones. Los pines del 7 al 14 son los del bus de datos.

Las conexiones entre el microcontrolador PIC16F886A y la pantalla LCD, son


del bus de datos de 4 bits (D4, D5, D6 y D7) y los pines de control, es decir, E,
RS y R/W. Debido a esto, el microcontrolador utiliza 7 bits para controlar la
pantalla.

Figura 79. Configuracion basica del LCD.

79
El Anexo K contiene el código de programación necesario para el manejo del
display (LCD). Éste código fue desarrollado en Borland Builder 6.0.

Para la insolación de la tarjeta los pasos a seguir son:

Primero: Obtener del software CIRCAD 98 el diseño de PCB que se quiere


trabajar, teniendo en cuenta que este debe estar ubicado en la parte inferior
izquierda de la ventana de trabajo, es decir en el origen (Ver figura 80).

Figura 80. Diseño PCB en CIRCAD 98.

Segundo: En el software CIRCAD 98, en el Menú “File” opción “Printer Out”


(Ver figura 81), imprimir el fotolito negativo, seleccionando las opciones
correspondientes (Pad Master, Top Copper, Bottom Copper, Vcc y Gnd,
activadas en color negro y con la activación de Negative), además de las que
vienen asignadas por defecto en la ventana “Printer Output Setup” (Ver figura
82). Para la impresión del diseño del PCB puede usarse acetato o papel
pergamino. Se recomienda usar el primero, pues con él se obtienen mejores

80
resultados. Usar preferiblemente una impresora láser con el máximo nivel de
tinta, entre más oscuro sea el fotolito mayor calidad de insolación (Ver figura
83).

Figura 81. En el menú “File” opción “Printer Out”, de CIRCAD 98, imprimir el
fotolito.

81
Figura 82. Configuración de las opciones de impresión en la ventana “Printer
Output Setup”.

Figura 83. Fotolito negativo impreso.

Tercero: Despegar el film opaco protector de la placa fotosensible en un


ambiente de luz muy tenue (Ver figura 84).

82
Figura 84. Quitando el film protector.

Cuarto: Se pone el fotolito sobre el cristal de la insoladora (Ver figura 85) y


luego la placa encima (Ver figura 87), de forma que el lado del cobre esté en
contacto con la tinta del fotolito, teniendo en cuenta que las perforaciones
hechas con el módulo de perforado coincidan con los pads marcados en el
fotolito (Ver figura 86). Si se trata de una placa de doble cara, primero se sujeta
los dos fotolitos entre sí con cinta adhesiva teniendo especial cuidado para que
las posiciones de las perforaciones en ambas caras coincidan. Después se
introduce la placa entre los dos fotolitos.

83
Figura 85. Fotolito sobre el cristal de la insoladora.

Figura 86. Colocando la placa contra el fotolito.

84
Figura 87. Placa fotosensible sobre el fotolito.

Quinto: Se conecta y enciende la insoladora en la parte posterior (Ver figura


88).

Figura 88. Encendiendo la insoladora.

85
Sexto: Se baja la tapa de la insoladora y se selecciona el tiempo de exposición
(Ver figuras 89 y 90), se recomienda programar a 10 minutos. Una vez los
tubos se enciendan (Ver figura 91), solo queda esperar a que el tiempo
programado se cumpla para ver los resultados.

Figura 89. Insoladora encendida.

Figura 90. Ajustando el tiempo de insolación.

86
Figura 91. Insoladora actuando.

Séptimo: Se abre la tapa de la insoladora y se retira la placa (Ver figura 92),


finalmente se tiene la placa insolada, con el diseño plasmado y lista para ser
revelada (Ver figura 93).

Figura 92. Retirando la placa de la insoladora.

87
Figura 93. Placa lista para ser revelada.

Mientras se prepara el revelado conviene dejar la placa dentro de la insoladora


apagada y cerrada, de forma que alguna luz no pueda velar la placa.

Módulo revelador Cuando la placa fotosensible ha sido protegida en las


zonas requeridas (es decir las pistas del circuito), se debe eliminar el material
fotosensible en las partes en que no es necesario. Para ello se usa una
disolución cáustica (12 gramos de sosa cáustica disueltos en un litro de agua),
quedando el cobre al descubierto para que sea atacado por el ácido corrosivo
en el siguiente proceso. En una placa positiva, el material fotosensible insolado
será destruido, ocurriendo justamente lo contrario en una placa negativa. Para
este caso se usa placas negativas. El tiempo de revelado dependerá de la
concentración del revelador y de la temperatura del agua.

Al poco tiempo de sumergir la placa en la disolución, va apareciendo el dibujo


de las pistas, formando lentamente el circuito completo. Cuando el dibujo
aparece claramente, el revelado está completado. A mayor temperatura de la
concentración, más rápido se obtendrá un resultado; no es recomendable que
esté muy caliente, porque la solución puede actuar tan rápido que puede
empezar a eliminar también el material fotosensible sobre las pistas. Lo ideal
es que esté a unos 25º aproximadamente; sin embargo, para este caso se
trabaja con la disolución cáustica a temperatura ambiente, pues el proceso es
tan rápido que es inoficioso calentarla, además de perjudicial para la salud
(teniendo en cuenta los gases que emite). Si la placa está bien insolada en
unos pocos segundos aparecerá el dibujo con toda claridad. Cuando quede
88
todo bien definido, se saca la placa y se sumerge en agua para detener el
revelado (Ver figura 94).

Figura 94. Diagrama de bloques de proceso en el módulo revelador.

El módulo consta de un contenedor de plástico transparente que permite ver el


estado del proceso y cuenta con una tapa que impide que salgan gases que
puedan afectar la salud humana. Los gases de la solución cáustica pueden
presentarse cuando ésta es calentada; para este caso se trabaja la solución a
temperatura ambiente para evitarlos.

El módulo tiene una base en la que se fija el contenedor para evitar posibles
derrames de solución durante el proceso. Además se debe disponer de otro
contenedor de similares características pero conteniendo agua, la cual es
utilizada para quitar los excesos de químicos e impurezas entre procesos (Ver
figura 95).

Figura 95. Módulo revelador.

89
Pasos para usar el módulo de revelado.

Como medida de precaución antes de empezar a usar el módulo, se debe


proteger usando guantes y tapabocas, pues al trabajar con sosa cáustica
es posible que se emitan gases que pueden ser perjudiciales para la salud
si se aspiran directamente.

Primero: Verificar que el módulo se encuentre debidamente ajustado a la guía


de fijación (Ver figura 96).

Figura 96. Módulo ajustado a la guía de fijación.

Segundo: Se prepara una disolución cáustica (12 gramos de sosa cáustica


disueltos en un litro de agua), para un circuito pequeño (10cm x 10cm o menos)
con una tasa de agua y dos o tres escamas de soda aproximadamente será
suficiente (Ver figura 97). Preferiblemente preparar la solución a una
temperatura de 25º, aunque también es posible usar esta solución a
temperatura ambiente (recomendado). No es recomendable trabajarla a mayor
temperatura ya que puede actuar tan rápido que puede empezar a eliminar
también el material fotosensible sobre las pistas.

El llenado debe hacerse hasta 4cm. aproximadamente o hasta la guía marcada


dentro del módulo (Ver figura 98), para que la solución pueda cubrir
perfectamente la placa.

90
Figura 97. Preparando la solución cáustica.

Figura 98. Llenado del contenedor hasta la marca de referencia.

Tercero: Se elimina el material fotosensible en las partes en que no es


necesario, introduciendo la placa previamente insolada en la disolución
cáustica (Ver figura 99) durante uno a dos minutos aproximadamente, hasta

91
que el material fotosensible que ha sido expuesto a la luz en el proceso de
insolación se haya desprendido por completo (Ver figura 100).

Figura 99. Se introduce la placa en la solución cáustica.

Figura 100. Material fotosensible desprendiéndose de la placa.

92
Cuarto: Al poco tiempo de sumergir la placa en la disolución, va apareciendo el
dibujo de las pistas, formando lentamente el circuito completo. Cuando el dibujo
aparece claramente, el revelado está completado, entonces se debe retirar la
placa del contenedor (Ver figura 101).

Figura 101. Retirando la placa del contenedor.

Quinto: Se lava la placa con abundante agua para detener el revelado (Ver
figura 102) y finalmente está lista para pasarla al módulo de atacado, en este
punto es posible ver todo bien definido (pistas y pads) cubiertas por el material
fotosensible de la tarjeta, el resto de la tarjeta ha quedado con el cobre al
descubierto (Ver figura 103).

93
Figura 102. Lavando la placa que ha sido revelada.

Figura 103. Placa una vez ha sido revelada.

Módulo de Atacado Una vez que el cobre queda al descubierto se procede a


dar un baño de ácido a la placa de forma que éste ataque a las zonas de cobre
desprotegidas.

94
En el módulo de atacado es posible trabajar con el llamado atacador lento:
cloruro férrico (FeCl3) que viene en terrones, o con el atacador rápido, el cual
está compuesto por dos líquidos, ácido clorhídrico y agua oxigenada, para
retirar el cobre de aquellas partes de la placa que no están protegidas por las
pistas trazadas en el módulo de insolación.

Figura 104. Diagrama de bloques atacador.

El módulo consta de un contenedor de acrílico y cuenta con un motor dotado


de una serie de piñones que cumplen con la función de agitar la solución para
remover el cobre innecesario y las impurezas de la placa (Ver figura 104).
Además el módulo tiene un adaptador que funciona como fuente de 12V a
1.5A. Cuando el proceso ha terminado es posible desechar la solución,
quitando el contenedor de la base de fijación del módulo.

El módulo fue construido de material plástico (acrílico), debido a que el cloruro


férrico (atacador utilizado en este caso) actúa como corrosivo sobre el metal
(Ver figura 105).

Figura 105. Modulo de atacado.

95
Para obtener el resultado final se debe eliminar el barniz fotosensible que ha
quedado en la placa. Para esto se puede sumergir o limpiar suavemente la
placa con acetona o secar la placa y ponerla sin fotolitos en la insoladora por 5
minutos. Luego se pone otros 5 minutos por el otro lado, incluso si es de cara
simple (por su proceso de fabricación, la mayoría de las placas llevan barniz
fotosensible por las dos caras, aunque sólo tengan una cara de cobre). Luego
se introduce unos minutos en el revelador (solución cáustica) que había
quedado y se elimina todo el barniz, ya que todo él ha estado expuesto a la luz
ultravioleta. Además, la placa queda totalmente limpia por el efecto detergente
de la sosa. Sólo queda lavarla con agua y secarla para tener el circuito
impreso.

Pasos para usar el módulo de atacado

Se recomienda que antes de usar el módulo el usuario se proteja con


guantes y tapabocas, al igual que durante el revelado, además de
proteger su ropa y superficies, pues el cloruro férrico (FeCl3) puede
mancharlas.

Primero: Llenar con líquido atacador el contenedor del módulo, ya sea


atacador lento compuesto de cloruro férrico que viene en terrones y agua, o
con atacador rápido compuesto de ácido clorhídrico y agua oxigenada. Llenar
hasta la marca de referencia situada dentro del contenedor, aproximadamente
2cm de profundidad o hasta que la placa quede cubierta y cuidando que el
contenedor esté debidamente puesto en la base de fijación (Ver figura 106).

Figura 106. Llenando el contenedor.

96
Segundo: Se introduce la placa en el contenedor del módulo (Ver figura 107) y
se cierra el contenedor, pasando el seguro (Ver figura 108).

Figura 107. Introduciendo la placa en el atacador.

Figura 108. Pasando el seguro del módulo atacador.

Tercero: Se conecta y se enciende el módulo; la placa se deja allí por 20


minutos aproximadamente si se trabaja a temperatura ambiente o por 10
minutos si el agua se encuentra a 25º C (a mayor temperatura, menor tiempo
de duración del proceso de atacado) hasta que el atacador actúe, cuidando de
eliminar únicamente el cobre innecesario, para ello es posible vigilar lo que
ocurre al interior del módulo a través de la tapa transparente ubicada en la
parte superior del mismo.

97
Cuarto: Una vez se ha eliminado el cobre innecesario (de aquellas partes de la
tarjeta que no son pistas o pads y que no estaban protegidas por el material
fotosensible de la tarjeta) se retira el seguro y se abre el módulo para retirar la
tarjeta del contenedor del módulo atacador (Ver figura 109).

Figura 109. Retirando la tarjeta del contenedor del módulo atacador.

Quinto: Introducir la tarjeta en el recipiente con agua para eliminar los


residuos de químicos, luego se observa el resultado (Ver figura 110).

Figura 110. Placa luego de retirar el cobre innecesario.

98
Sexto: Para obtener el resultado final se debe eliminar el material fotosensible
que ha quedado sobre las pistas y pads en la placa. Para esto se sumerge o se
limpia suavemente la placa con acetona (Ver figura 111) y se obtiene la placa
lista para ensamblar en ella los componentes (Ver figura 112).

Figura 111. Limpiando la placa con acetona.

Figura 112. Producto final, placa lista para ser ensamblada.

Procesos entre cada módulo En el cambio de cada módulo se requiere de


una acción manual de preparación de la tarjeta que consiste en limpiarla con
abundante agua para retirar el exceso de ácido y cualquier tipo de impureza.
99
Cada uno es controlado de forma totalmente independiente, lo que permite
tener claridad y mayor dominio de los procesos. No se habla de una
automatización al 100% ya que el sistema requerirá acción por parte del
usuario al realizar el cambio entre los diferentes módulos.

100
5. PRESENTACIÓN DE ANÁLISIS Y RESULTADOS

1. Al implementar estos módulos, se logró automatizar en gran parte el


proceso de diseño y elaboración de circuitos impresos, obteniendo
tarjetas electrónicas de buena calidad, en corto tiempo y a muy bajo
costo.

2. El software de diseño (CIRCAD 98), establece el tamaño de la


perforación, de acuerdo al diámetro de los PAD’s que maneja cada
diseño. De acuerdo con las pruebas realizadas se estableció que el
tamaño de la perforación puede variar utilizando brocas comerciales de
diámetros 1/16, 1/32, 3/64, que corresponden al tamaño de los huecos
más usados en los diseños de PCB.

3. Al realizar las pruebas pertinentes en el módulo de perforado, se pudo


comprobar que el desplazamiento del dispositivo perforador tiene una
desviación de 0.01mm, ya que se trabajó con motores paso a paso de
200 pasos por vuelta y 1mm de precisión por cada 68 pasos.

4. Al realizar las pruebas para el módulo insolador, se pudo establecer un


tiempo promedio de exposición de la tarjeta igual a diez minutos, para
una tarjeta de 10cm2. Cabe aclarar que el tiempo de insolación puede
variar de acuerdo al tamaño de dicha tarjeta.

5. Las pruebas del módulo de revelado muestran que este proceso toma
aproximadamente de uno a tres minutos dependiendo del tamaño del
circuito y de la concentración (dos o tres escamas de sosa cáustica en
una tasa de agua, es una mezcla suficiente para una tarjeta pequeña de
aproximadamente 10cm2) y temperatura de la solución. Se recomienda
no calentar la solución cáustica dado que al elevar su temperatura,
puede emitir gases que son perjudiciales para la salud.

6. Para el módulo de atacado, una vez hechas las pruebas, se estableció


un tiempo promedio de corrosión y limpieza de la tarjeta igual a diez
minutos, para un diseño de 10cm2 y una temperatura de la solución de
25ºC. También es posible utilizar la mezcla a temperatura ambiente,
aumentando así el tiempo del proceso (a mayor temperatura, menor
101
tiempo de corrosión). Cabe aclarar que este tiempo varía de acuerdo al
tamaño de la tarjeta.

7. Para el diseño de los módulos de perforado, insolado y atacado, se


estableció un tamaño promedio máximo para las tarjetas de 13.5cm X
32cm. Para el módulo de revelado se tomó un tamaño de tarjeta de
13cm X 14cm, aunque se tiene la opción de ampliarlo a tamaños
mayores utilizando otro contenedor.

102
6. CONCLUSIONES

1. Existen diferentes técnicas para trazar circuitos impresos que se


encuentran disponibles, algunas permiten obtener tarjetas de muy buena
calidad a bajo costo, como lo son los impresos elaborados con tinta
indeleble, logotipo, serigrafía, fotográfica e impresos en material
fotosensible.

2. Existen dos tipos de materiales útiles que se utilizan como tarjetas de


impresión o trazado de circuitos impresos, los más comunes de
encontrar en el mercado son la fibra fenólica (baquelita) y la fibra de
vidrio. Estos materiales cuentan con una y/o dos caras cubiertas de una
capa delgada de cobre sobre la cual se traza el circuito impreso. Ofrecen
características físicas adecuadas para el proceso de manufactura de los
circuitos impresos, como la capacidad para soportar el calor, la rigidez
necesaria para llevar a cabo el montaje de los componentes y la
facilidad de corte para obtener tarjetas de variadas dimensiones.

3. Las placas vírgenes para circuitos impresos suelen ser de fibra de vidrio,
baquelita, teflón, etc. y están recubiertas por una o por las dos caras por
un baño de cobre que es elemento por el que circula la corriente en los
circuitos. En el diseño se utilizan placas fotosensibilizadas las cuales
son sensibles a luz. Durante el proceso se protege unas zonas de la luz
fluorescente y otras no, con lo que se consigue que el circuito quede
estampado en la placa fotosensibilizada. En este proyecto se trabajo con
fibra fenólica sensibilizada por ser estas las tarjetas fotosensibles más
comerciales en el mercado colombiano, además de ser de menor costo
y de ofrecer resultados de mejor calidad dentro de las fibras de este tipo.

4. Para transferir las pistas del diseño PCB a la placa no se utiliza ninguna
de las técnicas comunes como la serigrafía o el grabado con tinta
indeleble, si no que se realiza mediante el método de calor producido
por tubos de neón. Esta técnica permite tener unos acabados casi
profesionales con unos costos reducidos, razón por la cual se seleccionó
esta técnica.

5. El atacado de la placa virgen se puede realizar de diferentes maneras.


La mayoría de los procesos utilizan ácidos o corrosivos para eliminar el
cobre excedente. Existen métodos de galvanoplastia que funcionan de
103
manera rápida y el ataque químico con Cloruro férrico HclFe3. El módulo
de atacado está diseñado para trabajar con esta técnica ya que a pesar
de no ser de acción rápida para grabar circuitos impresos, tiene un
grado de peligrosidad bajo y no causa severos daños a las personas.
Sin embargo también es posible trabajar el módulo con el atacador
rápido.

6. La perforación se puede realizar de diferentes maneras, una de ellas es


a través de taladrado con control de profundidad y perforado láser o
utilizando maquinaria automatizada, controlada por una cinta de
perforaciones o archivo de perforaciones. En el módulo de perforado se
trabajó un posicionador XYZ, donde los archivos generados por el
software de diseño (CIRCAD 98) son utilizados para describir la posición
de cada perforación que será taladrada por el dispositivo perforador.

7. El módulo de perforado consta de una base de fijación de la tarjeta. El


taladro se desplaza utilizando tres motores paso a paso a lo largo y
ancho de esta base según las posiciones XY y en el eje Z conservando
un límite superior y bajando cada vez que se ubique un nuevo punto a
perforar.

8. El módulo de perforado cuenta con dos tarjetas electrónicas; la primera


controla el dispositivo de perforado (taladro) y capta el estado de los
sensores de final de carrera para los ejes X, Y, y Z (dos sensores en
cada extremo de los tres ejes), a través de conexión serial al PC y la
segunda controla los tres motores paso a paso, a través del puerto
paralelo del PC. El módulo posee una interfaz de usuario a través de la
cual se controla el sistema. Este fue desarrollado mediante el software
“Mesa XYZ”, programado en Visual Studio 6.0.

9. El módulo insolador está dotado con un temporizador que permite


controlar el tiempo de exposición a la luz fluorescente de la placa
fotosensible. El circuito para el módulo de insolación cuenta con una
teclado, donde el usuario puede programar el tiempo de insolación
deseado, visualización del estado del proceso en una pantalla LCD, un
RTC (Reloj de tiempo real), fuente de alimentación y un microcontrolador
PIC16F886A programado en Borland Builder 6.0.; el código generado
por este software controla todo el sistema.

104
10. El módulo del revelado es de acrílico; donde la disolución utilizada
eliminará el exceso de material fotosensible en muy poco tiempo sin
necesidad de calentarla o agitarla.

11. En el módulo revelador se debe eliminar el material fotosensible en las


partes en que no es necesario. Para esto se utilizó una disolución
cáustica que permite que el cobre quede al descubierto. Al poco tiempo
de sumergir la placa en la disolución, va apareciendo el dibujo de las
pistas, formando lentamente el circuito completo. Cuando el diseño
aparece claramente, el revelado ha terminado.

12. En el módulo del atacado la mezcla de cloruro férrico y agua idealmente


debe ser calentada a una temperatura de 25º, para que el tiempo de
corrosión sea más corto (aproximadamente de cinco minutos para una
placa pequeña de 10cm x 10cm), aunque es posible trabajar la solución
de cloruro férrico a temperatura ambiente, aumentando así el tiempo de
corrosión.

13. El módulo de atacado cuenta con un motor dotado de una serie de


piñones que cumplen la función de agitar la mezcla para ir quitando el
cobre innecesario y las impurezas de la placa.

14. Esta serie de módulos facilita el proceso de diseño y elaboración de


circuitos impresos que generalmente los estudiantes hacen de forma
manual o artesanal como se le conoce popularmente.

105
7. RECOMENDACIONES

9 En el módulo perorado es necesario ubicar siempre el dispositivo


perforador en una posición inicial (0,0), la adecuada fijación de la base y
de la tarjeta a ésta, dará la precisión en el punto de origen. Se
recomienda usar las guías de marcación para asegurar la posición
correcta. De igual forma se debe verificar el diámetro de la broca y que
ésta se encuentre debidamente sujetada al mandril. Los procesos
anteriormente descritos se deben hacer de forma manual, con el módulo
apagado y preferiblemente desconectado.

9 En el módulo insolador se recomienda un tiempo de exposición de la


tarjeta de diez minutos para un diseño de 10cm2; se aclara que este
tiempo puede variar de acuerdo al tamaño de la tarjeta. Se recomienda
no dejarla por un tiempo muy corto, pues de una adecuada insolación de
la tarjeta depende en gran parte el éxito de los procesos siguientes.
Tampoco se debe exceder el tiempo promedio de insolación, puesto que
el exceso de luz fluorescente, puede dañar las pistas del circuito.

9 En el módulo insolador el tamaño de la tarjeta no debe superar el


estándar establecido (13.5X32) cm. Las tarjetas que se utilicen deben
ser placas fotosensibilizadas debido a que el módulo fue diseñado solo
para este tipo de tarjetas.

9 En el modulo de revelado como medida de protección se sugiere utilizar


guantes de látex y tapabocas, pues la solución cáustica puede emitir
gases tóxicos (especialmente a mayor temperatura) perjudiciales para la
salud.

9 En el módulo revelador se recomienda trabajar con una solución


cáustica de 12mg de sosa cáustica por un litro de agua (o dos o tres
escamas de sosa por una tasa de agua) a una temperatura ambiente.
Con estas especificaciones se obtuvo un tiempo de revelado de 1 a 3
minutos dependiendo del tamaño de la tarjeta. Es importante no exceder
el tiempo, pues la solución actúa de forma muy rápida y podría llegar a
quitar material insolado de aquellas zonas que se requieren cubiertas
para el posterior atacado.

106
9 En el modulo de atacado se sugiere utilizar guantes de látex, tapabocas,
pinzas plásticas (no utilizar material metálico, puesto que reacciona con
el ácido). Se recomienda cubrir la ropa y superficies vecinas debido a
que los ácidos utilizados en este modulo pueden manchar y ocasionar
daños en la piel, además de tener un olor muy fuerte que puede llegar a
ser perjudicial para la salud.

9 Para el módulo de atacado, se recomienda un tiempo de corrosión y


limpieza de la tarjeta igual a diez minutos, para un diseño de 10cm2 , si
se trabaja con cloruro férrico a una temperatura ideal a 25ºC o un tiempo
de tres minutos aproximadamente si se trabaja con atacador rápido.
Cabe aclarar que este tiempo varía de acuerdo al tamaño de la tarjeta y
a la temperatura de la solución de cloruro férrico y agua. A mayor
temperatura, más rápido ocurrirá el proceso. Se recomienda no exceder
el tiempo promedio de atacado puesto que la solución de atacador
puede llegar a borrar las pistas de cobre.

9 Después de los procesos de atacado y revelado es necesario lavar la


tarjeta con abundante agua para retirar los excesos de químicos e
impurezas. Al igual que limpiar la placa con acetona o volver a insolar
sin fotolito y luego pasar la placa por el revelador para eliminar por
completo el material fotosensible.

9 Una vez iniciados los procesos en cada uno de los módulos, estos no
deben ser interrumpidos. Se recomienda respetar los tiempos
establecidos para cada uno de ellos. Si se presenta alguna falla, se debe
esperar a que termine el proceso y repetir nuevamente. Lo anterior como
pautas de seguridad para el usuario.

107
BIBLIOGRAFÍA

ALIQUE LÓPEZ, José. Control numérico. 7ª ed. Barcelona: Marcombo, 1981.


329 p.

ANGULO USATEGUI, José y AVILÉS GONZÁLEZ, Rafael. Robótica. 3ª ed.


Madrid: Paraninfo, 1989. 430 p.

CIRCUITO IMPRESO. Técnicas para elaboración de circuitos impresos. [En


línea]. http:// www.hardcore-modding.com/guias_usuarios (Consulta: 15 agosto,
2007. h: 14:36)

CIRCUITOS IMPRESOS ELABORADOS MEDIANTE PROCESO


FOTOGRÁFICO. . [En Línea]. http://www.udistrital.edu.co/comunidad/profesor
es/jruiz/jairocd/texto/circuitosimpr/cirimpresos.pdf. (Consulta: 03 noviembre,
2008. h: 10:30pm)

COBRE. Wikipedia la enciclopedia libre. [En línea].


http://es.wikipedia.org/wiki/Cobre. (Consulta: 03 noviembre, 2008. h: 10:42pm)

COMUNICACIÓN SERIE. [En línea]. Cuaderno técnico I: Comunicaciones serie


(HW). http://www.iearobotics.com/proyectos/cuadernos/ct1/ct1.html. (Consulta:
16 octubre, 2008. h: 11:41pm)

CNC. Códigos para CNC. [En línea]. España. http://r-


luis.xbot.es/cnc/codes01.html (Consulta: 23 junio, 2008. h: 16:12)

CONTROL AUTOMATICO. Red Nacional de Control Automático. [En línea].


España: Universidad de Pamplona. http:// www.control-
automatico.net/htm/108nforma_05.htm (Consulta: 29 septiembre, 2007. h:
18:57)

CONTROL NÚMERICO COMPUTARIZADO. Perforación de circuitos impresos.


[En línea]. Colombia. http://www.cidca.edu.co/REVISTA/Vol1/p ags39-45.pdf
(Consulta: 10 octubre, 2007. h: 14:24)

108
CURSOS. Diseño de PCB. [En línea]. Argentina. http://www.pablin.com.ar
/109nformac /cursos/pcb/index.htm (Consulta: 3 septiembre. 2007. h: 20:58)

HILLAR Gaston. Diseño de circuitos impresos con PC. Argentina: Hasa, 2004.
96 p. (Consulta: 23 junio, 2008. h: 13:12)

MÉTODO DE SERIGRAFÍA PARA LA IMPRESIÓN DE CIRCUITO IMPRESO.


[En línea].Tutorial de serigrafía, planograf y
estampado.http://planograf.com.ar/2008/07/mtodo-de-serigrafa-para-la
impresión-de.html. (Consulta: 16 octubre. 2007. h: 9:02pm)

MOTOR PASO A PASO. [En línea]. 109nforma Catalog.


http://www.datasheetcatalog.net/s/datasheets_pdf/L/2/9/7/L297_1.shtml.
(Consulta: 11 septiembre, 2007. h: 22:45)

PERFORADOR DE TARJETAS ELECTRÓNICAS. TALADRO PCB. [En línea].


Chile: Pontificia Universidad Católica de Chile. 200205.pdf (Consulta: 19
septiembre, 2007. h: 16:32)

PROCESOS. Elaboración de circuitos impresos. [En línea]. Perú.


http://www.Apesol .o rg /news.htm (Consulta: 25 septiembre, 2007. h: 20:45)

PROYECTOS. Control numérico computarizado. [En línea]. Colombia. http://


www.controlautomatico.net/htm/PDF/ponencia%20manipulador.pdf (Consulta:
29 septiembre, 2007. h: 16:53)

RELOJ DE TIEMPO REAL. Reloj de Tiempo Real para Datalogger. [En Línea].
http://www.clubse.com.ar/DIEGO/NOTAS/notas19/nota31.htm. (Consulta: 30
septiembre, 2007. h: 12:54)

TARJETAS ELECTRÓNICAS. Diseño de circuitos impresos. [En línea].


Guatemala. http://www.Electronica2000.com/tabletas/tabletas.htm (Consulta:
11 septiembre, 2007. h: 15:22)

TRABAJOS. Concurso de proyectos de software libre. [En línea]. Perú: Ada


Lovelace. http://www.cpsr-peru.org/swlibre/noticias/ada_es (Consulta: 29
septiembre, 2007. h: 15:25)

109
TUTORIALES. Motores Paso a Paso (Stepper motors). [En línea]. Argentina.
http://www.todorobot.com.ar/110nformación/tutorial%20stepper/stepper-
tutorial.ht m (Consulta: 11 agosto, 2008. h: 10:48)

110
ANEXO A

Ventana de trabajo – CIRCAD 98

111
ANEXO B

Ventana de trabajo de Visual Studio 6.0

112
ANEXO C

Código de programación PIC16F28A, control de sensores de fin de


carrera y dispositivo de perforado a través del puerto serial

PROCESSOR 16F628A
INCLUDE <P16F628A.INC>
__CONFIG H'1F01'

CBLOCK 20
DATO_RECE, WREG_TEMP, STAT_TEMP
PCLA_TEMP, REG1, REG2
ENDC

#DEFINE SEN_X1 PORTB, 7


#DEFINE SEN_X2 PORTB, 6
#DEFINE SEN_Y1 PORTB, 5
#DEFINE SEN_Y2 PORTB, 4
#DEFINE SEN_Z1 PORTB, 0
#DEFINE SEN_Z2 PORTB, 3

#DEFINE OUT_110 PORTA, 4

ORG 00
GOTOPRINCIPAL
ORG 04
GOTOINTERRUPC

PRINCIPAL MOVLW 07
MOVWF CMCON
BSF STATUS, RP0
MOVLW B'00000000'
MOVWF TRISA
MOVLW B'11111011'
MOVWF TRISB
MOVLW .12 ; 19200
MOVWF SPBRG
MOVLW B'00100100'
MOVWF TXSTA
BSF INTCON, GIE
BSF INTCON, PEIE
BSF PIE1, RCIE
113
BCF STATUS, RP0

CLRF PORTA
CLRF PORTB
MOVLW B'10010000'
MOVWF RCSTA

CICLO MOVLW .150


CALL _X_MS
MOVLW "A"
BTFSS SEN_X1
MOVLW "B"
CALL TRANSMITIR
MOVLW "C"
BTFSS SEN_X2
MOVLW "D"
CALL TRANSMITIR
MOVLW "E"
BTFSS SEN_Y1
MOVLW "F"
CALL TRANSMITIR
MOVLW "G"
BTFSS SEN_Y2
MOVLW "H"
CALL TRANSMITIR
MOVLW "J"
BTFSS SEN_Z1
MOVLW "K"
CALL TRANSMITIR
MOVLW "L"
BTFSS SEN_Z2
MOVLW "M"
CALL TRANSMITIR
MOVLW B'00000000'
MOVWF RCSTA
NOP
NOP
NOP
MOVLW B'10010000'
MOVWF RCSTA
GOTOCICLO

;============================================================
==================
; RUTINAS DE TX Y RX

114
;============================================================
==================
INTERRUPC BCF INTCON, GIE
MOVWF WREG_TEMP
SWAPF STATUS, W
MOVWF STAT_TEMP
SWAPF PCLATH, W
MOVWF PCLA_TEMP

MOVF RCREG, W
MOVWF DATO_RECE

MOVF DATO_RECE, W
XORLW "1"
BTFSC STATUS, Z
GOTOON_110
MOVF DATO_RECE, W
XORLW "0"
BTFSC STATUS, Z
GOTOOFF_110

EXIT_RX SWAPF PCLA_TEMP, W


MOVWF PCLATH
SWAPF STAT_TEMP, W
MOVWF STATUS
SWAPF WREG_TEMP, F
SWAPF WREG_TEMP, W
BCF PIR1, RCIF
RETFIE

TRANSMITIR
BSF STATUS, RP0
BTFSS TXSTA, TRMT
GOTO$-1
BCF STATUS, RP0
MOVWF TXREG
RETURN

ON_110 BSF OUT_110


GOTOEXIT_RX

OFF_110 BCF OUT_110


GOTOEXIT_RX

_1_MS MOVLW .250


MOVWF REG1
115
NOP
DECFSZ REG1, F
GOTO$-2
RETURN
_X_MS MOVWF REG2
CALL _1_MS
DECFSZ REG2, F
GOTO$-2
RETURN

;============================================================
==================
; FIN DEL PROGRAMA
;============================================================
==================
END

116
ANEXO D

Código de programación del Módulo “Principal”

'Funciones del puerto


Public Declare Function Leer Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Escribir Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

'Retardos
Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

'Constantes
Public Const MAX_PTOS = 1000
Public Const PTO_X = 1
Public Const PTO_Y = 2

Public Const CSENSOR_X = 1


Public Const CSENSOR_Y = 2
Public Const CSENSOR_Z = 3
Public Const CSENSOR_INICIO = 1
Public Const CSENSOR_FINAL = 2

Public Const CDIR_IZQUIERDA = 1


Public Const CDIR_DERECHA = 2

Public Const CMOTOR_EJEX = 1


Public Const CMOTOR_EJEY = 2
Public Const CMOTOR_EJEZ = 3

'Variables
Public guiax, guiay, guiaz As Integer
Public factor(1 To 3) As Integer
Public tipopaso(1 To 3) As Integer
Public velocidad(1 To 3) As Integer
Public sensoresInicio(1 To 3) As Integer
Public sensoresFinal(1 To 3) As Integer
Public iContador(1 To 3) As Integer
Public sCadena As String
Public iPuertoCOM As Integer
Public iPuertoLPT As Integer
117
Public Puntos(1 To MAX_PTOS, 1 To 2) As Double
Public TotalPuntos As Integer
Public bPanico As Boolean
'
Public Sub LimpiarPuntos()

Dim i, j As Integer

For i = 1 To maxptos
For j = 1 To 2
Puntos(i, j) = 0
Next
Next
TotalPuntos = 0

End Sub

Public Sub InicializarSistema()

sCadena = ""
iContador(1) = 0
iContador(2) = 0
iContador(3) = 0

iPuertoCOM = 1
iPuertoLPT = &H378

Open App.Path & "\motorx.dat" For Input As #1


Input #1, s 'Factor desplazamiento
factor(CMOTOR_EJEX) = Val(s)
Input #1, s 'Velocidad ms
velocidad(CMOTOR_EJEX) = Val(s)
Input #1, s 'No bobinas
tipopaso(CMOTOR_EJEX) = Val(s)
Close #1

Open App.Path & "\motory.dat" For Input As #1


Input #1, s 'Factor desplazamiento
factor(CMOTOR_EJEY) = Val(s)
Input #1, s 'Velocidad ms
velocidad(CMOTOR_EJEY) = Val(s)
Input #1, s 'No bobinas
tipopaso(CMOTOR_EJEY) = Val(s)
Close #1

Open App.Path & "\motorz.dat" For Input As #1


118
Input #1, s 'Factor desplazamiento
factor(CMOTOR_EJEZ) = Val(s)
Input #1, s 'Velocidad ms
velocidad(CMOTOR_EJEZ) = Val(s)
Input #1, s 'No bobinas
tipopaso(CMOTOR_EJEZ) = Val(s)
Close #1

Open App.Path & "\puertolpt.dat" For Input As #1


Input #1, s
Close #1
If s = "1" Then
iPuertoLPT = &H378
Else
iPuertoLPT = &H278
End If

Open App.Path & "\puertocom.dat" For Input As #1


Input #1, s
Close #1
iPuertoCOM = Val(s)
bPanico = False

End Sub

Public Sub CerrarPuertoLPT()

Escribir iPuertoLPT, 0
Escribir iPuertoLPT + 2, 11

End Sub

Public Sub InicializarPuertoLPT()

guiax = 0
guiay = 0
guiaz = 0
tipopaso(1) = 1
tipopaso(2) = 1
tipopaso(3) = 1

End Sub

Public Function LeerSensor(ByVal eje As Integer, ByVal sensor As Integer)

If sensor = CSENSOR_INICIO Then


119
LeerSensor = sensoresInicio(eje)
Else
LeerSensor = sensoresFinal(eje)
End If

End Function

Public Sub MoverX(ByVal pasos As Integer, ByVal dir As Integer)

While pasos > 0


If dir = CDIR_IZQUIERDA Then
MoverX_Izquierda
Else
MoverX_Derecha
End If
pasos = pasos - 1
DoEvents
Wend

End Sub

Public Sub MoverY(ByVal pasos As Integer, ByVal dir As Integer)

While pasos > 0


If dir = CDIR_IZQUIERDA Then
MoverY_Izquierda
Else
MoverY_Derecha
End If
pasos = pasos - 1
DoEvents
Wend

End Sub

Public Sub MoverZ(ByVal pasos As Integer, ByVal dir As Integer)

While pasos > 0


If dir = CDIR_IZQUIERDA Then
MoverZ_Izquierda
Else
MoverZ_Derecha
End If
pasos = pasos - 1
DoEvents
Wend
120
End Sub

Public Sub MoverX_Izquierda()

Dim valor As Integer

valor = Leer(iPuertoLPT) And &HF


If tipopaso(1) = 0 Then
Select Case guiax
Case 0: Escribir iPuertoLPT, valor Or 16
Case 1: Escribir iPuertoLPT, valor Or 32
Case 2: Escribir iPuertoLPT, valor Or 64
Case 3: Escribir iPuertoLPT, valor Or 128
End Select
Else
Select Case guiax
Case 0: Escribir iPuertoLPT, valor Or 16 + 32
Case 1: Escribir iPuertoLPT, valor Or 32 + 64
Case 2: Escribir iPuertoLPT, valor Or 64 + 128
Case 3: Escribir iPuertoLPT, valor Or 128 + 16
End Select
End If
guiax = guiax + 1
If guiax > 3 Then guiax = 0

End Sub

Public Sub MoverX_Derecha()

Dim valor As Integer

valor = Leer(iPuertoLPT) And &HF


If tipopaso(1) = 0 Then
Select Case guiax
Case 0: Escribir iPuertoLPT, valor Or 128
Case 1: Escribir iPuertoLPT, valor Or 64
Case 2: Escribir iPuertoLPT, valor Or 32
Case 3: Escribir iPuertoLPT, valor Or 16
End Select
Else
Select Case guiax
Case 0: Escribir iPuertoLPT, valor Or 128 + 16
Case 1: Escribir iPuertoLPT, valor Or 64 + 128
Case 2: Escribir iPuertoLPT, valor Or 32 + 64
Case 3: Escribir iPuertoLPT, valor Or 16 + 32
End Select
121
End If
guiax = guiax + 1
If guiax > 3 Then guiax = 0

End Sub

Public Sub MoverY_Izquierda()

Dim valor As Integer

valor = Leer(iPuertoLPT) And &HF0


If tipopaso(2) = 0 Then
Select Case guiay
Case 0: Escribir iPuertoLPT, valor Or 1
Case 1: Escribir iPuertoLPT, valor Or 2
Case 2: Escribir iPuertoLPT, valor Or 4
Case 3: Escribir iPuertoLPT, valor Or 8
End Select
Else
Select Case guiay
Case 0: Escribir iPuertoLPT, valor Or 3
Case 1: Escribir iPuertoLPT, valor Or 6
Case 2: Escribir iPuertoLPT, valor Or 12
Case 3: Escribir iPuertoLPT, valor Or 9
End Select
End If
guiay = guiay + 1
If guiay > 3 Then guiay = 0

End Sub

Public Sub MoverY_Derecha()

Dim valor As Integer

valor = Leer(iPuertoLPT) And &HF0


If tipopaso(2) = 0 Then
Select Case guiay
Case 0: Escribir iPuertoLPT, valor Or 8
Case 1: Escribir iPuertoLPT, valor Or 4
Case 2: Escribir iPuertoLPT, valor Or 2
Case 3: Escribir iPuertoLPT, valor Or 1
End Select
Else
Select Case guiay
Case 0: Escribir iPuertoLPT, valor Or 9
122
Case 1: Escribir iPuertoLPT, valor Or 12
Case 2: Escribir iPuertoLPT, valor Or 6
Case 3: Escribir iPuertoLPT, valor Or 3
End Select
End If
guiay = guiay + 1
If guiay > 3 Then guiay = 0

End Sub

Public Sub MoverZ_Izquierda()

Dim valor As Integer

valor = Leer(iPuertoLPT + 2) And &HF0


If tipopaso(3) = 0 Then
Select Case guiaz
Case 0: Escribir iPuertoLPT + 2, valor Or 10
Case 1: Escribir iPuertoLPT + 2, valor Or 9
Case 2: Escribir iPuertoLPT + 2, valor Or 15
Case 3: Escribir iPuertoLPT + 2, valor Or 3
End Select
Else
Select Case guiaz
Case 0: Escribir iPuertoLPT + 2, valor Or 8
Case 1: Escribir iPuertoLPT + 2, valor Or 13
Case 2: Escribir iPuertoLPT + 2, valor Or 7
Case 3: Escribir iPuertoLPT + 2, valor Or 2
End Select
End If
guiaz = guiaz + 1
If guiaz > 3 Then guiaz = 0

End Sub

Public Sub MoverZ_Derecha()

Dim valor As Integer

valor = Leer(iPuertoLPT + 2) And &HF0


If tipopaso(3) = 0 Then
Select Case guiaz
Case 0: Escribir iPuertoLPT + 2, valor Or 3
Case 1: Escribir iPuertoLPT + 2, valor Or 15
Case 2: Escribir iPuertoLPT + 2, valor Or 9
Case 3: Escribir iPuertoLPT + 2, valor Or 10
123
End Select
Else
Select Case guiaz
Case 0: Escribir iPuertoLPT + 2, valor Or 2
Case 1: Escribir iPuertoLPT + 2, valor Or 7
Case 2: Escribir iPuertoLPT + 2, valor Or 13
Case 3: Escribir iPuertoLPT + 2, valor Or 8
End Select
End If
guiaz = guiaz + 1
If guiaz > 3 Then guiaz = 0

End Sub

Public Function CalcularPasos(ByVal posicion As Double, ByVal eje As Integer)


As Integer

Dim fac As Integer


Dim valor As Double

fac = factor(eje)
valor = (posicion * 25.4000508) ' en milimetros
CalcularPasos = Round(valor * fac, 0)

End Function

124
ANEXO E

Código de programación del Formulario “Principal”

Dim iActual As Integer


Dim bMueveX, bMueveY As Boolean
Dim iContX, iContY As Integer
Dim iPasosX, iPasosY As Integer
Dim iDirX, iDirY As Integer
Dim dAntesX, dAntesY As Double

Private Sub GraficarPuntos()

Dim i, j As Integer

Grafica.Cls
Grafica.ScaleMode = 5
Grafica.DrawWidth = 7
Grafica.PSet (0, 0), vbGreen
For i = 0 To R2.ListCount - 1
Grafica.PSet (punto(R2.List(i), PTO_X), punto(R2.List(i), PTO_Y)), vbGreen
Next

End Sub

Private Function punto(ByVal s As String, ByVal p As Integer) As Double

Dim i As Integer

i = InStr(1, s, "-")
If i > 0 Then
If p = PTO_X Then
punto = Val(Mid(s, 1, i - 1))
Else
punto = Val(Mid(s, i + 1, Len(s)))
End If
Else
punto = 0
End If

End Function

125
Private Sub InicializarForma()

Dim i, j As Integer
On Error Resume Next

'Barra de status
j = Int(Me.Width / StatusBar.Panels.Count)
For i = 1 To StatusBar.Panels.Count
StatusBar.Panels(i).Width = j
Next
Frame.Left = 0
Frame.Top = ToolBar.Top + ToolBar.Height + 10
Frame.Width = Me.Width

MultiPage.Width = Me.Width
MultiPage.Height = Me.Height - StatusBar.Height - ToolBar.Height -
Frame.Height
MultiPage.Left = 0
MultiPage.Top = Frame.Top + Frame.Height + 50

i = MultiPage.Value
MultiPage.Value = 1
MultiPage.Value = 0
MultiPage.Value = i
GraficarPuntos

End Sub

Private Sub PrenderTaladro()

If MSComm.PortOpen Then
MSComm.Output = "1"
End If

End Sub

Private Sub ApagarTaladro()

If MSComm.PortOpen Then
MSComm.Output = "0"
End If

End Sub

Private Sub CmdToolBar_Click(Index As Integer)


Select Case Index
126
Case 0: ItmArchivo_Abrir_Click
Case 1: ItmArchivo_Salir_Click
Case 2: ItmEdicion_Procesar_Click
Case 3: ItmEdicion_Dibujar_Click
Case 4: 'ItmEdicion_Taladrar_Click
Case 5: ItmConfig_PuertoCOM_Click
Case 6: ItmConfig_PuertoLPT_Click
Case 7: ItmConfig_MotorX_Click
Case 8: ItmConfig_MotorY_Click
Case 9: ItmConfig_MotorZ_Click
Case 10: 'ItmAyuda_Click
End Select
End Sub

Private Sub Command1_Click()


If MSComm.PortOpen Then MSComm.Output = "1"
End Sub

Private Sub Command2_Click()


If MSComm.PortOpen Then MSComm.Output = "0"
End Sub

' Detener cualquier operacion


Private Sub Command3_Click()

bMueveX = False
bMueveY = False
CerrarPuertoLPT
TmrMotores.Enabled = False
bPanico = True

End Sub

Private Sub Form_Load()

On Error GoTo errLoad

InicializarPuertoLPT
InicializarSistema
CerrarPuertoLPT
MSComm.CommPort = iPuertoCOM
MSComm.PortOpen = True
Exit Sub

errLoad:
MsgBox Err.Description
127
Err.Clear
End Sub

Private Sub Form_Resize()

InicializarForma

End Sub

Private Sub ItmArchivo_Abrir_Click()

Dim s As String

CommonDialog.ShowOpen
If CommonDialog.FileName <> "" Then
StatusBar.Panels(1).Text = CommonDialog.FileName
R1.Clear
Open CommonDialog.FileName For Input As #1
While Not EOF(1)
Line Input #1, s
R1.AddItem (s)
Wend
Close #1
R2.Clear
Grafica.Cls
End If

End Sub

Private Sub ItmArchivo_Salir_Click()

CerrarPuertoLPT
If MSComm.PortOpen Then MSComm.PortOpen = False
End

End Sub

Private Sub ItmAyuda_CalibracionX_Click()

FrmCalibracion.iMotor = CMOTOR_EJEX
FrmCalibracion.Show 1

End Sub

Private Sub ItmAyuda_CalibracionY_Click()

128
FrmCalibracion.iMotor = CMOTOR_EJEY
FrmCalibracion.Show 1

End Sub

Private Sub ItmAyuda_CalibracionZ_Click()

FrmCalibracion.iMotor = CMOTOR_EJEZ
FrmCalibracion.Show 1

End Sub

Private Sub ItmConfig_MotorX_Click()

FrmConfigMotor.iMotor = CMOTOR_EJEX
FrmConfigMotor.Show 1
Open App.Path & "\motorx.dat" For Input As #1
Input #1, s 'Factor desplazamiento
factor(CMOTOR_EJEX) = Val(s)
Input #1, s 'Velocidad ms
velocidad(CMOTOR_EJEX) = Val(s)
Input #1, s 'No bobinas
tipopaso(CMOTOR_EJEX) = Val(s)
Close #1

End Sub

Private Sub ItmConfig_MotorY_Click()

FrmConfigMotor.iMotor = CMOTOR_EJEY
FrmConfigMotor.Show 1
Open App.Path & "\motory.dat" For Input As #1
Input #1, s 'Factor desplazamiento
factor(CMOTOR_EJEY) = Val(s)
Input #1, s 'Velocidad ms
velocidad(CMOTOR_EJEY) = Val(s)
Input #1, s 'No bobinas
tipopaso(CMOTOR_EJEY) = Val(s)
Close #1

End Sub

Private Sub ItmConfig_MotorZ_Click()

FrmConfigMotor.iMotor = CMOTOR_EJEZ
FrmConfigMotor.Show 1
129
Open App.Path & "\motorz.dat" For Input As #1
Input #1, s 'Factor desplazamiento
factor(CMOTOR_EJEZ) = Val(s)
Input #1, s 'Velocidad ms
velocidad(CMOTOR_EJEZ) = Val(s)
Input #1, s 'No bobinas
tipopaso(CMOTOR_EJEZ) = Val(s)
Close #1

End Sub

Private Sub ItmConfig_PuertoCOM_Click()

Dim iAnterior As Integer


Dim bPuerto As Boolean

On Error GoTo ErrItmConfig_PuertoCOM

bPuerto = False
iAnterior = MSComm.CommPort
If MSComm.PortOpen Then
MSComm.PortOpen = False
bPuerto = True
End If

FrmConfigPuertoCOM.Show 1

MSComm.CommPort = iPuertoCOM
If bPuerto Then MSComm.PortOpen = True
Exit Sub

ErrItmConfig_PuertoCOM:
MsgBox "Número de error: " & Err.Number & vbNewLine & _
"Descripción del error: " & Err.Description, vbCritical
MSComm.CommPort = iAnterior
MSComm.PortOpen = True

End Sub

Private Sub ItmConfig_PuertoLPT_Click()

CerrarPuertoLPT
FrmConfigPuertoLPT.Show 1
Open App.Path & "\puertolpt.dat" For Input As #1
Input #1, s
Close #1
130
If Val(s) = 1 Then
iPuertoLPT = &H378
Else
iPuertoLPT = &H278
End If

End Sub

Private Sub ItmEdicion_Dibujar_Click()

GraficarPuntos

End Sub

Private Sub ItmEdicion_Procesar_Click()

Dim i, j, z As Integer
Dim s, p, x, y As String
Dim temp(1 To 2) As Double

R2.Clear
LimpiarPuntos
z=1
'Leer puntos
For i = 0 To R1.ListCount - 1
s = R1.List(i)
If Mid(s, 1, 1) = "3" Then
p = Trim(Mid(s, 2, Len(s)))
'Layer
j = InStr(1, p, " ")
p = Trim(Mid(p, j + 1, Len(p)))
'Type
j = InStr(1, p, " ")
p = Trim(Mid(p, j + 1, Len(p)))
'X0
j = InStr(1, p, " ")
x = Mid(p, 1, j - 1)
p = Trim(Mid(p, j + 1, Len(p)))
'Y0
j = InStr(1, p, " ")
y = Mid(p, 1, j - 1)
p = Trim(Mid(p, j + 1, Len(p)))
R2.AddItem (x & " - " & y)
Puntos(z, PTO_X) = Val(x)
Puntos(z, PTO_Y) = Val(y)
z=z+1
131
End If
Next
TotalPuntos = z - 1
'Ordenar puntos por ejex
For i = 1 To TotalPuntos - 1
For j = i To TotalPuntos
If Puntos(j, PTO_X) < Puntos(i, PTO_X) Then
temp(PTO_X) = Puntos(j, PTO_X)
temp(PTO_Y) = Puntos(j, PTO_Y)
Puntos(j, PTO_X) = Puntos(i, PTO_X)
Puntos(j, PTO_Y) = Puntos(i, PTO_Y)
Puntos(i, PTO_X) = temp(PTO_X)
Puntos(i, PTO_Y) = temp(PTO_Y)
j=i
End If
Next
Next
' volver a mostrar puntos
R2.Clear
For i = 1 To TotalPuntos
R2.AddItem (Str(Puntos(i, PTO_X)) & " - " & Str(Puntos(i, PTO_Y)))
Next

End Sub

Private Sub ItmEdicion_Taladrar_Click()

Dim i As Integer

bPanico = False
MoverseOrigen
'Moverse a los puntos
iContX = velocidad(CMOTOR_EJEX)
iContY = velocidad(CMOTOR_EJEY)
iActual = 1
dAntesX = 0
dAntesY = 0
'Calculos en X
bMueveX = True
iPasosX = CalcularPasos(Abs(Puntos(iActual, CMOTOR_EJEX) - dAntesX),
CMOTOR_EJEX)
If Puntos(iActual, CMOTOR_EJEX) < dAntesX Then
iDirX = CDIR_DERECHA
ElseIf Puntos(iActual, CMOTOR_EJEX) > dAntesX Then
iDirX = CDIR_IZQUIERDA
Else
132
bMueveX = False
End If
dAntesX = Puntos(iActual, CMOTOR_EJEX)
'Calculos en Y
bMueveY = True
iPasosY = CalcularPasos(Abs(Puntos(iActual, CMOTOR_EJEY) - dAntesY),
CMOTOR_EJEY)
If Puntos(iActual, CMOTOR_EJEY) < dAntesY Then
iDirY = CDIR_DERECHA
ElseIf Puntos(iActual, CMOTOR_EJEY) > dAntesY Then
iDirY = CDIR_IZQUIERDA
Else
bMueveY = False
End If
dAntesY = Puntos(iActual, CMOTOR_EJEY)
TmrMotores.Enabled = True

End Sub

Private Sub ItmMoverFinal_Click()

bPanico = False
MoverseFinal

End Sub

Private Sub ItmMoverOrigen_Click()

bPanico = False
MoverseOrigen
Exit Sub

While sensoresInicio(CSENSOR_Z) = 0 And Not bPanico


MoverZ 1, CDIR_DERECHA
Sleep velocidad(CMOTOR_EJEZ)
Wend
CerrarPuertoLPT
bMueveX = True
bMueveY = False
iContX = velocidad(CMOTOR_EJEX)
iContY = velocidad(CMOTOR_EJEY)
TmrMover.Enabled = True

End Sub

Private Sub ItmMoverTaladro_Click()


133
bPanico = False
BajarTaladro

End Sub

Private Sub MSComm_OnComm()

Dim s As String
s = MSComm.Input
sCadena = sCadena & s

End Sub

Private Sub MultiPage_Change()

Select Case MultiPage.Value


Case 0:
R1.Left = 10
R1.Top = MultiPage.Top + 350
R1.Height = MultiPage.Height - StatusBar.Height - 975
R1.Width = MultiPage.Width - 150
R1.Visible = True
R2.Visible = False
Grafica.Visible = False
Case 1:
R2.Left = 10
R2.Top = MultiPage.Top + 350
R2.Height = MultiPage.Height - StatusBar.Height - 975
R2.Width = MultiPage.Width - 150
R2.Visible = True
R1.Visible = False
Grafica.Visible = False
Case 2:
Grafica.Left = 10
Grafica.Top = MultiPage.Top + 350
Grafica.Height = MultiPage.Height - StatusBar.Height - 975
Grafica.Width = MultiPage.Width - 150
Grafica.Visible = True
R1.Visible = False
R2.Visible = False
GraficarPuntos
End Select

End Sub

Private Sub TmrMotores_Timer()


134
'Revisar x
If bMueveX Then
iContX = iContX - 1
If iContX = 0 Then
iContX = velocidad(CMOTOR_EJEX)
If iPasosX > 0 Then
iPasosX = iPasosX - 1
MoverX 1, iDirX
Else
bMueveX = False
End If
End If
End If
'Revisar y
If bMueveY Then
iContY = iContY - 1
If iContY = 0 Then
iContY = velocidad(CMOTOR_EJEY)
If iPasosY > 0 Then
iPasosY = iPasosY - 1
MoverY 1, iDirY
Else
bMueveY = False
End If
End If
End If

'Siguiente punto
If Not bMueveX And Not bMueveY Then
BajarTaladro
iActual = iActual + 1
If iActual <= TotalPuntos Then
'Calculos en X
bMueveX = True
iPasosX = CalcularPasos(Abs(Puntos(iActual, CMOTOR_EJEX) -
dAntesX), CMOTOR_EJEX)
If Puntos(iActual, CMOTOR_EJEX) < dAntesX Then
iDirX = CDIR_DERECHA
ElseIf Puntos(iActual, CMOTOR_EJEX) > dAntesX Then
iDirX = CDIR_IZQUIERDA
Else
bMueveX = False
End If
dAntesX = Puntos(iActual, CMOTOR_EJEX)
'Calculos en Y
bMueveY = True
135
iPasosY = CalcularPasos(Abs(Puntos(iActual, CMOTOR_EJEY) -
dAntesY), CMOTOR_EJEY)
If Puntos(iActual, CMOTOR_EJEY) < dAntesY Then
iDirY = CDIR_DERECHA
ElseIf Puntos(iActual, CMOTOR_EJEY) > dAntesY Then
iDirY = CDIR_IZQUIERDA
Else
bMueveY = False
End If
dAntesY = Puntos(iActual, CMOTOR_EJEY)
Else
CerrarPuertoLPT
TmrMotores.Enabled = False
MsgBox "Proceso Finalizado !!", vbInformation
End If
End If

If bPanico Then
CerrarPuertoLPT
TmrMotores.Enabled = False
End If

End Sub

Private Sub TmrMover_Timer()

'Revisar x
If bMueveX Then
iContX = iContX - 1
If iContX = 0 Then
iContX = velocidad(CMOTOR_EJEX)
If sensoresInicio(CSENSOR_X) = 0 And Not bPanico Then
MoverX 1, CDIR_DERECHA
Else
bMueveX = False
End If
End If
End If
'Revisar y
If bMueveY Then
iContY = iContY - 1
If iContY = 0 Then
iContY = velocidad(CMOTOR_EJEY)
If sensoresInicio(CSENSOR_Y) = 0 And Not bPanico Then
MoverY 1, CDIR_DERECHA
Else
136
bMueveY = False
End If
End If
End If

If Not bMueveX And Not bMueveY Then


TmrMover.Enabled = False
CerrarPuertoLPT
End If

End Sub

Private Sub TmrSerial_Timer()

Dim s As String

If Len(sCadena) > 0 Then


s = Mid(sCadena, 1, 1)
sCadena = Mid(sCadena, 2, Len(sCadena))
Select Case s
Case "A": sensoresInicio(CSENSOR_X) = 1
Case "B": sensoresInicio(CSENSOR_X) = 0
Case "C": sensoresFinal(CSENSOR_X) = 1
Case "D": sensoresFinal(CSENSOR_X) = 0
Case "E": sensoresInicio(CSENSOR_Y) = 1
Case "F": sensoresInicio(CSENSOR_Y) = 0
Case "G": sensoresFinal(CSENSOR_Y) = 1
Case "H": sensoresFinal(CSENSOR_Y) = 0
Case "J": sensoresInicio(CSENSOR_Z) = 1
Case "K": sensoresInicio(CSENSOR_Z) = 0
Case "L": sensoresFinal(CSENSOR_Z) = 1
Case "M": sensoresFinal(CSENSOR_Z) = 0
End Select
If sensoresInicio(CSENSOR_X) = 1 Then
SX1.BackColor = &HFF&
Else
SX1.BackColor = &HFFFFFF
End If
If sensoresFinal(CSENSOR_X) = 1 Then
SX2.BackColor = &HFF&
Else
SX2.BackColor = &HFFFFFF
End If
If sensoresInicio(CSENSOR_Y) = 1 Then
SY1.BackColor = &HFF&
Else
137
SY1.BackColor = &HFFFFFF
End If
If sensoresFinal(CSENSOR_Y) = 1 Then
SY2.BackColor = &HFF&
Else
SY2.BackColor = &HFFFFFF
End If
If sensoresInicio(CSENSOR_Z) = 1 Then
SZ1.BackColor = &HFF&
Else
End If
End If
DoEvents

End Sub

Public Sub MoverseOrigen()

'Subir Z
While sensoresInicio(CSENSOR_Z) = 0 And Not bPanico
MoverZ 1, CDIR_DERECHA
Sleep velocidad(CMOTOR_EJEZ)
DoEvents
Wend
CerrarPuertoLPT
'Mover Y
While sensoresInicio(CSENSOR_Y) = 0 And Not bPanico
MoverY 1, CDIR_DERECHA
Sleep velocidad(CMOTOR_EJEY)
DoEvents
Wend
CerrarPuertoLPT
'Mover X
While sensoresInicio(CSENSOR_X) = 0 And Not bPanico
MoverX 1, CDIR_DERECHA
Sleep velocidad(CMOTOR_EJEX)
DoEvents
Wend
CerrarPuertoLPT

End Sub

Public Sub MoverseFinal()

'Subir Z
While sensoresInicio(CSENSOR_Z) = 0 And Not bPanico
138
MoverZ 1, CDIR_DERECHA
Sleep velocidad(CMOTOR_EJEZ)
DoEvents
Wend
CerrarPuertoLPT
'Mover Y
While sensoresFinal(CSENSOR_Y) = 0 And Not bPanico
MoverY 1, CDIR_IZQUIERDA
Sleep velocidad(CMOTOR_EJEY)
DoEvents
Wend
CerrarPuertoLPT
'Mover X
While sensoresFinal(CSENSOR_X) = 0 And Not bPanico
MoverX 1, CDIR_IZQUIERDA
Sleep velocidad(CMOTOR_EJEX)
DoEvents
Wend
CerrarPuertoLPT

End Sub

Public Sub BajarTaladro()

'Bajar Z
While sensoresFinal(CSENSOR_Z) = 0 And Not bPanico
MoverZ 1, CDIR_IZQUIERDA
Sleep velocidad(CMOTOR_EJEZ)
DoEvents
Wend
CerrarPuertoLPT
'Subir Z
While sensoresInicio(CSENSOR_Z) = 0 And Not bPanico
MoverZ 1, CDIR_DERECHA
Sleep velocidad(CMOTOR_EJEZ)
DoEvents
Wend
CerrarPuertoLPT

End Sub

139
ANEXO F

Código de programación del Formulario “Calibración”

Public iMotor As Integer

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub CommandButton3_Click()

Dim i, b As Integer

i = Val(TxtPasos.Text)
If i < 1 Then
MsgBox "Escriba el número de pasos", vbInformation, "CALIBRACIÓN"
Exit Sub
End If

b = tipopaso(iMotor)
If Option1.Value Then
tipopaso(iMotor) = 1
Else
tipopaso(iMotor) = 2
End If

While i > 0
Select Case iMotor
Case CMOTOR_EJEX: MoverX 1, CDIR_IZQUIERDA
Case CMOTOR_EJEY: MoverY 1, CDIR_IZQUIERDA
Case CMOTOR_EJEZ: MoverZ 1, CDIR_IZQUIERDA
End Select
Sleep VScroll1.Value
i=i-1
DoEvents
Wend
tipopaso(iMotor) = b
CerrarPuertoLPT
MsgBox "Proceso Finalizado !!!", vbInformation, "Calibración"
140
End Sub

Private Sub CommandButton4_Click()

Dim i, b As Integer

i = Val(TxtPasos.Text)
If i < 1 Then
MsgBox "Escriba el número de pasos", vbInformation, "CALIBRACIÓN"
Exit Sub
End If

b = tipopaso(iMotor)
If Option1.Value Then
tipopaso(iMotor) = 1
Else
tipopaso(iMotor) = 2
End If

While i > 0
Select Case iMotor
Case CMOTOR_EJEX: MoverX 1, CDIR_DERECHA
Case CMOTOR_EJEY: MoverY 1, CDIR_DERECHA
Case CMOTOR_EJEZ: MoverZ 1, CDIR_DERECHA
End Select
Sleep VScroll1.Value
i=i-1
DoEvents
Wend
tipopaso(iMotor) = b
CerrarPuertoLPT
MsgBox "Proceso Finalizado !!!", vbInformation, "Calibración"

End Sub

Private Sub Form_Load()

Select Case iMotor


Case CMOTOR_EJEX: Me.Caption = "Calibración Eje X"
Case CMOTOR_EJEY: Me.Caption = "Calibración Eje Y"
Case CMOTOR_EJEZ: Me.Caption = "Calibración Eje Z"
End Select

VScroll1.Value = 1
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2

141
End Sub

Private Sub VScroll1_Change()


TxtVeloc.Text = Str(VScroll1.Value)

End Sub

142
ANEXO G

Código de programación del Formulario “ConfigMotor”

Public iMotor As Integer

Private Sub CommandButton1_Click()

Select Case iMotor


Case CMOTOR_EJEX:
Open App.Path & "\motorx.dat" For Output As #1
Case CMOTOR_EJEY:
Open App.Path & "\motory.dat" For Output As #1
Case CMOTOR_EJEZ:
Open App.Path & "\motorz.dat" For Output As #1
End Select
Write #1, Text1.Text 'Factor desplazamiento
Write #1, Text2.Text
If Option1.Value Then
Write #1, "1"
Else
Write #1, "2"
End If
Close #1
factor(iMotor) = Val(Text1.Text)
velocidad(iMotor) = Val(Text2.Text)
If Option1.Value Then
tipopaso(iMotor) = 1
Else
tipopaso(iMotor) = 2
End If
Unload Me

End Sub

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub Form_Load()


143
Dim s As String

On Error GoTo errLoad

Select Case iMotor


Case CMOTOR_EJEX:
Me.Caption = "Configurar Motor X"
Open App.Path & "\motorx.dat" For Input As #1
Case CMOTOR_EJEY:
Me.Caption = "Configurar Motor Y"
Open App.Path & "\motory.dat" For Input As #1
Case CMOTOR_EJEZ:
Me.Caption = "Configurar Motor Z"
Open App.Path & "\motorz.dat" For Input As #1
End Select
Input #1, s 'Factor desplazamiento
Text1.Text = s
Input #1, s 'Velocidad ms
Text2.Text = s
Input #1, s 'No bobinas
If Val(s) = 1 Then
Option1.Value = True
Else
Option2.Value = True
End If
Close #1

Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2


Exit Sub

errLoad:
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Text1.Text = "1"
Text2.Text = "100"
Option1.Value = True

End Sub

144
ANEXO H

Código de programación del Formulario “ConfigPuertoCOM”

Private Sub CommandButton1_Click()

iPuertoCOM = VScroll.Value
Open App.Path & "\puertocom.dat" For Output As #1
Write #1, Text.Text
Close #1
Unload Me

End Sub

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub Form_Load()

Dim s As String

On Error GoTo errLoad

Open App.Path & "\puertocom.dat" For Input As #1


Input #1, s
Close #1
VScroll.Value = Val(s)
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Exit Sub

End Sub

Private Sub VScroll_Change()

Text.Text = Str(VScroll.Value)

End Sub

145
ANEXO I

Código de programación Formulario “ConfigPuertoLPT”

Private Sub CommandButton1_Click()

Select Case VScroll.Value


Case 1: iPuertoLPT = &H378
Case 2: iPuertoLPT = &H278
End Select
Open App.Path & "\puertolpt.dat" For Output As #1
Write #1, Str(VScroll.Value)
Close #1
Unload Me

End Sub

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub Form_Load()

Dim s As String

On Error GoTo errLoad

Open App.Path & "\puertolpt.dat" For Input As #1


Input #1, s
Close #1
VScroll.Value = Val(s)
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Exit Sub

errLoad:
VScroll.Value = 1
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2

End Sub

146
Private Sub VScroll_Change()

Select Case VScroll.Value


Case 1: Text.Text = "0x378"
Case 2: Text.Text = "0x278"
End Select

End Sub

147
ANEXO J

Código de programación para el proceso de insolación

//#include <18F452.h>
#include <16F887.h>
#include <16F886.h>
#device adc=10

#FUSES NOWDT, NOPROTECT, NOBROWNOUT,PUT, NODEBUG, NOLVP


//#FUSES INTRC
#FUSES XT
#use delay(clock=4000000)

#define ARRIBA 1
#define ABAJO 0

#define esc PIN_B0


#define ent PIN_B1
#define up PIN_B2
#define down PIN_B3
#define PGC PIN_B6
#define PGD PIN_B7
#define scl1 PIN_C3
#define sda1 PIN_C4
#define sout PIN_D3

#use i2c(Master,sda=PIN_C4, scl=PIN_C3)


#use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7)
//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooo//
#include <LCD.C>
int mm,ss;
int i=0;
int minutos,segundos,segs;
unsigned char bandera=0;

int bcd_to_int(int);
void leer_rtc();
void configurar();
void iniciar_rtc();
void mostrar_hora();
148
void check_sw();
void pintar_flecha(void);
void cuenta_regresiva(void);
void mostrar_seleccion(void);
// INTERRUPCIONES
#int_TIMER1
TIMER1_isr()
{
return(0);
}//
// SUB-RUTINAS
int bcd_to_int(int x){
//===========================================================
==================
//Convierte los valores BDC del DS1307 a valores enteros
//===========================================================
==================
int y, y1=0, y2=0, cont=1;
//--------------Nibble unidades
for(i=0;i<4;i++)
{
if(bit_test(x,i)){y1 = y1+(cont);}cont=cont*2;
}
//--------------Nibble decenas
cont=1;
for(i=4;i<8;i++)
{
if(bit_test(x,i)){y2 = y2+(cont);}cont=cont*2;
}
y=(y2*10)+y1;
return(y);
}//
int int_to_bcd(int x){
int dato_bcd;
dato_bcd=((x/10)<<4)+(x%10);
return(dato_bcd);
}//
void leer_rtc(){
//===========================================================
==================
//Lee los valores desde el DS1307
//===========================================================
==================
i2c_start();
i2c_write(0xd0);
i2c_write(0);
149
i2c_start();
i2c_write(0xd1);
ss = i2c_read();
mm= i2c_read(0);
i2c_stop();
delay_ms(10);
}//
void configurar(){
//===========================================================
==================
// Establece las opciones iniciales del micro
//===========================================================
==================
port_b_pullups(TRUE);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_32);
//setup_psp(PSP_DISABLED);
// setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
//setup_timer_2(T2_DIV_BY_16,255,1);
// setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_ccp2(CCP_OFF);
setup_timer_2(T2_DIV_BY_16,255,4);
//setup_ccp1(CCP_PWM);
//setup_ccp2(CCP_PWM);
lcd_init();
//enable_interrupts(INT_TIMER1);
//enable_interrupts(GLOBAL);
//setup_oscillator(False);
}//
void iniciar_rtc(){
//===========================================================
==================
// Configura el DS1307 y establece la hora en 12:00 horas formato 24h
//===========================================================
==================
i2c_start(); // Condicion de inicio
i2c_write(0xd0); // Direcion del DS1307
i2c_write(0); // Direccion inicial de escritura
i2c_write(0b00000000); // Segundos
i2c_write(0b00000000); // Minutos
i2c_write(0b00000000); // Horas (Bit6, 0=24h 1=12h)
i2c_write(0b00000000); // Dia de la semana
i2c_write(0b00000001); // Dia del mes
i2c_write(0b00000001); // Mes
150
i2c_write(0b00000001); // Year
i2c_write(0b10010000); // Control
i2c_stop(); // Condicion de parada
}//
void mostrar_cuenta(){
lcd_gotoxy(1,1); lcd_putc("Tiempo Restante");
lcd_gotoxy(1,2); printf(lcd_putc, "%2u",minutos);
lcd_gotoxy(3,2); lcd_putc("min.");
lcd_gotoxy(8,2); printf(lcd_putc, "%2u",segs);
lcd_gotoxy(10,2); lcd_putc("seg..");
}//
void check_sw(){
//===========================================================
==================
// Establece valores a la variable global selector, para seleccionar en que
// rutina de incubacion actua
//===========================================================
==================
if(!input(up)){

}//

if(!input(down)){

}//

if(!input(ent)){

}//

if(!input(esc)){

}//
}//

void mostrar_seleccion(void){
lcd_putc("\f AJUSTAR TIEMPO");
lcd_gotoxy(1,2); printf(lcd_putc, "%2u min %2u seg",minutos,segundos);
}//

void cuenta_regresiva(void){
segs=segundos-ss;
if(segs==255){
segs=59;
minutos--;
if (minutos==255){
151
lcd_putc("\f INSOLADO \nCOMPLETADO");
delay_ms(1500);
reset_cpu();
}
}
//-------------------------------------------------------------------------
}//

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// MAIN
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
void main()
{
PRINCIPAL:
configurar();
iniciar_rtc();
lcd_putc("\f INSOLADORA V1.0 ");
lcd_gotoxy(1,2); lcd_putc(" U.S.B. ");
delay_ms(2000);
minutos=0;segundos=0;
while(TRUE){
INICIO:
if(!input(ent)){
while(!input(ent));
lcd_putc("\f AJUSTAR TIEMPO");
lcd_gotoxy(1,2); printf(lcd_putc, "%2u min %2u
seg",minutos,segundos);
lcd_gotoxy(2,2);lcd_send_byte(0,0X0F);//titileo cursor
bandera=0;
AJUSTE_HORA:
{
delay_ms(250);
switch(bandera){
case 0:{
if (!input(up)){
minutos++;
mostrar_seleccion();
if(minutos>59)minutos=0;

lcd_gotoxy(2,2);lcd_send_byte(0,0X0F);
}
if (!input(down)){
minutos--;
if(minutos==255)minutos=59;
152
mostrar_seleccion();

lcd_gotoxy(2,2);lcd_send_byte(0,0X0F);
}
if (!input(ent)){
delay_ms(250);
bandera++;
lcd_gotoxy(8,2);
lcd_send_byte(0,0X0F);
}
if (!input(esc)){
delay_ms(250);
goto INICIO;
}
break;
}//End Case0
//*******************
case 1:{
if (!input(up)){
segundos++;
if(segundos>59)segundos=0;
mostrar_seleccion();

lcd_gotoxy(9,2);lcd_send_byte(0,0X0F);
}
if (!input(down)){
segundos--;
if(segundos==255)segundos=59;
mostrar_seleccion();

lcd_gotoxy(9,2);lcd_send_byte(0,0X0F);
}
if (!input(ent)){
delay_ms(250);
bandera=0;
lcd_gotoxy(1,1);
lcd_send_byte(0,0X0C);
iniciar_rtc();
setup_ccp2(CCP_PWM);
goto CUENTA;
}
if (!input(esc)){
delay_ms(250);
goto INICIO;
}
break;
153
}//End Case1
//*******************
}//
goto AJUSTE_HORA;
}//
//*************************************************************
CUENTA:{
leer_rtc();
cuenta_regresiva();
mostrar_cuenta();
}
goto CUENTA;
}

}//
}//

154
ANEXO K

Código de programación para la LCD

///////////////////////////////////////////////////////////////////////////
//// LCDD.C ////
//// Driver for common LCD modules ////
//// ////
//// lcd_init() Must be called before any other function. ////
//// ////
//// lcd_putcI Will display c on the next position of the LCD. ////
//// The following have special meaning: ////
//// \f Clear display ////
//// \n Go to start of second line ////
//// \b Move back one position ////
//// ////
//// lcd_gotoxy(x,y) Set write position on LCD (upper left is 1,1) ////
//// ////
//// lcd_getc(x,y) Returns character at position x,y on LCD ////
//// ////
///////////////////////////////////////////////////////////////////////////
//// I Copyright 1996,2003 Custom Computer Services ////
//// This source code may only be used by licensed users of the CCS C ////
//// compiler. This source code may only be distributed to other ////
//// licensed users of the CCS C compiler. No other use, reproduction ////
//// or distribution is permitted without written permission. ////
//// Derivative programs created using this software in object code ////
//// form are not restricted in any way. ////
///////////////////////////////////////////////////////////////////////////

// As defined in the following structure the pin connection is as follows:


// D0 enable
// D1 rs
// D2 rw
// D4 D4
// D5 D5
// D6 D6
// D7 D7
//
// LCD pins D0-D3 are not used and PIC D3 is not used.

155
// Un-comment the following define to use port B
// #define use_portb_lcd TRUE

struct lcd_pin_map { // This structure is overlayed


BOOLEAN enable; // on to an I/O port to gain
BOOLEAN rs; // access to the LCD pins.
BOOLEAN rw; // The bits are allocated from
BOOLEAN unused; // low order up. ENABLE will
int data : 4; // be pin B0.
} lcd;

#if defined use_portb_lcd


#locate lcd = getenv(“sfr:PORTB”) // This puts the entire structure over the
port
#define set_tris_lcd(x) set_tris_b(x)
#else
#locate lcd = getenv(“sfr:PORTD”) // This puts the entire structure over the
port
#define set_tris_lcd(x) set_tris_d(x)
#endif

#define lcd_type 2 // 0=5x7, 1=5x10, 2=2 lines


#define lcd_line_two 0x40 // LCD RAM address for the second line

BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};


// These bytes need to be sent to the LCD
// to start it up.

// The following are used for setting


// the I/O port direction register.

Struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins
are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins
are in

BYTE lcd_read_byte() {
BYTE low,high;
set_tris_lcd(LCD_READ);
156
lcd.rw = 1;
delay_cycles(4);
lcd.enable = 1;
delay_cycles(4);
high = lcd.data;
lcd.enable = 0;
delay_cycles(4);
lcd.enable = 1;
delay_us(1);
low = lcd.data;
lcd.enable = 0;
set_tris_lcd(LCD_WRITE);
return( (high<<4) | low);
}

void lcd_send_nibble( BYTE n ) {


lcd.data = n;
delay_cycles(4);
lcd.enable = 1;
delay_us(2);
lcd.enable = 0;
}

void lcd_send_byte( BYTE address, BYTE n ) {

lcd.rs = 0;
while ( bit_test(lcd_read_byte(),7) ) ;
lcd.rs = address;
delay_cycles(4);
lcd.rw = 0;
delay_cycles(4);
lcd.enable = 0;
lcd_send_nibble(n >> 4);
lcd_send_nibble(n & 0xf);
}

void lcd_init() {
BYTE I;
set_tris_lcd(LCD_WRITE);
lcd.rs = 0;
lcd.rw = 0;
lcd.enable = 0;
delay_ms(15);
157
for(i=1;i<=3;++i) {
lcd_send_nibble(3);
delay_ms(5);
}
lcd_send_nibble(2);
for(i=0;i<=3;++i)
lcd_send_byte(0,LCD_INIT_STRING[i]);
}

void lcd_gotoxy( BYTE x, BYTE y) {


BYTE address;

if(y!=1)
address=lcd_line_two;
else
address=0;
address+=x-1;
lcd_send_byte(0,0x80|address);
}

void lcd_putc( char c) {


switch I {
case ‘\f’ : lcd_send_byte(0,1);
delay_ms(2);
break;
case ‘\n’ : lcd_gotoxy(1,2); break;
case ‘\b’ : lcd_send_byte(0,0x10); break;
default : lcd_send_byte(1,c); break;
}
}

char lcd_getc( BYTE x, BYTE y) {


char value;

lcd_gotoxy(x,y);
while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low
lcd.rs=1;
value = lcd_read_byte();
lcd.rs=0;
return(value);
}

158
ANEXO L

Vistas 3D de estructura en acrílico para la insoladora

159
160
161
162
163
164
ANEXO M

Datasheet TIP122

165
166
ANEXO Ñ

Datasheet TIP3055

167
168
ANEXO O

Datasheet 4N33

169
170
ANEXO P

Datasheet MAX232

171
172
173
174
175
ANEXO Q

Datasheet PIC16F628A

176
177
178
ANEXO R

Datasheet PIC16F886A

179
180
181
182
ANEXO S

Datasheet DS1307

183
184
185

También podría gustarte