Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROBLEMA DE INGENIERA
TECNICAS DIGITALES III
IMPRESORA BRAILLE
Integrantes:
- Chiconi, Juan Pablo
- Gimnez, Matas
- Heis, Juan Gabriel
- Lzzari, Claudio
Docentes:
- Profesor: Ing. Poblete, Felipe
- Auxiliar: Ing. Gonzalez, Mariano
AO 2009
INDICE
OBJETIVOS DEL TRABAJO
MATERIAS INTEGRADAS
POSIBLES APLICACIONES
PROFESORES ENTREVISTADOS
BIBLIOGRAFA
INTRODUCCIN:
EL CDIGO BRAILLE:
Louis Braille
Sistema Braille
DESARROLLO
4
7
10
PARTE ELECTRO-MECNICA
Iniciacin del proyecto:
PARTES QUE SE RETIRARON DE LA IMPRESORA ORIGINAL
Piezas que se colocaron
10
10
11
12
PARTE ELECTRNICA
Comunicacin bidireccional mediante puerto paralelo
Confeccin de Placa controladora.
Control del motor PAP
23
23
26
31
TEORA DE FUNCIONAMIENTO
33
CIRCUITOS O DIAGRAMAS
34
35
37
40
PRESUPUESTO
41
42
IMGENES (ANEXO)
43
PROGRAMA
44
MATERIAS INTEGRADAS
Informtica 2 - Ingeniera Industrial.
Informtica 1 y 2 - Ingeniera electrnica.
Control.
Electrnica de Potencia.
Instrumentacin.
POSIBLES APLICACIONES
Implementacin de un perifrico poco comn pero de suma importancia para las personas con
deficiencias visuales.
Base para un proyecto a gran escala y aplicable a un mercado real.
PROFESORES ENTREVISTADOS
Lic. Juan Arce - Consulta: Threads - Multithreads.
Ing. Lucas Guadagnolli - Consulta: Visual Basic.
Ing. Hugo Francini - Consulta: Optoacoplador de precisin.
Ing. Marcelo Monjes
BIBLIOGRAFA
Sitios de Internet.
www.Braille.org
www.biografiasyvidas.com/biografia/b/Braille.htm
Libros.
Visual Basic 6 - Matas Blzquez Iglesias
Introduccin:
El cdigo Braille:
Un poco de historia:
Louis Braille
(Coupvray, Francia, 1809 - Pars, 1852) Educador e inventor francs del sistema de lectura y
escritura tctil para invidentes que lleva su nombre, basado en un mtodo de representacin que
utiliza celdas con seis puntos en relieve. El mtodo Braille es en la actualidad el sistema de lectura y
escritura punteada universalmente adoptado en los programas de educacin de invidentes. Braille
aplic su novedoso mtodo al alfabeto, a los nmeros y a la notacin musical.
A los tres aos de edad sufri un accidente que le priv de la vista: trataba de imitar la labor de su
padre en el taller familiar de talabartera y se da uno de los ojos con el punzn que utilizaba para
perforar el cuero. Algn tiempo despus, el ojo enfermo infect el ojo sano y el pequeo Louis
perdi la vista para siempre. A pesar de su deficiencia fsica, Braille asisti durante dos aos a la
escuela de su localidad natal, y aunque demostr ser uno de los alumnos ms aventajados, su
familia crey que el muchacho nunca podra aprender a leer y escribir, ni acceder a travs de la
educacin a un prometedor futuro.
Cuando cumpli los diez aos ingres en la escuela para chicos ciegos de Pars, una de las primeras
instituciones especializadas en este campo que se inauguraron en todo el mundo. Las condiciones
del centro eran muy duras; se impona a los alumnos una severa disciplina que, sin embargo, no
amedrent el fuerte carcter del joven Braille. En el centro, los pupilos aprendan algunos oficios
sencillos y reciban la mayor parte de su instruccin de forma oral.
Tambin asistan a clases de lectura porque el fundador de la escuela, Valentin Hay, haba
conseguido desarrollar un sistema de impresin de libros con los caracteres en relieve para permitir
la lectura tctil. El mtodo era muy rudimentario: exiga una impresin individualizada en cobre
4
El joven Louis Braille, que haba conseguido avanzar notablemente en sus estudios y desarrollar un
considerable talento para la msica, percibi inmediatamente que las posibilidades del Sonography
para la educacin de invidentes pasaban por simplificar el sistema aportado por Barbier. En los
meses siguientes experiment con diferentes posibilidades y combinaciones hasta que encontr una
solucin idnea para reproducir la fontica bsica que slo requera la utilizacin de seis puntos en
relieve. Continu trabajando varios aos ms en el perfeccionamiento del sistema y desarroll
cdigos diferentes para la enseanza de materias como la msica y las matemticas.
A pesar de las indudables ventajas que ofreca para el desarrollo educativo de los nios ciegos, el
mtodo inventado por el joven francs no se implant de forma inmediata. Existieron reticencias
entre los docentes sobre la utilidad del sistema, y un profesor de la escuela lleg incluso a prohibir a
los chicos su aprendizaje. Afortunadamente, el veto caus un efecto alentador entre los alumnos,
que, a escondidas, se esmeraban por estudiar las composiciones de puntos ideadas por su
compaero Louis y descubran que no slo eran capaces de leer textos sino tambin de escribirlos
ellos mismos con un simple mtodo de fabricacin de puntos en relieve. Por primera vez los
invidentes disfrutaban de una autonoma que hasta entonces les haba sido vedada.
Braille se convirti en profesor de la escuela y se gan la admiracin de todos sus alumnos.
Desgraciadamente, no vivi lo bastante para ver cmo su sistema se adoptaba en todo el mundo.
Enfermo de tuberculosis, muri a los 43 aos con el pesar de que probablemente su revolucionario
invento desaparecera con l. No se cumplieron los malos presagios del pedagogo francs, porque
ya eran muchos los que haban descubierto la eficacia de su mtodo. En 1860, el sistema Braille se
introdujo en la escuela para ciegos de San Luis (Estados Unidos).
En 1868, un grupo de cuatro invidentes, liderado por el doctor Thomas Armitage, fund en el Reino
Unido una sociedad para impulsar el perfeccionamiento y la difusin de la literatura grabada en
relieve para ciegos. Este pequeo grupo de amigos creci hasta convertirse en el Instituto Nacional
de Ciegos, el mayor editor de textos en Braille en Europa y la mayor organizacin britnica para
personas con discapacidad visual. En el siglo XX, el mtodo Braille se haba implantado en casi
todos los pases del mundo.
La gran aportacin de Louis Braille a la educacin y a la calidad de vida de la poblacin invidente
fue finalmente reconocida en su pas: en 1952, cuando se cumpla el centenario de su muerte, su
cuerpo fue trasladado al Panten parisino donde reposan los restos de los hroes nacionales. Aquel
mismo ao, la Asociacin Amigos de Louis Braille compr la casa de Coupvray donde en 1809
haba nacido el educador, y poco despus el Consejo Mundial para la Promocin Social de los
Ciegos se encarg de su administracin a travs del Comit Louis Braille. En 1966, el estado
francs inscribi la casa natal en el inventario de monumentos histricos. En 1984, cuando el
El sistema Braille
El sistema Braille consiste en un cdigo de 69 caracteres, constituidos por un rectngulo de seis
puntos que conforman una figura determinada. Estos caracteres Braille estn unidos en lneas sobre
el papel y pueden leerse pasando las yemas de los dedos suavemente sobre el escrito.
Durante el siglo XIX se haban realizado otros intentos para conseguir que los invidentes pudieran
leer y escribir, aunque ninguno de los proyectos anteriores al Braille fue lo bastante satisfactorio.
Braille decidi utilizar el sistema de grabacin de los signos en relieve sobre un papel, ya utilizado
anteriormente, pero usando un cdigo alfabtico distinto del latino y del griego.
El alfabeto Braille
La escritura se realizaba mediante impresiones en relieve sobre planchas, lo cual permita un tipo de
lectura analtica y tctil a la velocidad de 125 a 175 palabras por minuto. Las matrices que dise
no slo representaban letras sino tambin los nmeros, los signos de puntuacin y acentuacin y
algunas de las contracciones ms usuales de los idiomas occidentales. Este sistema se public por
primera vez en 1829 y fue presentado en su modelo ms completo en 1837. No fue aceptado como
oficial por la Institution des Aveugles hasta 1854, dos aos despus de la muerte de LouisBraille, y
en 1878 se aprob en el Congreso Internacional de Pars como sistema universalista de enseanza
de los invidentes.
Las combinaciones de puntos en relieve estn ordenadas en una tabla de ocho lneas horizontales;
las dos primeras contienen diez matrices, y las seis restantes, nueve, ocho, siete, once, siete y siete
respectivamente. Las matrices de las tres primeras lneas indican letras; las de las tres siguientes
nmeros y signos gramaticales. En la sptima lnea se incluyen caracteres que permiten emplear
adecuadamente los anteriores: contracciones, maysculas, etc., as como un indicador de que el
siguiente carcter es numrico. La octava lnea indica las notas musicales. En 1965 se realiz una
adaptacin del sistema Braille al lenguaje anglosajn, aadiendo smbolos de utilidad para las
matemticas superiores y otras disciplinas tcnicas.
El sistema Braille tambin permite la escritura, que se realiza gracias a dos planchas metlicas entre
las cuales se coloca el papel; una de las ellas tiene seis agujeros para meter el punzn y horadar
segn el signo que se desea emplear. Actualmente el sistema Braille puede escribirse tambin con
Sistema Braille
El cdigo Braille se basa en una matriz de seis puntos distribuidos en dos columnas de tres puntos
cada uno, dependiendo de la presencia o la ausencia de esos puntos, se obtienen 64 combinaciones
diferentes con las cuales se pueden representar varias letras del alfabeto y signos de puntuacin. A
esta matriz de puntos se la conoce como smbolo generador, el cual tiene las siguientes
especificaciones: La altura del punto (relieve) es de 0,508 mm; la separacin entre los centros de los
puntos de un mismo smbolo generador es de 2,5 mm (tanto horizontal como verticalmente). La
distancia horizontal entre dos smbolos adyacentes es de 3,75mm (medida desde el centro del punto
4 del primer smbolo y el centro del punto 1 del segundo smbolo) y la distancia vertical entre dos
smbolos generadores es de 5 mm (medida desde el centro del punto 6 del smbolo superior y el
centro de del punto 4 del smbolo inferior).
El sistema Braille utiliza diez smbolos esenciales, que representan las diez primeras letras del
alfabeto latino ( desde la A hasta la J), cuyas combinaciones slo emplean los puntos 1, 2, 4 y 5
(puntos superiores del smbolo generador). Para representar las letras de la K a la T, es igual que
para las primeras diez pero agregando el punto inferior izquierdo (punto 3), a excepcin de la letra
que es un carcter especial propio del idioma espaol, y para las letras de la U a la Z se agregan
Alfabeto Braille
En algunos casos se recurre a la utilizacin de dos smbolos generadores para representar un solo
carcter. Un ejemplo de esto son las letras maysculas y los nmeros.
Para lograr una letra mayscula se antepone un smbolo especial (cuya combinacin son los puntos
4 y 6) delante de la letra que se quiere representar, y para lograr una palabra completamente en
maysculas se anteponen a la palabra dos de estos smbolos.
Representacin de la mayscula
DESARROLLO
PARTE ELECTRO-MECNICA
Iniciacin del proyecto:
Cuando se escogi el proyecto de Impresora Braille instantneamente surgi como duda principal
qu y cmo se hara la parte mecnica. La deliberacin fue unnime: "Utilizar como base una
impresora ya existente y modificarla acorde a nuestro prototipo".
En ese momento el reto fue encontrar una impresora que tenga ciertas caractersticas que permitan
modificaciones acordes a nuestros conocimientos y que, a la vez, satisfagan las necesidades de la
impresora Braille.
Como parmetros fundamentales se busco que posea los siguientes:
a) Robustez: La impresora debe ser resistente a los golpes que marcan la hoja.
b) Sencillez: Debido a que hay que realizar modificaciones, es mejor trabajar con sistemas que no
poseen una complejidad avanzada.
c) Espacio: Como hay que aadir un elemento punzante con un electroimn, es conveniente que el
lugar no sea reducido.
d) Estndar: La impresora debe ser comn y corriente, de esta manera se asegura que los repuestos
se consiguen y permite una produccin de varias Impresoras Braille.
Llegado el momento de la eleccin se contaba con 4 impresoras. De HEWLET PACKARD el
modelo HP 640C y de la marca EPSON una Stylus 440, una LX 300 y una LX 800. Las LX 300 y
LX 800 son matriz de punto, la distancia entre el cabezal de impresin y donde pasa la hoja es
reducida, por lo que se descartaron. En cuanto a la HP y la EPSON 440 la eleccin fue a favor de la
HP por presentar mayor distancia entre el cabezal y la hoja, permitiendo un trabajo ms simple,
sencillo y eficiente.
HP 640 C
EPSON 440
EPSON LX 800
10
EPSON LX 300
11
Despiece Impresora
Aqu se ve que se retir la plaqueta controladora, para dar lugar a la de diseo propio.
12
Como segundo paso se adapto una barra metlica la cual cumple la funcin de apoyo de los golpes
del electroimn, la misma corrige la precisin de los golpes, obteniendo los resultados buscados.
sta pieza pertenece a una impresora EPSON, en la parte superior se coloc una goma a modo de
amortiguar el golpe del punzn.
13
Grilla
Como la impresora original tiene una grilla demasiado fina, lo que se hizo fue cambiar el conjunto
grilla-optoacoplador. El optoacoplador es un estndar, ste resulto de precisin aceptable y costo
reducido. La grilla fue creada a partir de una filmina sobre la cual se imprimieron las lneas con una
impresora laser. Se probaron 3 grillas de distintos tamaos de lnea y separacin.
Todas las grillas se hicieron con una parte negra del mismo tamao que la transparente. En el caso 1
la medida de cada lnea fue de 0.312 mm, en la 2 fue de 0.625 mm y en la 3 de 1.25 mm. La 1 era la
ms precisa que las otras, pero al ser tan pequeas el optoacoplador poda perder la lectura de
alguna en cualquier momento. La 3 permita trabajar con mas velocidad que las anteriores pero
careca de precisin.
Solucin: la 2
Es la relacin justa entre precision y velocidad, ademas se asegura una correcta lectura del
optoacoplador. Como la grilla es mas larga que el tamao de una hoja tamao oficio (el mximo
tamao que aceptaba la impresora laser) se tuvieron que pegar 2 grillas.
Esta es la plantilla sobre la cual se escribe en Braille, de esta plantilla se sacaron las medidas
correspondientes a la separacin, tamao del punto, rengln, etc.
14
fig. 1
fig. 2
Elemento Percutor
ste elemento fue uno de los grandes retos a cumplir, ya que tuvimos diferentes opciones y distintos
puntos de vista. Se probaron diferentes elementos como rels, contactores, electroimanes de
diversos tamaos inclusive de fabricacin casera.
Los ms probados fueron:
-Electroimn pequeo:
El primer mecanismo probado fue un electroimn pequeo, el cual tena una punta que pasaba por
el centro del bobinado y realizaba un movimiento cuando ste se accionaba. Este dispositivo no
tuvo xito debido a que la fuerza aplicada a la punta no era suficiente para lo que se requera.
15
0.30mm
2
S .r .
0,07068583470577034786540947612379 0.0707mm
2
Clculo trmico
Ser el que determine en principio la seccin del conductor. El valor eficaz de la intensidad de
corriente nominal del circuito no tendr que ocasionar un incremento de temperatura superior a la
especificada para cada tipo de cable. Para los conductores aislados y sin envoltura de proteccin,
la norma IRAM 2183 refiere las intensidades mximas admisibles para cables instalados en
16
I (A)
9,6
13
18
24
31
43
59
77
96
116
148
17
N m
24V
180m
0.2418 .0.55 A
m
Lm 2. .0.01 0.0624m
L: Permetro de una circunferencia.
Con lo que obtenemos:
N m 180m
2892vueltas 3000vueltas
Lm 0.0624
El bobinado se realiz colocando la lapicera en una agujereadora de bajas revoluciones. Para
mantener el alambre dentro del rango deseado se colocaron arandelas de mica como tope. Se
eligi este material por no presentar problemas frente al campo magntico del arrollamiento.
18
19
Pese a nuestros esfuerzos, ste electroimn no fue lo suficientemente potente como para marcar la
hoja, por lo que se descart.
-Electroimn de impresora laser.
Finalmente se consigui un electroimn de tamao y fuerza adecuado, el cual se adaptaba
perfectamente a nuestros requisitos. El mismo era controlado con 12V de CC.
Una vez obtenido el electroimn se adapto ste a la impresora, en el cual no tuvimos mayor
inconveniente.
20
El soporte plstico perteneca a la impresora original, estaba dispuesto de forma tal que brindaba
soporte al motor que efecta la limpieza de cabezales de impresin (pieza removida, ya que para
nuestro uso fue innecesaria).
Como no coincida la distancia del electroimn a la barra donde se producen los golpes se le coloc
una especie de suplemento formado por un acrlico de 5 mm de espesor, de forma tal que se acople
entre el electroimn y el soporte, permitiendo una sujecin fuerte y a su vez retirando el electroimn
lo deseado.
21
1 - soporte acrlico.
2- soporte electroimn.
3- electroimn.
22
PARTE ELECTRNICA
Comunicacin bidireccional mediante puerto paralelo
En este proyecto se elige utilizar puerto paralelo debido a que la transferencia de datos y las
velocidades en las que stas se realizan son adecuadas para nuestras necesidades, destacndose
adems la sencillez del protocolo de transmisin.
Tambin se elige esta opcin por ser uno de los puertos ms utilizados para la comunicacin entre
las PCs y las impresoras comunes. Esto quiere decir que la mayora de las PCs que existen hoy en
da poseen puerto paralelo y de esta manera nuestro proyecto podr adaptarse a casi cualquier
computadora personal que posea este tipo de puerto (que hoy en da son la mayora).
El nico problema que se encontr para la correcta configuracin del puerto paralelo fue que el Sistema
Operativo XP lo bloqueaba de manera tal que no poda ser accedido por el usuario. Por lo tanto para
solucionar este inconveniente debi copiarse el archivo inpout32.dll en el directorio
C:\Windows\System32.
Se trabaja la computadora en modo bidireccional ECP (Enhanced Capability Port) que puede,
como el EPP, leer y escribir a la velocidad del bus. Fue desarrollado por Microsoft y HewlettPackard. Se distingue por poseer capacidad de DMA, FIFO y compresin de datos RLE.
El puerto paralelo mediante el conector DB-25 provee la lectura-escritura (entrada-salida de
datos) con un nivel lgico de datos TTL, debemos saber como es la conexin porque el puerto
paralelo se puede daar y dejar daos irreparables en la Placa Madre de la PC.
El hardware del puerto paralelo est muy limitado en cuanto a su capacidad de manejo de corriente
y debemos cuidar la elevacin de la misma. Para que esto no suceda se utiliz un 74HCT245 que
ayuda a aislar el puerto y no permite retorno de corriente daina o superior a las que maneja el
puerto paralelo que son unos cuantos miliamperes.
23
La tensin de trabajo del puerto es de 5 voltios, por lo que necesitamos una fuente estabilizada o
regulada de tensin, esto es importante tenerlo en cuenta, ya que estaremos enviando seales al
puerto. Por otro lado, si bien se puede utilizar la PC para enviar seales al exterior sin necesitad de
una fuente externa, es recomendable utilizarla y as no se exige demasiado al puerto y se evitan
problemas.
Como se dijo antes, para proteger el puerto de corrientes dainas se utiliz el integrado 74HCT245
cuyos datos son los siguientes:
24
Este integrado tiene la ventaja de ser bidireccional, es decir todos los pin's A pueden
ser entradas y los B salidas si DIR (pin1 DR) se encuentra a nivel bajo (L), el modo
invertido se obtiene con DR a nivel alto. Si el terminal OE (pin 19) se encuentra a
nivel alto (H) el integrado pone los pin's A y B con alta impedancia, es decir ni entra
ni sale seal alguna, en ese caso el estado de DR no tiene importancia. En la
siguiente tabla se observan los nombres de los pines y sus funciones correspondientes.
En el siguiente esquema se puede observar la conexin entre el puerto paralelo y el buffer N1. En
dicho esquema no se representaron todos los pines del puerto, sino los correspondientes al puerto de
datos y los de masa, que son los que utilizamos para enviar datos desde la PC hacia el circuito de la
impresora
25
26
Con la parte electrnica no tenamos ms opcin que crear una plaqueta que tenga distintas
funciones:
27
28
29
Los motores paso a paso de imn permanente tienen las siguientes caractersticas constructivas:
El rotor est formado por un imn permanente, en forma de disco, y en cuya
superficie se encuentran mecanizados un determinado nmero de dientes.
El estator tienen forma cilndrica, y en su interior se encuentran diversos bobinados, que
al ser alimentados secuencialmente generan un campo magntico giratorio.
Como resultado de las fuerzas de atraccin-repulsin, el rotor se orientar dentro de este
campo magntico giratorio, lo que provocar su movimiento.
La conmutacin en la alimentacin de las bobinas tiene que ser manejada por un
controlador externo.
Los motores de imn permanente pueden ser clasificados en funcin del sentido de la intensidad que
recorre los bobinados en dos grupos:
1. MOTORES PAP BIPOLARES: estn formados por dos bobinas, y la intensidad que circula
por ellas invierte su sentido sucesivamente (de ah surge el nombre de bipolares). Se pueden
reconocer externamente porque presentan cuatro conductores, uno para cada extremo de una
bobina.
2. MOTORES PAP UNIPOLARES: en este caso el estator est formado por dos bobinas con tomas
intermedias, lo que equivale a cuatro bobinas. Las tomas intermedias de las dos bobinas pueden estar
interconectadas en el interior o no. Externamente se apreciarn cinco conductores en el primer caso, y
seis en el segundo. La forma de alimentar este motor consiste en poner a masa la toma central e ir
aplicando segn una secuencia determinada pulsos de valor +V a un extremo de la bobina y al otro. De
tal manera que la intensidad que circula por cada media bobina siempre lo hace en el mismo sentido, por
eso se denominan unipolares.
30
Se puede conseguir una resolucin mayor si entre paso y paso dejamos una bobina sin alimentar. A
continuacin se muestra la secuencia de excitacin de bobinas para el funcionamiento de un motor
unipolar en modo medio paso.
31
32
TEORA DE FUNCIONAMIENTO
La impresora Braille consiste de dos partes fundamentales: el software de control y la impresora
propiamente dicha.
El software de control, realizado en Visual Basic 6, es un programa que consta de una pantalla
principal que permite ingresar un texto ya sea ingresndolo por teclado o bien cargando un archivo
.txt con el texto que se desee imprimir, el cual puede ser creado con cualquier edito de texto.
Una vez ingresado el texto que se quiere imprimir, se procede a presionar un botn, incluido en el
programa tambin, el cual pasa el texto por un filtro que elimina los caracteres no contemplados
en el cdigo Braille. Luego se le agregan los caracteres especiales de cdigo Braille como por
ejemplo los caracteres que anteceden las letras maysculas, nmeros, etc.
En el siguiente paso se divide el texto modificado en renglones que permiten solo 31 caracteres,
donde las palabras nunca se cortan en el final de dicho rengln para una mejor interpretacin del
lenguaje. Por lo tanto las palabras que deberan ser cortadas pasan al siguiente rengln. A
continuacin el programa invierte el texto haciendo un espejado del mismo. Esto se debe a que la
impresin Braille se realiza del lado opuesto al de la lectura del texto. Luego de esto a cada uno de
los caracteres del texto le corresponde una matriz de 2 columnas y 3 filas, la cual est compuesta
por ceros (0) y unos (1) ubicados en dicha matriz segn le corresponda a cada carcter. Esto se hace
para lograr una equivalencia con el cdigo Braille ya que ste est compuesto por matrices de 2x3
cuyas componentes son puntos con relieve para que puedan ser interpretadas por las personas con
dificultades visuales severas. En nuestro caso un cero indicar que el electroimn no debe actuar y
un uno que si debe actuar. Por lo tanto luego de haber cambiado cada uno de los caracteres por su
correspondiente matriz se procede a agrupar todos los ceros y unos del primer rengln, segundo
rengln, etc. segn corresponda. Una vez codificado el texto en ceros y unos se envan estos datos y
algunos otros agregados por el puerto paralelo hacia la impresora propiamente dicha.
El software tambin consta de una barra de herramientas y un botn que detiene la ejecucin del
programa en caso de existir algn error.
EL hardware recibe los datos enviados por el puerto paralelo y stos pasan por un buffer de entrada.
De stos datos se podrn interpretar los que son seales para el motor paso a paso, el motor de
corriente continua y el electroimn.
Los datos que van al motor paso a paso, salen del buffer de entrada y entran en un amplificador de
corriente. Esto se hace para que la corriente que entra al motor sea la suficiente para que ste se
mueva con un torque adecuado, el cual se traduce en el movimiento del rodillo que mueve las hojas
a travs de la impresora.
Los datos correspondientes al motor de CC son enviados directamente a un puente H donde se
controla el sentido de giro del motor segn sea necesario. Este movimiento, mediante modulacin
por ancho de pulso se aplica a un carro donde se encuentran la punta y el electroimn que marcaran
las hojas. Dicho carro se mueve a lo largo de la impresora. Asi se completa la secuencia de unos y
ceros para terminar la impresin y girar el rodillo hasta sacar la hoja. Una vez que se termina la
extraccin de la hoja impresa se dispone del programa para, de ser necesario, realizar otra
impresin.
33
CIRCUITOS O DIAGRAMAS
34
Se puso esta "vista preliminar" para corroborar que el archivo abierto es el que realmente se quiere
imprimir.
Abajo del texto aparecen 3 botones. Imprimir, Volver (vuelve al menu anterior) y PARAR (el boton
se activa solamente cuando se da la orden de imprimir).
En esta imagen est imprimiendo. En el extremo inferior derecho aparece "IMPRIMIENDO" como
indicador.
35
Boton PARAR
Esta funcin es vital para interrumpir la ejecucin de la impresin. Esta funcin se activa cuando se
presiona un botn llamado "PARAR" que se encuentra en la parte inferior del men de impresin.
Una vez presionado este botn se pausa la impresin y aparece un cartel que dice
EL PROCESO SE DETUVO. Desea interrumpir la operacin?
Si uno acepta se saca la hoja y la impresin termina. Si uno cancela la operacin se retoma la
impresin en el punto donde estaba y contina normalmente.
IMPRESION SATISFACTORIA
Si la impresion termina sin inconvenientes lo indica como se ve en la imagen.
Al presionar el boton Aceptar se vuelve al menu principal por si el usuario desea realizar otra
impresin o salir del programa.
36
Programacin
En modulo1.bas se puede ver la declaracin de variables pblicas usadas en varios formularios
como as tambin la utilizacin de diferentes libreras necesarias para el funcionamiento de algunas
funciones.
Ver anexo (programa).
Principal.bas contiene las sentencias para que los datos se conviertan en movimientos de motores y
electroimn.
De esta manera (que se cuenten las transiciones de negro a blanco y no solamente de cambio de
estado alto a bajo) se lograron corregir los pequeos errores de posicionamiento. Cabe destacar que
este fino control se realiza en un motor de corriente continua, mediante una modulacin por ancho
de pulso. Se plante una relacin de compromiso con el fin de sacrificar velocidad y obtener el
mximo rendimiento en control minimizando el error de posicionamiento. Esto se logr con un
ciclo de trabajo menor al 10 %.
t on
4ms
4ms
0.0909 9%
t on t off
4ms 40ms 44ms
38
Funcin detener:
Esta funcin es vital para interrumpir la ejecucin de la impresin. Esta funcin se activa cuando se
presiona un botn llamado "PARAR" que se encuentra en la parte inferior del men de impresin.
Una vez presionado este botn se pausa la impresin y aparece un cartel que dice
EL PROCESO SE DETUVO. Desea interrumpir la operacin?
39
Funcin TESTEO:
Esta funcin se cre con el fin de comprobar el funcionamiento correcto de la impresora, prueba los
sensores de fin de carrera, la grilla, el electroimn, el motor paso a paso y el motor de corriente
continua. El proceso es muy sencillo. Primero se mueve el carro hacia la izquierda brevemente, esto
lo hace para separarlo del sensor por si se encontrara en contacto. Luego se posiciona contra el
sensor derecho, y despus vuelve hacia la izquierda con velocidad hasta el sensor izquierdo (se hace
as para activar una traba mecnica que permite que con el mismo motor que avanza la hoja se
puedan levantar las hojas de la bandeja y las tome correctamente), toma una hoja, luego el cabezal
se mueve hacia la derecha y vuelve hasta la izquierda para liberarse de la traba mecnica; ahora
coloca la hoja a la atura de la primer lnea de impresin, el cabezal avanza 80 lneas para
posicionarse en el punto donde se comienza a golpear. Comienza a golpear en cada lnea de la grilla
encontrada y cuenta 60 posiciones, finalizado esto avanza la hoja un rengln y golpea de izquierda a
derecha con cada lnea 60 veces, llega al final, avanza un rengln y vuelve a repetir el proceso. Esto
lo repite 5 veces con el fin de encontrar algn punto fuera de la lnea del margen, de ser as indica
que la grilla no se pudo leer correctamente.
Ejemplos de impresin:
40
En la fig.1 se ve una impresion correcta, en la fig. 2 se ve que al volver de un rengln fall un punto
(circulo rojo -posiblemente no se distingue un negro en la grilla-). Al finalizar el rengln se ve que
pone 1 punto fuera de lugar (crculo azul), como el error es acumulativo se mantiene al bajar al
rengln siguiente.
Para corroborar el correcto funcionamiento, al finalizar el test, los puntos del primer rengln y del
ltimo deben estar alineados.
PRESUPUESTO
Los datos fueron recopilados de Internet (deremate.com, mercadolibre.com), service oficial (Carlos
Amor Servicio Tcnico), Negocio de Computacin (Rei).
Item
Impresora HP 640 c
Kit de mantenimiento
Barilla tensora
goma
tornillos/arandelas/tuercas
sensores
optoacoplador
plaqueta
punzn
grilla impresa
lapicera
cinta/termocontrable
total
Costo
140
1150
45
20
12
21
2
72
12
2
2,5
9
1487,5
41
fig. 1
En la fig. 1 dice BRAILLE!
fig. 2
fig. 3
42
IMGENES (ANEXO)
43
PROGRAMA
---------------MODULO1.BAS----------------------Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
ruta As String
renglon As Integer
textoagregado1 As String
textoagregado2 As String
espaciado As String
invertido As String
linea1 As String
linea2 As String
linea3 As String
bandera As Integer
detiene As Integer
detenertest As Integer
volver As Integer
llama_final As Integer
--------------FIN-MODULO1.BAS-----------------------
End Sub
Private Sub Command1_Click()
StatusBar1.Panels.Add , "Impresion", "Imprimiendo trabajo.....", sbrText, LoadPicture(App.Path &
"\imagenimpresora2.jpg")
StatusBar1.Panels(1).AutoSize = sbrContents
label1.Caption = "IMPRIMIENDO"
44
mayusculas = 0
numero = 0
For b = 1 To Len(Text1.Text)
X = Mid$(Text1.Text, b, 1)
If (X >= "a" And X <= "z") Or (X >= "A" And X <= "Z") Or (X >= "0" And X <= "9") Or (X = "
") Or (X = "") Or (X = "") Or (X = "") Or (X = "") Or (X = "") Or (X = "") Or (X = "") Or (X
= "") Or (X = "") Or (X = "") Or (X = "") Or (X = ".") Or (X = ",") Or (X = ";") Or (X = ":") Or
(X = "-") Or (X = "(") Or (X = ")") Or (X = "") Or (X = "?") Or (X = "") Or (X = "!") Or (X = "'")
Or (X = Chr$(10)) Or (X = Chr$(13)) Then
filtro_caracter = filtro_caracter + X
End If
Next b
cant_caracteres = Len(filtro_caracter)
texto = filtro_caracter
For a = 1 To cant_caracteres
letra = Mid(texto, a, 1)
Select Case letra
Case "a" To "z"
If numero = 1 Then
textoagregado1 = textoagregado1 + "%"
mayusculas = 0
numero = 0
cont_mayusculas = 0
End If
textoagregado1 = textoagregado1 + letra
Case "A" To "Z"
cont_mayusculas = cont_mayusculas + 1
If mayusculas = 1 Then
textoagregado1 = textoagregado1 + letra
End If
If mayusculas = 0 Then
textoagregado1 = textoagregado1 + "$"
textoagregado1 = textoagregado1 + letra
posicin = a
mayusculas = 1
numero = 0
End If
Case " "
textoagregado1 = textoagregado1 + letra
mayusculas = 0
numero = 0
cont_mayusculas = 0
Case "0" To "9"
If numero = 1 Then
textoagregado1 = textoagregado1 + letra
End If
If numero = 0 Then
textoagregado1 = textoagregado1 + "#"
textoagregado1 = textoagregado1 + letra
mayusculas = 0
numero = 1
End If
cont_mayusculas = 0
Case Chr$(10)
textoagregado1 = textoagregado1 + Chr$(10)
mayusculas = 0
numero = 0
Case Chr$(13)
textoagregado1 = textoagregado1 + Chr$(13)
45
Call mayuscula
End Function
Private Function mayuscula()
For a = 1 To Len(textoagregado1)
X = Mid$(textoagregado1, a, 1)
If X = "$" Then
Y = Mid$(textoagregado1, a + 1, 1)
z = Mid$(textoagregado1, a + 2, 1)
If Y <> " " And (z >= "A" And z <= "Z") Then
X = X + "$"
End If
End If
textoagregado2 = textoagregado2 + X
Next a
Call separarenglon
End Function
Private Function separarenglon()
cont_30 = 0
ult_esp = 0
a = 0
cant_caracteres3 = Len(textoagregado2)
pri_esp = 0
mul = 0
mitexto = ""
dif_esp = 0
a = 0
If cant_caracteres3 <= 30 Then
For d = 1 To cant_caracteres3
X = Mid$(textoagregado2, d, 1)
If X = Chr$(13) Then
cont_enter = d
dif_esp = d - pri_esp - 1
textomacho = Mid(textoagregado2, (pri_esp + 1), dif_esp)
espaciado = espaciado + textomacho
For c = Len(textomacho) To 30
espaciado = espaciado + " "
Next c
espaciado = espaciado + Chr$(13) & Chr$(10)
pri_esp = d + 1
End If
Next d
dif_esp_fin = cant_caracteres3 - cont_enter
If dif_esp_fin >= 1 Then
textomacho = Mid(textoagregado2, (cont_enter + 1), dif_esp_fin)
espaciado = espaciado + textomacho
For e = Len(textomacho) To 30
espaciado = espaciado + " "
Next e
End If
End If
46
If X = Chr$(13) Then
dif_esp = a - pri_esp - 1
textomacho = Mid(textoagregado2, (pri_esp + 1), dif_esp)
espaciado = espaciado + textomacho
esp_faltantes = 31 - Len(textomacho)
For b = 1 To esp_faltantes
espaciado = espaciado + " "
Next b
espaciado = espaciado + Chr$(13) & Chr$(10)
pri_esp = a + 1
cont_30 = 0
ult_esp = a + 1
final_esp = ult_esp
End If
esp_faltantes = 31 - Len(textomacho)
For b = 1 To esp_faltantes
espaciado = espaciado + " "
Next b
Call inversor
End Function
Private Function inversor()
re = ""
For a = 1 To Len(espaciado)
X = Mid$(espaciado, a, 1)
47
Case "b"
linea1 = linea1 + "01"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "c"
linea1 = linea1 + "11"
linea2 = linea2 + "00"
linea3 = linea3 + "00"
Case "d"
linea1 = linea1 + "11"
linea2 = linea2 + "10"
linea3 = linea3 + "00"
Case "e"
linea1 = linea1 + "01"
linea2 = linea2 + "10"
linea3 = linea3 + "00"
Case "f"
linea1 = linea1 + "11"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "g"
linea1 = linea1 + "11"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
48
Case "h"
linea1 = linea1 + "01"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "i"
linea1 = linea1 + "10"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "j"
linea1 = linea1 + "10"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "k"
linea1 = linea1 + "01"
linea2 = linea2 + "00"
linea3 = linea3 + "01"
Case "l"
linea1 = linea1 + "01"
linea2 = linea2 + "01"
linea3 = linea3 + "01"
Case "m"
linea1 = linea1 + "11"
linea2 = linea2 + "00"
linea3 = linea3 + "01"
Case "n"
linea1 = linea1 + "11"
linea2 = linea2 + "10"
linea3 = linea3 + "01"
Case ""
linea1 = linea1 + "11"
linea2 = linea2 + "11"
linea3 = linea3 + "10"
Case "o"
linea1 = linea1 + "01"
linea2 = linea2 + "10"
linea3 = linea3 + "01"
Case "p"
linea1 = linea1 + "11"
linea2 = linea2 + "01"
linea3 = linea3 + "01"
Case "q"
linea1 = linea1 + "11"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "r"
linea1 = linea1 + "01"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "s"
linea1 = linea1 + "10"
linea2 = linea2 + "01"
linea3 = linea3 + "01"
Case "t"
linea1 = linea1 + "10"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "u"
linea1 = linea1 + "01"
linea2 = linea2 + "00"
linea3 = linea3 + "11"
49
'MAYUSCULAS
Case "A"
linea1 = linea1 + "01"
linea2 = linea2 + "00"
linea3 = linea3 + "00"
Case "B"
linea1 = linea1 + "01"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "C"
linea1 = linea1 + "11"
linea2 = linea2 + "00"
linea3 = linea3 + "00"
Case "D"
linea1 = linea1 + "11"
linea2 = linea2 + "10"
linea3 = linea3 + "00"
Case "E"
linea1 = linea1 + "01"
linea2 = linea2 + "10"
linea3 = linea3 + "00"
Case "F"
linea1 = linea1 + "11"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "G"
linea1 = linea1 + "11"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "H"
linea1 = linea1 + "01"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "I"
linea1 = linea1 + "10"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "J"
linea1 = linea1 + "10"
linea2 = linea2 + "11"
50
Case "O"
linea1 = linea1 + "01"
linea2 = linea2 + "10"
linea3 = linea3 + "01"
Case "P"
linea1 = linea1 + "11"
linea2 = linea2 + "01"
linea3 = linea3 + "01"
Case "Q"
linea1 = linea1 + "11"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "R"
linea1 = linea1 + "01"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "S"
linea1 = linea1 + "10"
linea2 = linea2 + "01"
linea3 = linea3 + "01"
Case "T"
linea1 = linea1 + "10"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "U"
linea1 = linea1 + "01"
linea2 = linea2 + "00"
linea3 = linea3 + "11"
Case "V"
linea1 = linea1 + "01"
linea2 = linea2 + "01"
linea3 = linea3 + "11"
Case "W"
linea1 = linea1 + "10"
linea2 = linea2 + "11"
linea3 = linea3 + "10"
Case "X"
linea1 = linea1 + "11"
linea2 = linea2 + "00"
linea3 = linea3 + "11"
51
Case "Y"
linea1 = linea1 + "11"
linea2 = linea2 + "10"
linea3 = linea3 + "11"
Case "Z"
linea1 = linea1 + "01"
linea2 = linea2 + "10"
linea3 = linea3 + "11"
'OTROS
Case Chr$(10) '
linea1 = linea1
linea2 = linea2
linea3 = linea3
Case "
linea1
linea2
linea3
ENTER
+ "-*"
+ "-*"
+ "-*"
"
= linea1 + "00"
= linea2 + "00"
= linea3 + "00"
Case "$"
linea1 =
linea2 =
linea3 =
'simbolo
linea1 +
linea2 +
linea3 +
mayus
"10"
"00"
"10"
Case "#"
linea1 =
linea2 =
linea3 =
'simbolo
linea1 +
linea2 +
linea3 +
numero
"10"
"10"
"11"
Case ","
linea1 = linea1 + "00"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "."
linea1 = linea1 + "00"
linea2 = linea2 + "00"
linea3 = linea3 + "01"
Case ";"
linea1 = linea1 + "00"
linea2 = linea2 + "01"
linea3 = linea3 + "01"
Case ":"
linea1 = linea1 + "00"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "-"
linea1 = linea1 + "00"
linea2 = linea2 + "00"
linea3 = linea3 + "11"
Case ""
linea1 = linea1 + "00"
linea2 = linea2 + "01"
linea3 = linea3 + "10"
Case "?"
linea1 = linea1 + "00"
linea2 = linea2 + "01"
linea3 = linea3 + "10"
Case ""
linea1 = linea1 + "00"
linea2 = linea2 + "11"
linea3 = linea3 + "01"
Case "!"
linea1 = linea1 + "00"
52
Case ")"
linea1 = linea1 + "10"
linea2 = linea2 + "10"
linea3 = linea3 + "01"
'NUMEROS
Case "1"
linea1 = linea1 + "01"
linea2 = linea2 + "00"
linea3 = linea3 + "00"
Case "2"
linea1 = linea1 + "01"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "3"
linea1 = linea1 + "11"
linea2 = linea2 + "00"
linea3 = linea3 + "00"
Case "4"
linea1 = linea1 + "11"
linea2 = linea2 + "10"
linea3 = linea3 + "00"
Case "5"
linea1 = linea1 + "01"
linea2 = linea2 + "10"
linea3 = linea3 + "00"
Case "6"
linea1 = linea1 + "11"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "7"
linea1 = linea1 + "11"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "8"
linea1 = linea1 + "01"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
Case "9"
linea1 = linea1 + "10"
linea2 = linea2 + "01"
linea3 = linea3 + "00"
Case "0"
linea1 = linea1 + "10"
linea2 = linea2 + "11"
linea3 = linea3 + "00"
'letras con acento
Case ""
53
Case ""
linea1 = linea1 + "10"
linea2 = linea2 + "01"
linea3 = linea3 + "11"
Case ""
linea1 = linea1 + "10"
linea2 = linea2 + "00"
linea3 = linea3 + "01"
Case ""
linea1 = linea1 + "10"
linea2 = linea2 + "00"
linea3 = linea3 + "11"
Case ""
linea1 = linea1 + "10"
linea2 = linea2 + "11"
linea3 = linea3 + "11"
Case ""
linea1 = linea1 + "01"
linea2 = linea2 + "11"
linea3 = linea3 + "10"
End Select
Next a
cant_caracteres = Len(Texto1)
a = 0
noentra = 0
mitexto = Texto1
texto = ""
'-------------------------------b = 1
For a = 1 To renglon
X = Mid$(Texto1, b, 62)
texto = texto + X
X = Mid$(texto2, b, 62)
texto = texto + X
X = Mid$(texto3, b, 62)
texto = texto + X
b = b + 62
DoEvents
If detiene = 1 Then
54
55
56
Val(16)
Val(32)
Val(8)
Val(64)
cont = cont + 1
End If
57
For a = 1 To 350
Out Val(888), Val(16)
Sleep 5
Out Val(888), Val(32)
Sleep 5
Out Val(888), Val(8)
Sleep 5
Out Val(888), Val(64)
Sleep 5
DoEvents
If detiene = 1 Then
Call detener
End If
Next a
Out Val(888), Val(0)
Sleep 10
cartel = MsgBox("El Proceso de impresion se realizo correctamente", vbInformation + vbOKOnly,
"Informacion")
End Function
Private Function posic_ini()
'izquierda (888) 1
'derecha (888) 2
' --------------------------------------------------------------------------Out Val(888), Val(1)
Sleep 50
Out Val(888), Val(0)
Sleep 10
58
Val(17)
Val(33)
Val(9)
Val(65)
DoEvents
If detiene = 1 Then
Call detener
End If
Next a
Out Val(888),
Sleep 10
Out Val(888),
Sleep 500
Out Val(888),
Sleep 10
Out Val(888),
Sleep 500
Out Val(888),
Sleep 100
Val(0)
Val(2)
Val(0)
Val(1)
Val(0)
For a = 1 To 80
Out Val(888), Val(16)
59
End Function
Private Function detener()
label1.Caption = ""
a = MsgBox("
EL PROCESO SE DETUVO" + vbCrLf + vbCrLf + "Desea interrumpir la operacin?",
vbExclamation + vbOKCancel, "Salir")
DoEvents
If a = 1 Then
Command1.Enabled
Command2.Enabled
Command3.Enabled
label1.Caption =
= False
= False
= False
"ESPERE MIENTRAS SACA LA HOJA"
StatusBar1.Panels.Clear
StatusBar1.Panels.Add , "Impresion Abortada", "Sacando hoja.....", sbrText,
LoadPicture(App.Path & "\imagenimpresora3.jpg")
StatusBar1.Panels(1).AutoSize = sbrContents
For l = 1 To 400
Out Val(888), Val(16)
Sleep 10
Out Val(888), Val(32)
60
------------------FIN-PRINCIPAL.BAS------------------
----------------FUNCION-PRIVADA-TESTEO---------------
61
Val(17)
Val(33)
Val(9)
Val(65)
DoEvents
If detenertest = 1 Then
Call detener_test
End If
Next a
Out Val(888),
Sleep 10
Out Val(888),
Sleep 500
Out Val(888),
Sleep 10
Out Val(888),
Sleep 500
Out Val(888),
Sleep 100
Val(0)
Val(2)
Val(0)
Val(1)
Val(0)
62
For a = 1 To 80
Out Val(888), Val(16)
Sleep 5
Out Val(888), Val(32)
Sleep 5
Out Val(888), Val(8)
Sleep 5
Out Val(888), Val(64)
Sleep 5
DoEvents
If detenertest = 1 Then
Call detener_test
End If
Next a
Out Val(888), Val(1)
Sleep 20
Out Val(888), Val(0)
Sleep 10
' --------------------------------------------------------------------------'Avanza 80 pasos hacia la derecha y se posiciona para empezar
cont = 0
co = 80
Do
Out Val(888), Val(2)
Sleep 5
Out Val(888), Val(0)
Sleep 10
opto2 = Inp(889)
opto3 = opto2 And 16
If opto3 = 16 Then
opt1 = 1
End If
If (opto3 = 0) And (opt1 = 1) Then
opt2 = 1
End If
If (opt1 = 1) And (opt2 = 1) Then
opt1 = 0
opt2 = 0
'Sleep 100
'Out Val(888), Val(4)
'Sleep 10
'Out Val(888), Val(0)
'Sleep 100
cont = cont + 1
End If
DoEvents
If detenertest = 1 Then
Call detener_test
End If
Loop Until cont >= co
For vuelta = 1 To 5
'---------------------------------------------------------------'izquierda (888) 1
'derecha (888) 2
'avanza hacia la izquierda golpeando 60 veces
opt1 = 0
opt2 = 0
cont = 0
co = 60
Do
Out Val(888), Val(1)
63
End If
DoEvents
If detenertest = 1 Then
Call detener_test
End If
DoEvents
If detenertest = 1 Then
Call detener_test
End If
Next a
Out Val(888), Val(0)
Sleep 10
'--------------------------------------------------------------------'---------------------------------------------------------------'izquierda (888) 1
'derecha (888) 2
'avanza hacia la derecha golpeando 60 veces
opt1 = 0
opt2 = 0
cont = 0
co = 60
Do
Out Val(888), Val(2)
Sleep 5
64
End If
DoEvents
If detenertest = 1 Then
Call detener_test
End If
DoEvents
If detenertest = 1 Then
Call detener_test
End If
Next a
Out Val(888), Val(0)
Sleep 10
'--------------------------------------------------------------------Next vuelta
For l = 1 To 200
Out Val(888),
Sleep 10
Out Val(888),
Sleep 10
Out Val(888),
Sleep 10
Out Val(888),
Sleep 10
DoEvents
Val(16)
Val(32)
Val(8)
Val(64)
Next l
Out Val(888), Val(0)
Sleep 10
65
End Function
Private Sub Command1_Click()
detenertest = 1
End Sub
Private Sub Form_activate()
Form4.SetFocus
Call testeo
'Do While bandera = 0
'Sleep 100
'ProgressBar1.Value = ProgressBar1.Value + 1
'If ProgressBar1.Value >= 20 Then ProgressBar1.Value = 0
'DoEvents
' Loop
a = MsgBox("El Proceso de testeo se realizo correctamente", vbInformation + vbOKOnly,
"Informacion")
Unload Me
Form1.SetFocus
End Sub
Private Function detener_test()
For l = 1 To 400
Out Val(888),
Sleep 10
Out Val(888),
Sleep 10
Out Val(888),
Sleep 10
Out Val(888),
Sleep 10
DoEvents
Val(16)
Val(32)
Val(8)
Val(64)
Next l
Out Val(888), Val(0)
Sleep 10
End
Unload Me
detiene = 0
Form1.Show
Form1.Enabled = True
Form1.SetFocus
DoEvents
End Function
----------------FIN-FUNCION-PRIVADA-TESTEO---------------
66