RECUENTO DE CÉLULAS EN CÁMARA DE NEUBAUER
CÁLCULO DE RESULTADOS Y CASOS



Recuento celular:

Es la determinación total de número de células sanguíneas como hematíes leucocitos y plaquetas por unidad de volumen sanguíneo, se puede realizar por métodos automatizados o por métodos manuales utilizando cámara de Neubauer.

Principios y características de cámara de Neubauer

Es una placa base rectangular y gruesa de vidrio óptico especial, del tamaño de un portaobjeto, en el tercio medio se hallan cuatro ranuras fresadas longitudinales que transcurren en paralelo con respecto a los laterales cortos. Las dos superficies laterales más grandes están sin trabajar y sirven para la rotulación, el puente central y los dos puentes exteriores están rectificados planos y pulidos, la superficie del puente central es más profunda que los dos puentes exteriores, el puente central conocido como la profundidad de la cámara de neubauer están grabadas las redes o retículos grabados con diamante para el recuento de las partículas como células o elementos formes.

Cámara de neubauer:

La cámara de Neubauer se utiliza para determinar el número de células por unidad de volumen de un líquido, ejemplo: la cantidad de leucocitos, eritrocitos y plaquetas en un volumen de sangre u otras partículas como bacterias esporas del moho y cualquier tipo de recuento citológico, en suspensiones bajo el microscopio. Las células de nuestro interés se encuentran visualmente con un microscopio, la cámara de Neubauer o cámara de cuenta glóbulos, hematímetro o hemo- citómetro presenta un porta objeto de vidrio grueso, lleva grabadas en su superficie tres prismas paralelos, el prisma central está dividido en dos por un surco transversal y sobre dos mitades se ha trazado los retículos. Los prismas laterales están ligeramente elevados con una altitud de 0.1mm con respecto al prima central y el cubre objeto, el cubreobjeto y en donde se colocan la muestra diluida para efectuar el recuento.
El cubre hematímetro es un vidrio más delgado que se coloca sobre las primas laterales, en la imagen 1 se visualiza en corte longitudinal de como se ve la cámara Neubauer una vez colocado el cubrehematímetro o lámina cubre cámara propiamente dicho. Es así que existe una distancia de 0.1mm entre el cubre hematímetro y el prisma central donde están grabado el hematímetro que nos permite hacer el recuento de células de nuestro interés, presente en una muestra diluida ya sea en sangre, líquidos biológicos en una solución en el espacio que hay entre el prisma central de cámara de Neubauer y el cubre hematímetro se vamos a denominar la profundidad de volumen mm3.
Cuando se observa los retículos los retículos cuadriculados en microscopio se observa los 9 cuadrados y cada cuadrado tiene sus subdivisiones; cada uno de los nueve cuadrados grandes tiene una medida de 1mm de largo y 1mm de ancho, por lo que cada uno tiene una superficie de 1mm2. Los cuatro 4 cuadrados grandes de esquina señaladas
por los números 1, 3, 7 y 9 se utiliza para el recuento de leucocitos y espermatozoides, para realizar el contaje de dichas células se le debe realizar una dilución, es decir en un líquido Turk para los leucocitos.
De la misma forma el cuadrado central (5), está dividido en 25 (1, 2, 3, 4…25) cuadrados medianos, con aristas de 0.2mm y estando cada cuadrado mediano subdividido en dieciséis (16) cuadrados pequeños con aristas de 0.05mm; en cuadrado central se hace el recuento de eritrocitos, plaquetas y levaduras, contando los 5 cuadrados pequeños como se observa en la (figura 3).
  

Procedimiento en el recuento de leucocitos en cámara de Neubauer

Para el contaje de leucocitos se debe tener la muestra de sangre anticoagulada con EDTA (Etilendiaminotetraacético) en forma de sales sódica y potásica. El líquido de Turk para diluir la sangre es hipotónica lo que provoca la hemolisis de eritrocitos para que no interfiera en el recuento de leucocitos, el líquido de Turk consta de 2 mL de ácido acético glaciar, 1mL de genciana al 1% y agua destilada como solvente para 1000mL de solución.
Para hacer la dilución de sangre con el líquido de Turk en una proporción de 1 en 20 (1/20), es realizar con la pipeta de Thoma, el cual consiste en un tubo de vidrio del fondo blanco graduado en una escala de 11 subdivisiones iguales y que presenta un bulbo central, con una pequeña perla blanca en su interior, cada pipeta requiere una aspiración con un tubo de goma o pipeta de aspiración.
En primer lugar se llena la pipeta de Thoma con sangre hasta la marca de 0,5 volúmenes, luego se limpia con una gaza o papel toalla el excedente de la sangre, posteriormente se introduce la pipeta de Thoma a la solución de Turk previamente separada para evitar la contaminación  para evitar la contaminación al líquido, se absorbe hasta llegar a la marca de 11 volúmenes, no se debe dejar burbujas en este proceso porque puede alterar el recuento y la dilución; si fuese así volver a cargar siguiendo las paso ya mencionados.
Se tapa a ambos extremos con un Parafilm o con la mano luego se coloca en rotor automático o se hace manualmente, de 2 a 3 minutos. Con este procedimiento se realiza una dilución 1 en 20; ¿Por qué dilución 1 en 20?, es debido a que el 0,5 volumen de sangre se diluye en un volumen total de 10 volúmenes, sigo sin entender y pensaran ¿por qué no 1 en 11? Lo que pasa es que cuando terminamos de llenar hasta la marca de 11 volúmenes, desde la punta de pipeta hasta la marca de 1 volumen solo hay liquido de Turk, ya que la real dilución de la sangre ocurre en el bulbo, por lo que a 11 se le resta 1 volumen quedando como 10 volúmenes en total, eso quiere decir que el 1 volumen de sangre se está diluyendo en un volumen total de 20 volúmenes. Analizando con un método matemático simple llegamos que:


Si 0,5 volumen____________________se diluye en un volumen total de 10 volumenes
1 volumen___________________________________ de sangre en cuanto se diluiria?
(1 x 10)/(0,5)=20
Entonces la dilución seria 1 en 20.

Otra manera de hacer la dilución de sangre en liquido de Turk en una proporción 1 en 20 es haciendo la dilución en un tubo de ensayo, para el recuento de leucocitos en cámara de Neubauer se procede de la siguiente manera: se toma 0,38 mL (380 µL) de solución de Turk se coloca en una tubo de ensayo, por otro lado se toma 0,02mL (20 µL) de sangre total con una pipeta automática y se coloca en 380 µL de Turk, se mezcla esto hace que el líquido de Turk lise los eritrocitos y solamente quede en la solución los leucocitos que serán contadas en una cámara de Neubauer, en total de la dilución es 400uL que sería el volumen final de la dilución .

Si 20 uL de sangre____________________se diluye en un volúmen total de 400 uL
1 volumen___________________________________ de sangre en cuanto se diluiria?
(1 x 400)/(20µL )=20
Entonces la dilución sería 1 en 20.

Cuando multiplicamos 1 x 400 y dividimos entre 20 nos da 20, es decir que la dilución se hizo 1 en 20. En algunas ocasiones cuando el recuento de leucocitos es muy alto en los pacientes que tengan leucocitosis o menos cantidad de leucocitos en pacientes con leucopenia es necesario hacer diluciones mayores o menores dependiendo de las circunstancias en que se encuentran la densidad de leucocitos en un paciente. Sin embargo, el valor estándar para iniciar el conteo de leucocitos es en 1 en 20.
El siguiente paso es cargar a la cámara de neubauer la sangre diluida en la solución de Turk, para ello se emplea una pipeta automática o un capilar; si la dilución se hizo en una pipeta de Thoma se carga directamente pero antes sacar unas 4 gotas antes de llenar a la cámara de Neubauer, así de esta manera la dilución se distribuye en el hematímetro y cubrehematímetro por acción de la capilaridad en el espacio de 0,1mm de profundidad. La cámara de Neubauer consta de 2 hematímetro usualmente en la práctica clínica diaria uno de ellos se utiliza para el recuento de leucocitos de un paciente y el otro retículo para el otro paciente, dejar reposar en una cámara húmeda por 2 o 3 minutos para luego colocar en un microscopio para poder observar hematímetro las células o leucocitos que se encuentran distribuidas.

Observación de leucocitos en microscopio

Cuando colocamos la cámara de Neubauer en el microscopio se observa los retículos cuadriculados y que también sabemos que el conteo de leucocitos se hace en los cuatro (4) cuadrados de las esquinas (1, 3, 7 y 9), los cuales tienen 1mm x 1mm de superficie 1mm2. Cuando se observa en el microscopio la cámara de Neubauer la dilución con el líquido de Turk se observa las células y el contaje se hará en el sentido zig zag siguiendo en sentido de la flecha sin levantar los ojos del microscopio, se contará todas las células que se ubican en los cuadrados mencionados teniendo en cuenta e incluyendo el recuento de las células que se encuentran sobre las líneas.
Por ejemplo, en el cuadrado 1 contamos 20 células, en el 3er cuadrado 23 células, en 7 también 23 leucocitos y en 9 contamos 21 leucocitos; obteniendo 87 leucocitos quiere decir que hay 87 células en 4mm2 ya que cada cuadrado tiene 1mm x mm y como existe una altura de 0,1mm del prisma medio hacia el cubre objeto entonces el volumen total es 4mm2 x 0,1mm igual 0,4mm3, entonces tenemos 87 leucocitos en un volumen de 0,4 mm3.





Ahora calculemos el factor de estándar para el conteo de leucocitos; esto será igual a la superficie por la altura es igual a 0,4 mm3 entonces aplicamos análisis matemático simple:


Si N leucocitos ____________________se contaron en un volumen total de 0,4mm3
En un volúmen de 1mm3 cuantas celulas habrán ____________________________?

Número de células /mm3=(1〖mm〗^3  x N células )/(0,4〖mm〗^3 ) x dilución(20)
Multiplicamos lo siguiente para hallar el factor: 1mm3 x dilución (20) dividido entre volumen (0.4mm3)
Número de células /〖mm〗^3= 50
entoces el factor es 50; ahora para hallar el recuento total de leucocitos multiplicamos el factor por el numero de celulas contadas(N).
Número de células/〖mm〗^3=50 x 87
Obtenimos 4,350 leucocitos por mm3 o es lo mismo decir 4,350/uL
Otra fórmula  para deducir el factor para el recuento de leucocitos:



Recuento de GB = N x 50
Recuento de GB = 87 x 50 = 4.350 leu/mm3


Qué pasa si al hacer una dilución 1/20 y al observar en el microscopio observamos una cantidad mayor, células sobrepuestas y que no deja el recuento real. Ejemplo en los pacientes con leucocitosis, es tan grande el número de células y el contaje se dificulta como consecuencia error al contar y reporte con margen de error mayor a lo habitual. ¿qué hacer? La respuesta sería hacer una dilución mayor, entonces ¿Cómo hacer una dilución que deseamos?, ejemplo 1/100, que es mucho mayor que el 1/20. Para ello realizamos lo siguiente: escoger un volumen de sangre para diluir, en este caso 20uL de sangre total luego lo multiplicamos el volumen de sangre por la dilución, (20uL x 100 = 2000uL) y esto sería el volumen final(2000uL) luego vamos a restar al volumen total el volumen de sangre (2000ul – 20uL = 1980uL) quiere decir que el 1980 es el volumen del diluyente, el líquido de Turk, entonces se hace para hacer una dilución 1/100 colocando 20uL de sangre con 1980uL de diluyente Turk y luego se realiza los mismos pasos de cargar la dilución en la cámara de Neubauer y observamos en el microscopio la densidad leucocitaria ha disminuido y el cual se podría decir que se puede contar leucocitos.



En el ejemplo anterior se hizo una dilución 1/20 y al observar en el microscopio no se podía realizar el recuento celular de manera normal y luego se hizo una dilución 1/100 y al observar se observa poca densidad leucocitaria, el cual podemos realizar el recuento con normalidad o sea sin dificultad, como el caso era leucocitosis se contaron los siguientes números en los 4 cuadrados, 25, 28, 26 y 29 dando como resultado 108 leucocitos. Cuando diluciones mayores o menores el factor de dilución será diferente, aplicando los mismos pasos anteriores para hallar el factor llegamos a un factor de 250. Entonces multiplicamos con el número de leucocitos contados (250 x 108 = 27,000 cel./mm3). Si hablamos de una leucopenia entonces la dilución será menor que la dilución estándar 1/20, y el factor también será diferente.

CAPÍTULO II

RECUENTO DE ERITROCITOS EN CÁMARA DE NEUBAUER

Para el contaje de eritrocitos se debe tener la muestra de sangre anticoagulada con EDTA (Etilendiaminotetraacético) en forma de sales sódica y potásica. El líquido de Hayem, SSF para diluir la sangre es isotónica lo que provoca la hemólisis de leucocitos para que no interfiera en el recuento de eritrocitos.
Para hacer la dilución de sangre con el líquido de Hayem en una proporción de 1 en 200 (1/200), es realizar con la pipeta de Thoma, el cual consiste en un tubo de vidrio del fondo rojo graduado en una escala de 101 subdivisiones iguales y que presenta un bulbo central, con una pequeña perla roja en su interior, cada pipeta requiere una aspiración con un tubo de goma o pipeta de aspiración.
En primer lugar se llena la pipeta de Thoma con sangre hasta la marca de 0,5 volúmenes, luego se limpia con una gaza o papel toalla el excedente de la sangre, posteriormente se introduce la pipeta de Thoma al diluyente en este caso el Hayem previamente separada para evitar la contaminación, se absorbe hasta llegar a la marca de 101 volúmenes, no se debe dejar burbujas en este proceso porque puede alterar el recuento y la dilución; si fuese así volver a cargar siguiendo las paso ya mencionados.
Se tapa a ambos extremos con un Parafilm o con la mano, luego se coloca en rotor automático o se hace manualmente de 2 a 3 minutos. Con este procedimiento se realiza una dilución 1 en 200; ¿Por qué dilución 1 en 200?, es debido a que el 0,5 volumen de sangre se diluye en un volumen total de 100 volúmenes, ustedes pensarán ¿por qué no 1 en 101? Lo que pasa es que cuando terminamos de llenar hasta la marca de 101 volúmenes, desde la punta de pipeta hasta la marca de 1.0 volumen solo hay diluyente, ya que la real dilución de la sangre ocurre en el bulbo, por lo que a 101 se le resta 1 volumen quedando como 100 volúmenes en total, eso quiere decir que el 1 volumen de sangre se está diluyendo en un volumen total de 200 volúmenes. Analizando con un método matemático simple llegamos que:

Si 0,5 volumen____________________se diluye en un volumen total de 101 volumenes
1 volúmen___________________________________ de sangre en cuanto se diluiria?
(1 x 100)/(0,5)=200
Entonces la dilución seria 1 en 200.

El siguiente paso es cargar a la cámara de neubauer la sangre diluida en la solución de Hayem, para ello se emplea una pipeta automática o un capilar; si la dilución se hizo en una pipeta de Thoma se carga directamente pero antes sacar unas 4 gotas antes de llenar a la cámara de Neubauer, así de esta manera la dilución se distribuye en el hematímetro y cubrehematímetro por acción de la capilaridad en el espacio de 0,1mm de profundidad. La cámara de Neubauer consta de 2 hematímetro usualmente en la práctica clínica diaria uno de ellos se utiliza para el recuento de leucocitos de un paciente y el otro retículo para el otro paciente, dejar reposar en una cámara húmeda por 2 o 3 minutos para luego colocar en un microscopio para poder observar hematímetro las células o leucocitos que se encuentran distribuidas.

Observación  de eritrocitos en el microscopio

Cuando colocamos la cámara de Neubauer en el microscopio se observa los retículos cuadriculados y que también sabemos que el conteo de eritrocitos se hace en 5 cuadrados medianos del centro (a, b, c, d y e), los cuales tienen una superficie 0,4mm2 (0,2 x 0,2 =0,4). Cuando se observa en el microscopio la cámara de Neubauer en la dilución se observa las células y el contaje se hará en el sentido zig zag siguiendo en sentido de la flecha sin levantar los ojos del microscopio, se contará todas las células que se ubican en los cinco cuadrados centrales mencionados, teniendo en cuenta e incluyendo el recuento de las células que se encuentran sobre las líneas en forma de L.
Por ejemplo, en el cuadrado (a) contamos 90 células, en el (b) cuadrado 93 células, en (c) también 92 leucocitos, en (d) contamos 91 y en (e) contamos (94) eritrocitos; obteniendo 460 eritrocitos, quiere decir que hay 460 células en 0,04mm2 ya que cada cuadrado tiene 0.2mm x 0,2mm y como existe una altura de 0,1mm del prisma central de la cámara de Neubauer hacia el cubre objeto entonces el volumen total es 0.2mm2 x 0,1mm igual 0,02mm3, entonces tenemos 460 eritrocitos en un volumen de 0,02 mm3.



Ahora calculemos el factor de estándar para el conteo de eritrocitos; esto será igual a la superficie por la altura es igual a 0,02mm3 entonces aplicamos análisis matemático simple:

Si N eritrocitos ____________________se contaron en un volúmen total de 0,02mm3
En un volúmen de 1mm3 cuantas células habrán ____________________________?

Número de células /mm3=1〖mm〗^3 x N células 0,02mm3x dilución(200)
Multiplicamos lo siguiente para hallar el factor: 1mm3 x dilución (200) divido por volumen(0.02mm3)
Número de células /mm3= 10,000
Entoces el factor es 10,000; ahora para hallar el recuento total de eritrocitos multiplicamos el factor con el número de células contadas(N).
Número de células/〖mm〗^3=10,000 x 460
Obtenimos 4,600 000 eritrocitos por mm3 o es lo mismo decir 4,600 000/mm3 = (4,6 x 106)cel/uL

Otra fórmula para deducir el factor de dilución para el recuento de eritrocitos haciendo la inversa de:

Recuento de GR=N (5 x 0,04〖mm〗^2 )  1/10 x (0.5)/100
Recuento de GR=N x 4 x 1/10 x   (0.5)/100  x 2
Recuento de GR=N x 4 x 1/10 x 1/200 
Recuento de GR = N x 10,000
Recuento de GR = 460 x 10,000 = 4.600 000 erit./mm3


Otra forma de calcular el recuento de leucocitos es aplicando esta fórmula que también esta aceptado universalmente.
Hallando la fórmula llegaremos a la misma cantidad de eritrocitos contados por mm3

CAPÍTULO III

RECUENTO DE PLAQUETAS EN CÁMARA NEUBAUER

Las plaquetas circulantes son células inactivas en forma de disco, con superficies lisas, después de una lesión se produce cambios que afecta su morfología y bioquímica activándolas, las cuales son capaces de crear un tapón hemostático primario. Las plaquetas en forma de disco se transportan en protrusiones filamentosas largas y delgadas lo cual sugiere contracción activa, la adherencia de plaquetas en si la agregación, se presenta normalmente en la hemostasia, pero también en trombosis, pueden producir in vitro, activándose por las sustancias químicas conocidas como ATP, adrenalina, serotonina, ácido araquidónico y trombina, ellos participan tanto en la hemostasia primaria como en secundaria, es decir en el proceso de la coagulación.
El megacariocito es células madres que forman parte de las células hematopoyético en la medula osea y en otros tejidos, se trata de una célula muy grande con un 30 µm de diámetro y la participación de megacariocito en la hematopoyesis se limita la producción de plaquetas o trombocitos. Para formar las plaquetas los megacariocitos liberan fragmentos de su citoplasma directamente a un bazo sinusoide, es decir, un bazo poroso transportando así a la circulación sanguínea.
Para poder entender el uso de la cámara de Neubauer y el recuento de plaquetas primero saber las dimensiones de la cámara, necesitamos sangre anticoagulada con EDTA, solución de oxalato de amonio al 1%, es decir un gramo de oxalato de amonio por cada 1000 mL de solución; o es lo mismo 10 gramos de oxalato de amonio por cada litro de solución.
Para hacer la dilución con oxalato de amonio y posteriormente hacer conteo de plaquetas en cámara de Neubauer se trabaja de la siguiente manera:
Agregar 1,98 mL (1980µL) de solución de oxalato de amonio en un tubo de ensayo, luego con la ayuda de una pipeta automática se agrega 0.02mL (20µL) de sangre total, mezclar y se deja reposar para que lisen a los eritrocitos que pueden interferir en el recuento, haciendo esta dilución obtenemos 2mL que es el volumen total. Aplicando análisis matemático simple hallamos el factor de la dilución.

Si 20µL  de sangre ____________________se diluye en un volumen total de 2000µL
1 volúmen___________________________________ de sangre en cuanto se diluiria?
(1vol x 2000µL)/(20µL)=100vol
Entonces la dilución seria 1 en 100.

Se monta la cámara de Neubauer con ayuda de una pipeta automática y dejar en el reposo por 10 minutos en una cabina húmeda para que la muestra cargada en la cámara de Neubauer no se seque, en este proceso las plaquetas se sedimentan en fondo y mejora la visualización y el contaje; la cámara húmeda consiste en una placa Petri con un papel de filtro humedecido con agua destilada.
Posteriormente se lee con el objetivo de 40x contando las plaquetas; si se compara el tamaño de las plaquetas con los leucocitos, es evidente que las plaquetas son más pequeñas que el leucocito (7 – 15 µm de leucocitos y 2 – 3 µm de plaquetas). Con solución de oxalato de amonio en el microscopio las plaquetas se observan como corpúsculos redondeados de tamaño relativamente pequeño y muy refringentes, procurar no confundir con restos eritrocitarios sobre todo con partículas de polvo. Para el contaje de plaquetas se usa el cuadrado central, este cuadrado central tiene 1mm x mm = 1mm2 de superficie, existe muchos protocolos de contaje plaquetario.

Primer protocolo de recuento de plaquetas

Sabemos que las dimensiones del cuadrado central de una cámara de Neubauer; son en total 25 cuadrados medianos a su vez cada cuadrado mediano esta subdividido en 16 cuadrados pequeños, el cuadrado mediano tiene una medida de 0.2mm x 0.2mm como superficie de 0.04mm2; uno de los protocolos que se usa con más frecuencia consiste en contar los 5 cuadrados medianos al igual que los eritrocitos y multiplicamos por 5. Entonces, la superficie total de contaje es 0.2mm2 (superficie: 0.04mm2 x 5 =0,02mm2), ahora calculemos el factor de estándar del contaje de plaquetas bajo a estas condiciones, es decir, una dilución 1 en 100 de sangre con oxalato de amonio tal como mencionamos anteriormente utilizando solo 5 cuadrados medianos del cuadrado central.
Necesitamos el volumen donde están las plaquetas, el volumen resulta al multiplicar la superficie por la altura, la superficie de cada cuadrado, mediano es de 0.04mm2 y la sumatoria de los 5 cuadrados medianos es de 0.2mm2, la altura de hematímetro hasta el cubrehematímetro es de 0.1mm entonces, 0.2mm2 x 0.1mm = 0.02mm3 esto sería el volumen total de cuando se observa en el microscopio las plaquetas.
En el primer cuadrado mediano contamos 8 plaquetas, en el segundo 9, en el tercero 12, cuarto 9 y el quinto 10 plaquetas sumando nos da en total de 48 plaquetas. Ahora toca calcular el factor de estándar bajo estas condiciones para el recuento de plaquetas:

Si N plaquetas ____________________se contaron en un volúmen total de 0,02mm3
X  plaquetas habrán ____________________________ En un volúmen de 1mm3?

Número de plaquetas /mm3=(1〖mm〗^3  x N células )/(0,02〖mm〗^3 ) x dilución(100)
Multiplicamos lo siguiente para hallar el factor: 1mm3 x dilución (100) entre volumen (0.02mm3)
Número de plaquetas /〖mm〗^3= 5 000
Entoces el factor es 5 000; ahora para hallar el recuento total de plaquetas multiplicamos el factor con el número de plaquetas contadas(N).
Número de plaquetas/〖mm〗^3=5 000 x 48  Obtenimos 240, 000 plaquetas por mm3 o es lo mismo decir (240, 000 plaq/uL) (1)

CAPÍTULO IV

CÁMARA DE NEUBAUER PARA EL RECUENTO DE LEVADURAS

Se realiza para saber la viabilidad y tiraje de las levaduras usando formulas correspondientes Homogeneizar la suspensión de levaduras cuyo recuento se pretende determinar. Depositar sobre la cuadricula de la cámara 2 gotas de suspensión. Cubrir la cámara con el cubreobjetos con cuidado de no producir burbujas de aire. No es necesario contar los 256 cuadraditos, se van a contar 5 grupos (cuadrados) de 16 cuadraditos en áreas diferentes de la cámara.
Cuadro grande central (centro de la cruz, 400 cuadros pequeños): 1mm /400 cuadros.
Cuadro mediano (formado por 5x5=25 cuadros pequeños): 0.25 mm x 0.25 mm Cuadro pequeño: 0.05 mm x 0.05 mm = 0.0025 mm Líneas separadoras de cuadros medianos (en rojo): 0.025 mm del extremo del cuadro pequeño Datos básicos (mismas medidas que las anteriores excepto cuadro mediano) :/400 cuadros. = 0.0025 mm El enfoque del microscopio se empieza con el objetivo de menor aumento que posteriormente pasaremos a uno de más. Se centra el objetivo del microscopio a ojo en el centro teórico de la cruz de la cámara, luego se coloca el objetivo lo más cerca posible del cubre objetos, pero sin tocarlo y posteriormente se irá alejándolo hasta que la imagen sea lo más clara y nítida posible. Se aconseja trabajar a 400 aumentos. Contabilizar levaduras totales: Se aconseja siempre hacer la media de levaduras contenidas en varios grupos de cuadros. Por ejemplo, se presenta contabilizar las levaduras contenidas en los grupos de 25 y 16 cuadros respectivamente según la cámara usada.2/5



cálculos para producción de cerveza
• 1º - Sumar el número de células contadas.
• 2º - Multiplico para obtener cuántas células hay en un volumen final de 1 mL
• 3º - Multiplico por la dilución realizada
Ejemplo:
Si la suma de 5 cuadrados da un total de 300
entonces el total de la cámara (estimado) será de
300 x 5 = 1.500
Las células por ml se estiman en:
1.500 x 10.000 = 15.000.000 = 1,5 x 107
Multiplico por factor de dilución ejemplo (1/100)
entonces:
1,5 x 107 x 100 = 1,5 x 109 (billones) (2)
Métodos de recuento de levaduras:
Se colocan 400 µL de muestra homogenizada en un microtubo y se añaden 40 µL de azul de Evans o azul de metileno fenicado. La muestra y el colorante se mezclan y se dejan en reposo a temperatura ambiente durante 5 min. Se deposita una gota en una de las 2 cuadrículas del portaobjetos procurando que quede llena la superficie y se tapa con el cubreobjetos evitando la presencia de burbujas de aire. La cámara de recuento se ha de fijar en la platina del microscopio para realizar la observación microscópica. El enfoque del microscopio se empieza con un objetivo de pocos aumentos que posteriormente pasaremos a uno de más. Se coloca el objetivo lo más cerca posible del cubreobjetos, pero sin tocarlo y posteriormente se irá alejando hasta que la imagen sea lo más clara y nítida posible. Sea cual fuese el modelo de cámara empleado, el procedimiento es el mismo, el recuento se realizará sobre 20 de los 400 (20 x 20) cuadrados pequeños de 0,0025 mm2 (volumen total de 0,1 mm3) elegidos al azar. Si el número de células/cuadrado es >10 es conveniente diluir la muestra. Detalle del cuadrado de la cámara de recuento de Thoma, Por convenio para evitar contar dos veces la misma levadura, consideraremos que las levaduras que se encuentren en la intersección de una cuadrícula se apuntarán a la de abajo y a la de la izquierda, y las gemaciones se cuentan como 1/2 levadura. Las levaduras vivas se pueden diferenciar de las muertas porque el azul de Evans colorea las células viables mientras que el azul de metileno sólo colorea las no viables.
Sea n el número total de levaduras en las 20 cuadrículas. (3)

CAPÍTULO V

RECUENTO DE ESPERMATOZOIDES EN CÁMARA DE NEUBAUER

Realizar una investigación inicial, la estimación de la concentración, es importante que la cantidad de semen depositado y el tamaño del cubreobjeto, utilizado sea siempre los mismos para que todos los exámenes se realicen en una preparación del mismo espesor, (20uL) esto permite el cálculo aproximado de la concentración de los espermatozoides, para poder determinar la dilución.
Un volumen fijo de 10uL de semen es depositado en un portaobjeto utilizando una pipeta de desplazamiento positivo y cubierto con un cubreobjeto de 22 x 22 mm. El peso de esta distribuye la muestra para una visión optima. Luego se debe permitir a que se estabilice durante 1 minuto, dado que la motilidad y la vitalidad de los espermatozoides es dependiente a la temperatura. La evaluación inicial con una magnificación de 100x, por ejemplo, 10 x objetivo y 10 x ocular. Se realiza la estimación preliminar de la concentración espermática en una profundidad de 20um, explorando el portaobjeto y estimando el número de espermatozoides por campo, o por parte de un campo equivale a 1nL se obtiene la concentración aproximada de espermatozoides en 106/mL. Esta estimación es utilizada para decidir la dilución a utilizar en la determinación de la concentración de espermatozoides en el hemocitómetro o cámara de Neubauer.

Para este caso se hizo una dilución en un tubo de ensayo en donde se agregó 50uL de semen y 950 de diluyente, por lo que el volumen total de la dilución es 1000 que es lo mismo una dilución 1/20 el diluyente cumple lo siguiente, colorea a los espermatozoides y las mata, luego disponemos la cámara de Neubauer y con ayuda de una pipeta automática cargamos la dilución, para llevar al microscopio con el objetivo de 10x enfocamos los campos luego con 40x hacer el recuento. El recuento se realiza los 4 cuadrados de la esquina del retículo.

Se contaron lo siguiente: 61, 54, 59 y 64 espermatozoides respectivamente de tal forma que se obtuvo un total de 238/4cuadrados, pasamos a sacar el promedio de espermatozoides que es 59,5cel/cuadrado. (4)


Aplicamos la fórmula: 



CAPÍTULO VI

EXÁMEN MICROSCÓPICO DE LÍQUIDOS BIOLÓGICOS

 Estudio celular Fisiológicamente el líquido biológico contiene escasa celularidad, siendo ésta predominantemente de macrófagos (75%), linfocitos (23 %), y células mesoteliales (2%). Las células presentes en el líquido biológicos pueden ser de origen sanguíneo (hematíes y leucocitos), o de orígenes diferentes. Recuento celular: Diversos estudios han mostrado que no existen diferencias estadísticamente significativas en recuentos efectuados hasta 24 horas post-extracción del espécimen, cuando éste se conserva a 4ºC Es importante estandarizar el tipo de anticoagulación que se establece para conservar el líquido, siendo el contenedor más adecuado el tubo anticoagulado con EDTA. No es aconsejable recoger el espécimen en un tubo sin anticoagulante Tradicionalmente el recuento se ha realizado en cámara hematocitométrica (Neubauer, Burker o Thoma), similar a las usadas en los recuentos hematológicos manuales. Esta forma de recuento presenta una serie de características:
1- Relativa imprecisión inherente al método. Estadísticamente el error sigue una distribución de Poisson, y su varianza es dependiente del número de células contadas, siendo menor a medida que aumenta su número.
2- Requerimiento de personal cualificado. Necesidad de un período de aprendizaje variable (curvas de aprendizaje). Presenta una elevada imprecisión Inter observador. 3- Consumo de recursos elevado.
Al tratarse de un método manual, y requerir varios pasos para su realización, los costes de personal elevan el gasto asociado al mismo. En los últimos años se han propuesto sistemas automatizados de recuento celular con objeto de facilitar este proceso analítico. La tecnología de los contadores hematológicos automáticos con una combinación de las técnicas de impedancia, ópticas y citometría de flujo, aplicadas al hemograma, puede resultar de gran ayuda para el estudio de los líquidos biológicos, aumentando la fiabilidad, con disminución de la imprecisión y del tiempo requerido para su realización. Recuento Eritrocitario Proporciona escasa información diagnóstica. Su origen es sanguíneo y la presencia de 5.000-10.000 hematíes / mm3 es suficiente para dar una coloración rojiza hemática al líquido. Es más frecuente en exudados que en trasudados.
 En líquidos con recuento eritrocitario mayor de 100.000 hematíes/mm3 se debe determinar el valor hematocrito del mismo, y en caso de ser superior al 50 % del equivalente sanguíneo, será diagnóstico de hemotórax en caso de líquido pleural. Si la presencia de sangre es debida a la toracocentesis, se observará un aclaramiento progresivo de la colección durante la obtención del líquido. Los líquidos hemorrágicos se han asociado con infecciones paraneumónicas, neoplasias, conectivopatías, asbestosis, enfermedades abdominales (pancreatitis, síndrome de Meigs, pleuritis urémica), origen cardiovascular (rotura de aneurisma, infarto pulmonar, tromboembolismo, bypass aorto coronario), trastornos de la coagulación (sobredosis de anticoagulación, microangiopatías, cirrosis hepática), insuficiencia renal crónica y otras. Recuento leucocitario Su utilidad diagnóstica es limitada. La mayoría de los líquidos trasudados tienen una concentración inferior a 1.000 leucocitos / mm3, mientras que en la mayoría de los exudados la cifra es superior a 1.000 leucocitos / mm3. Concentraciones superiores a 10.000 leucocitos / mm3 son sugestivas de derrame paraneumónico, tuberculosis, pancreatitis, neoplasias, síndrome postinfarto, o Lupus Eritematoso Sistémico (LES). Concentraciones superiores a 50.000 leucocitos /mm3 sugieren pancreatitis o un embolismo pulmonar. Es recomendable efectuar fórmula leucocitaria cuando la concentración de leucocitos es superior a 250 /mm3. Los porcentajes de los diferentes tipos de leucocitos observados en el líquido pleural van a ser sugerentes de uno u otro diagnóstico. Así, un porcentaje de polimorfonucleares neutrófilos > 50 % orienta hacia un proceso agudo, generalmente de carácter inflamatorio, neumonía aguda, pancreatitis, tromboembolismo pulmonar (TEP), asbestosis, LES, absceso subfrénico, fase inicial de tuberculosis y en algunas neoplasias en fase precoz. Por el contrario, un porcentaje de mononucleares > 50 % orienta hacia un proceso crónico. La presencia de linfocitos de pequeño tamaño sugiere etiología neoplásica o tuberculosa. Otras causas son quilotórax, artritis reumatoidea, linfomas, y sarcoidosis. Un Porcentaje de eosinófilos > 10 % de eosinófilos (derrame eosinófilo) se observa en casos de hemotórax, neumotórax (aire en el espacio pleural). Otras causas posibles podrían ser toracocentesis repetidas, reacciones a fármacos, asbestosis, síndrome de Churg-Strauss, enfermedad de Hodgkin, y enfermedades parasitarias (hidatidosis, amebiasis o ascaridiasis). La presencia de basófilos en el líquido pleural es infrecuente y cuando el porcentaje es superior al 10 % se asocia con leucemias con afectación pleural. Otras células
 • Macrófagos Su origen son los monocitos circulantes. Son de limitada utilidad diagnóstica, es importante no confundirlas con células neoplásicas.
 • Células mesoteliales: Su presencia indica afectación pleural difusa, y orienta hacia derrames tuberculosos, paraneumónico complicados y neoplásicos.
• Células plasmáticas Su presencia en el líquido pleural orienta hacia el diagnóstico de un mieloma múltiple.
• Células cancerosas El análisis citológico de células cancerosas tiene una sensibilidad diagnóstica del 60 % para una única muestra en los derrames carcinomatosos, siendo únicamente del 30 % para el caso del mesotelioma. La sensibilidad aumenta si se toman una segunda y tercera muestras. (5)
Procedimiento de recuento celularidad en Liquido Céfalo Raquídeo
En un tubo de ensayo colocar 10uL de colorante cristal violeta al 0.2%
Agregar 90ul de fluido biológico previamente homogenizado y dejar que actúe el colorante
Cargar en la cámara de Neubauer aprox. 10uL de la solución coloreada dejar reposar 5 minutos para luego realizar el recuento.
Se contabiliza los leucocitos en los 9 cuadrados del retículo
El número de leucocitos total por mm3 es igual al número de leucocitos en los 9 cuadrados multiplicado por 1.23.


El 1.23 se obtiene de la siguiente manera:
Área del retículo = ancho por largo
Área de retículo = 3mm x 3mm = 9mm2
Volumen leído       = 9mm2 x 0.1mm = 0.9mm3
Para obtener el número de leucocitos en 1mm3, se busca un número que multiplicado por 0.9mm3 nos resulte 1mm3
1/0.9 = 1.11
0.9mm3 x 1.11 = 1mm3
Según la fórmula:
N° Leucocitos /mm3 = leucocitos contados x título de dilución x N° Encontrados
N° Leucocitos /mm3 = leucocitos encontrados x 10/9 x1.11
N° Leucocitos /mm3 = leucocitos encontrados x 1.23
Con esta fórmula se encuentra el número real de leucocitos por mm3. En caso de fluidos biológicos Turbios, con pleocitosis marcada con elementos celulares iguales o mayor que en sangre, para el recuento emplearan las mismas diluciones que en hematología. Es decir, diluyendo la muestra (1/10, 1/20) con liquido de Turk. El número de leucocitos contados en los cuadrantes se multiplica por 25 0 50 según su dilución empleada. En caso de otros fluidos que son purulentos que se coagulan con facilidad y no tienen heparina (líquido pleural, sinovial, etc.) se recomienda usar el suero fisiológico como dilución, esto evitara su coagulación de la muestra y permite realizar un buen recuento celular. Se debe realizar un examen directo en fresco para informar el porcentaje de leucocitos aglutinados, porcentaje de leucocitos aglutinados si lo hubiera, presencia de detritus celular hematíes por campo, etc. Cuando el fluido biológico es hemorrágico o ligeramente hemático, antes de realizar el recuento citológico se hará un examen directo en fresco (se recomienda sin cubre objeto) para reportar hematíes por campo porcentaje de crenados si lo hubiera. Este dato es importante sobre todo en LCR.



Referencias Bibliográficas


1. Sonnenwirth AC, Jarett L. TÉCNICAS MANUALES. In Daniel Landes CAG, editor. Métodos y Diagnósticos del Laboratorio Clínico. 8th ed. Buenos Aires: Editorial Médica Panamericana; 1986. p. 727-734.
2. Moliné DLCTM. Inibioma Conicet Unco. [Online].; Argentina 2014 [cited 2019 Noviembre 08. Available from: http://www.somoscerveceros.com/wp-content/uploads/2014/Teorica-curso-micorscopico-la-plata-2014-V5.pdf.

3. Sáez PB. Urbina Vinos Blog. [Online].; 2015 [cited 2019 Noviembre 02. Available from: http://urbinavinos.blogspot.com/2015/04/recuento-de-levaduras-en-enologia.html.

4. SALUD OMDL. Manual de laboratorio de la OMS para el examen de Semen Humano y de la interaccion entre el semne y el moco cervical. 4th ed. BLAQUIER DJAByCM, editor. España: EDITORIAL MEDICA PANAMERICANA S.A.; 2001.
5. Izquierdo F. Líquidos biológicos: actualización del análisis en el laboratorio. [Online].; 2010 [cited 2019 Noviembre 12. Available from: https://www.researchgate.net/publication/235798871.

6. STUDYLIB.ES. STUDYLIB.ES. [Online].; 2013 [cited 2019 Noviembre 02. Available from: https://studylib.es/doc/5759001/recuento-de-levaduras.






spacer

Circuito de reloj digital de control de RF multifuncional (hora-minuto-día-mes-año-temperatura-día de la semana-segundos de alarma con pantalla de animación)

Primero se construyó en PROTEUS las esquemas para ser simuladas y probadas los códigos de escritura para la previsualización y hacer posibles mejoras para luego ser transferidas en un PCB para ser ensamblados con los componentes asignados para este proyecto.
Si desea ver la imagen en PDF haz click AQUÍ. El circuito tiene LED de 60 segundos, 7 LED para los días de la semana, 4 pantallas para la hora y la fecha, 4 pantallas separadas para la temperatura y el año. Los LED de segundos son pasivos cuando se aplica la energía por primera vez. Hay 19 segundas animaciones diferentes. Puede cambiar las segundas animaciones presionando el botón hacia arriba. Es necesario utilizar el botón abajo para activar y desactivar el zumbador. Todos los ajustes que ha realizado se guardan en la memoria eeprom del procesador. En la sección de energía, la información de su reloj y los ajustes personales no se eliminan.
Hay una calibración de +10 y -10 grados para la temperatura. La temperatura puede leer un máximo de 150 ° y si se desea, se puede cambiar a la pantalla fahrenayt con el botón de alarma mientras se calibra la temperatura en el menú de configuración. La configuración de calibración se ajusta en intervalos de 0,5 grados. Hay 3 botones de configuración para hora, minuto, temperatura, fecha, año. Un botón ingresa al menú de configuración, los otros dos botones actúan para aumentar y disminuir. Con el botón de alarma, se ingresa al menú de configuración de la alarma. Puede ajustar la configuración de la hora y los minutos con los botones hacia arriba y hacia abajo. Puede cambiar el estado de activación y desactivación de la alarma con el botón "SET". En el menú de configuración, puede activar y desactivar la visualización de las pantallas con disp on y guardar los modos, si sale sin guardar, solo se guardará su calibración de temperatura. Después de cerrar la pantalla, puede volver a encenderla presionando cualquier botón.
Instrucciones de uso: El botón Configurar ingresa al menú de configuración, puede ajustarlo con los botones Arriba y Abajo. El botón Arriba cambia las animaciones de los segundos. El botón Abajo activa la alarma horaria. El botón de alarma ingresa al menú de alarma, puede ajustarlo con los botones Arriba y Abajo. Cuando se presiona el botón Configurar y subir al mismo tiempo, cambia a la vista de reloj clásico. Cuando se presionan los botones Set y Down al mismo tiempo, el LED del reloj en el medio de la pantalla parpadea. Cuando se presionan los botones Set y Alarm al mismo tiempo, si la información de la hora, el día y el mes es menor que 10, la visualización de la información "0" en el lado izquierdo se apaga.


Los archivos en este link:
spacer

LUZ A CONTROL REMOTO POR INFRARROJO CON PIC 12F629

Encender o apagar los dispositivos eléctricos con el control remoto no es una idea nueva y puede encontrar tantos dispositivos diferentes que lo hacen muy bien. Para la realización de este tipo de dispositivo, debe hacer un receptor, un transmisor y comprender su forma de comunicación.

Aquí tendrá la oportunidad de hacer ese dispositivo, pero tendrá que hacer solo el receptor, porque su transmisor será el control remoto de su televisor o vídeo ... Este es un ejemplo simple de este tipo de dispositivo, módulo de control IR.

¿CÓMO FUNCIONA?

Elija una tecla en su control remoto (de TV, video o similar), memorícela siguiendo un procedimiento simple y con esa tecla podrá ENCENDER o APAGAR cualquier dispositivo eléctrico que desee. Entonces, con cada pulsación breve de esa tecla, cambia el estado del relé en el receptor que funciona como el Interruptor. (interruptor Ir).

Memorizar la tecla del control remoto es simple y puede hacerlo siguiendo este procedimiento: 

Presione la tecla en el Interruptor o en el módulo Ir on off,  el diodo led se encenderá. Ahora puede soltar la tecla en el interruptor Ir on off y presionar un boyon o tecla en su control remoto preferido. Si hace eso, el diodo led parpadeará y su proceso de memorización habrá finalizado.

El diagrama de IR_ON_OFF está desarrollada en EAGLE. se puede alimentar de 5VDC y 12VDC. Solo cambiar el relay para el voltaje que desee alimentar, si alimenta con 12v tendrá que poner un regulador de voltaje (5v), si alimenta con un voltaje de 5V ya no sera necesario el regulador. 
https://hobbitronix.blogspot.com/

https://hobbitronix.blogspot.com/

INSTRUCCIONES:

Hacer este dispositivo no será un problema incluso para principiantes en electrónica, ya que es un dispositivo simple y utiliza solo unos pocos componentes. En el esquema, puede ver que se necesita el microcontrolador PIC12F629, el receptor IR VS1838B o en su defecto la serie de TSOPXXXX (puede ser cualquier tipo de receptor TSOP o SFH) y para el relé puede usar cualquier tipo de relé con bobina de 5V hasta 12V.
Espero que encuentres un lugar para usar este dispositivo simple y utilizable.
A continuación se ve las fotos de montaje y modificación de un  bombillo led, se pueden adaptar a cualquier dispositivo, en este caso yo utilizo para prender y apagar el foco o un bombillo para el alumbrado del cuarto por control Infrarrojo.
https://hobbitronix.blogspot.com/
EN VISTA QUE LA PLACA ES UNA SOLA CARA SE FABRICA POR MÉTODO DE PLANCHADO, EL TAMAÑO DE LA PLACA ES COMPLETAMENTE PEQUEÑO 2.2 mm DE ANCHO Y 4mm DE LARGO, ACLARANDO QUE EN LA PLACA AUN ME FALTA ENSAMBLAR ALGUNOS COMPONENTES COMO EL PIC 12F629, LED Y EL RECEPTOR DE INFRARROJO.

https://hobbitronix.blogspot.com/
COMO EL MÓDULO DE RECEPTOR FUNCIONA A 5VDC FUE NECESARIO PONER EL REGULADOR DE TENSIÓN. EN ESTE CASO ES EL CARGADOR DE CELULARES EL CUAL ES FÁCIL DE ENCONTRAR Y YA ESTÁ CONFIGURADO LA SALIDA DE 5 VOLTIOS Y ES  DE TAMAÑO  MUY REDUCIDO.

https://hobbitronix.blogspot.com/

https://hobbitronix.blogspot.com/

LISTA DE MATERIALES QUE SE UTILIZÓ EN ESTE PROYECTO:


Los archivos como los circuitos impreso en PDF y diagrama en Eagle  para este proyecto pueden descargar de manera gratuita.

Descargar ir_on_off.rar


El código para este proyecto está en el siguiente link, sólo haz clic y después de realizar su pago se te redirigirá al archivo de descarga.    
     DESCARGAR CÓDIGO HEX
10.00 USD 
Si tiene dudas o cualquier pregunta no dude en comunicarse conmigo enviando mensaje al correo



ahhhh por ahi me pidieron el codigo original de este proyecto, entonces les dejo por aqui:


; IrOn-Off-v2-555.asm 
; 01feb18 
 
; Derived of IrOn-Off.hex from http://www.ivica-novakovic.from.hr/IrOn-Off-eng.htm 
 
; Command to compile in Linux: 
;    gpasm -n IrOn-Off-v2-555.asm -o IrOn-Off-v2-555.hex 
 
 
    PROCESSOR 12F629 
    #INCLUDE p12f629.inc 
 
    ; Watchdog ON 
;    __CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_ON & _INTRC_OSC_NOCLKOUT  
 
    ; Watchdog OFF 
    __CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT  
 
    ERRORLEVEL -302    ; Don't complain about BANK 1 Registers during assembly 
 
 
; RAM-Variables 
LRAM_0x20 equ 0x20 
LRAM_0x21 equ 0x21 
LRAM_0x22 equ 0x22 
LRAM_0x23 equ 0x23 
LRAM_0x28 equ 0x28 
LRAM_0x32 equ 0x32      ; temporary register to store data (between swapping bytes for example) 
; Address 0x3A...0x43 (10 bytes) is a buffer that stores the received IR stream code, to handling 
LRAM_0x44 equ 0x44 
LRAM_0x45 equ 0x45 
LRAM_0x46 equ 0x46 
LRAM_0x47 equ 0x47 
LRAM_0x4A equ 0x4A 
LRAM_0x4B equ 0x4B 
LRAM_0x4C equ 0x4C 
LRAM_0x4D equ 0x4D 
LRAM_0x50 equ 0x50       ; bit 0 = NoToggle flag (enable (bit 0 = 0) or disable (bit 0 = 1) the PIC's output invertion) 
LRAM_0x52 equ 0x52 
LRAM_0x53 equ 0x53 
LRAM_0x5D equ 0x5D       ; Counter. Used as byte counter and index by the handler routines of the IR stream 
LRAM_0x5E equ 0x5E 
 
 
;------------------------------------------------------------------------------- 
; Defines 
;------------------------------------------------------------------------------- 
#DEFINE selBank0    BCF   STATUS,RP0    ; select RAM bank 0 
#DEFINE selBank1    BSF   STATUS,RP0    ; select RAM bank 1 
#DEFINE ON_OFF      GPIO,0              ; on/off output    
#DEFINE LED         GPIO,2 
#DEFINE PRG_BUTTON  GPIO,4              ; programming button 
#DEFINE IR_RECV     GPIO,5              ; input pin for command received from ir receiver 
 
 
;------------------------------------------------------------------------------- 
; Constants 
;------------------------------------------------------------------------------- 
OUT_PIN    equ 0         ; saida para o acionamento/desligamento (GPIO0) 
IRREC_PIN  equ 5         ; entrada do codigo recebido pelo receptor infravermelho (12F629 pin 2 - GPIO5) 
PRG_BTN    equ 4         ; programming button (12F629 pin 3 - GPIO4)  
LED_PIN    equ 2         ; IO do LED indicador da recepcao/programacao (GPIO2) 
 
 
; Start of code 
    ORG    H'0000' 
 
 
;   Reset-Vector 
    GOTO   LADR_0x005A   ; goes to the beginning of the program 
    NOP 
    NOP 
    NOP 
 
;   Interrupt-Vector 
    RETFIE               ; ignore interrupts 
 
 
; Reads EEPROM memory 
; Input: W contains EEPROM address to read 
; Output: W contains the data read 
LADR_0x0001 
    BSF    STATUS,RP0    ; select bank 1 
    MOVWF  EEADR         ; copy address in EEADR 
    BSF    EECON1,0      ; prepara leitura 
    MOVF   EEDATA,W      ; loads data in EEPROM into W register 
    GOTO   LADR_0x0055   ; returns to RAM bank 0 and exits of this sub-routine 
 
 
; Writes a data (W value) in internal EEPROM 
LADR_0x0006 
    BSF    STATUS,RP0    ; select bank 1 
    MOVWF  EEDATA        ; copy data in EEDATA 
    BSF    EECON1,2      ; enable writing in EEPROM 
 
    ; DO NOT CHANGE THIS INSTRUCTIONS ORDER! 
    MOVLW  0x55          ; writing initiate (!!! REQUIRED SEQUENCE #1 !!!) 
    MOVWF  EECON2        ; !!! REQUIRED SEQUENCE #2 !!! 
    MOVLW  0xAA          ; !!! REQUIRED SEQUENCE #3 !!! 
    MOVWF  EECON2        ; !!! REQUIRED SEQUENCE #4 !!! 
    BSF    EECON1,1      ; write dada into EEPROM (!!! REQUIRED SEQUENCE #5 !!!) 
 
    BCF    EECON1,2      ; clears WREN flag (!!! REQUIRED !!!) 
 
; Waits writting have been finished 
LADR_0x000E 
    BTFSC  EECON1,1      ; is the writing completed? 
    GOTO   LADR_0x000E   ; no, then waits  
    GOTO   LADR_0x0055   ; yes, then returns to RAM bank 0 and exits from this sub-routine 
 
 
; Parece ser um timer com W contendo o tempo da pausa 
LADR_0x0013 
    MOVWF  LRAM_0x22 
 
LADR_0x0014 
    MOVLW  0xFF          ;   b'11111111'  d'255' 
    ADDWF  LRAM_0x22,F 
    BTFSS  STATUS,C 
    ADDWF  LRAM_0x23,F 
    BTFSS  STATUS,C 
    GOTO   LADR_0x0055 
    MOVLW  0x03          ;   b'00000011'  d'003' 
    MOVWF  LRAM_0x21 
    MOVLW  0xDF          ;   b'11011111'  d'223' 
    CALL   LADR_0x0020 
    GOTO   LADR_0x0014 
 
 
LADR_0x0020 
    ADDLW  0xE8          ;   b'11101000'  d'232' 
    MOVWF  LRAM_0x20 
    COMF   LRAM_0x21,F 
    MOVLW  0xFC          ;   b'11111100'  d'252' 
    BTFSS  STATUS,C 
    GOTO   LADR_0x0029 
 
LADR_0x0026 
    ADDWF  LRAM_0x20,F 
    BTFSC  STATUS,C 
    GOTO   LADR_0x0026 
 
LADR_0x0029 
    ADDWF  LRAM_0x20,F 
;    CLRWDT 
    INCFSZ LRAM_0x21,F 
    GOTO   LADR_0x0026 
 
LADR_0x002F 
    BTFSS  LRAM_0x20,1 
    GOTO   LADR_0x0033 
    NOP 
    GOTO   LADR_0x0033 
 
LADR_0x0033 
    RETURN 
 
 
LADR_0x0034 
    BCF    STATUS,C 
    RRF    LRAM_0x21,F 
    RRF    LRAM_0x20,F 
    ADDLW  0xFF          ;   b'11111111'  d'255' 
    BTFSC  STATUS,C 
    GOTO   LADR_0x0034 
    MOVF   LRAM_0x20,W 
    GOTO   LADR_0x0055 
 
 
LADR_0x003C 
    MOVWF  LRAM_0x22 
    MOVLW  0x03          ;   b'00000011'  d'003' 
    GOTO   LADR_0x0045 
 
 
LADR_0x003F 
    MOVWF  LRAM_0x22 
    MOVLW  0x01          ;   b'00000001'  d'001' 
    GOTO   LADR_0x0045 
 
 
; 
SubRout_04 
    MOVF   LRAM_0x47,W 
    MOVWF  LRAM_0x23 
    MOVF   LRAM_0x46,W 
 
LADR_0x0042 
    MOVWF  LRAM_0x22 
    MOVLW  0x06          ;   b'00000110'  d'006' 
 
LADR_0x0045 
    MOVWF  LRAM_0x28 
    MOVF   LRAM_0x23,W 
    SUBWF  LRAM_0x21,W 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x004C 
    MOVF   LRAM_0x22,W 
    SUBWF  LRAM_0x20,W 
 
LADR_0x004C 
    MOVLW  0x04          ;   b'00000100'  d'004' 
    BTFSC  STATUS,C 
    MOVLW  0x01          ;   b'00000001'  d'001' 
    BTFSC  STATUS,Z 
    MOVLW  B'00000010'   ; bitmask 
    ANDWF  LRAM_0x28,W 
    BTFSS  STATUS,Z 
    MOVLW  0xFF          ;   b'11111111'  d'255' 
 
LADR_0x0055 
;    BCF    STATUS,IRP    ;  
;    BCF    STATUS,RP0    ;  
    BCF    STATUS,RP0    ; returns to RAM bank 0 
;    CLRWDT               ; resets watchdog timer 
    RETURN 
 
 
;------------------------------------------ 
; Sets up GPIO's and SFR's (program start) 
;------------------------------------------ 
LADR_0x005A 
    CLRF   INTCON        ; disable all interrupts 
    CLRF   T1CON         ; stops TMR1 
    BCF    PIR1,0        ; clears TMR1 overflow flag 
    MOVLW  B'00000111'   ; bitmask 
    MOVWF  CMCON         ; disable comparators 
    CLRF   GPIO          ; let all outputs pins in low level 
    BSF    STATUS,RP0    ; select bank 1 
    BCF    OPTION_REG,7  ; enable internal pull-up resistors 
    MOVLW  B'00110010'   ; bitmask  
    MOVWF  WPU           ; internal pull-ups resistors enabled on pins 2, 3 and 6 (IR data, programming button and 555 output) 
    MOVWF  GPIO          ; turns pins 2, 3 and 6 as inputs, another all pins as outputs 
    CALL   0x03FF        ; gets calibration value 
    MOVWF  OSCCAL        ; copy it in OSCCAL 
    BCF    STATUS,RP0    ; returns to bank 0 
 
    CLRF   LRAM_0x50     ; o bit 4 deste endereco _PARECE_ conter um flag que indica o recebimento de dados ou nivel baixo pelo pino 2 
 
 
; Program loop? 
LADR_0x007C 
    CALL   LADR_0x0203   ; checks if programming button has been pressed 
    CALL   LADR_0x0122   ; checks if remote controler was actived 
;    CLRWDT               ; keeps WDT reseted 
    BTFSC  LRAM_0x50,4   ; this is a flag? 
    CALL   LADR_0x0084 
    GOTO   LADR_0x007C 
 
 
LADR_0x0084 
    BSF    GPIO,2        ; turn on LED on 12F629 pin 5 (indicating that the remote control has been pressed) 
    CALL   Upd_LED       ; updates 12F629 pin 5 
    CLRF   LRAM_0x5D     ; EEPROM initial address 
 
 
LADR_0x0089 
    CALL   Counter_Test 
    BTFSC  STATUS,C      ; is index < 10? 
    GOTO   LADR_0x009E   ; no, the last byte in EEPROM and RAM was compared and are equals 
    MOVF   LRAM_0x5D,W   ; yes, then copy index value to W 
    CALL   LADR_0x0001   ; gets byte in EEPROM 
    MOVWF  LRAM_0x53     ; copy it in address 0x53 
    MOVF   LRAM_0x5D,W   ; restore index value in W register 
    ADDLW  0x3A          ; pointer to IR stream data address in RAM  
    MOVWF  FSR 
    MOVF   INDF,W        ; gets byte in address indicated by FSR 
    MOVWF  LRAM_0x32     ; copy it to address 0x32 
;    CLRWDT 
    MOVF   LRAM_0x53,W 
    SUBWF  LRAM_0x32,W   ; compares byte stored in EEPROM IR stream data with the byte written in RAM IR stream data  
    BTFSS  STATUS,Z      ; bytes are equal? 
    GOTO   LADR_0x00A3   ; bytes are different (wrong IR code) 
 
LADR_0x009C 
    INCFSZ LRAM_0x5D,F   ; increments index (next byte) 
    GOTO   LADR_0x0089   ; gets next byte to compare 
 
; If IR stream code is right, then toggle output 
LADR_0x009E 
    CALL   Toggle_Output ; inverts output (pin 7) status 
 
LADR_0x00A3 
    BCF    LRAM_0x50,4 
    MOVLW  0x01      
    MOVWF  LRAM_0x44     ;   b'00000001'  d'001' 
    CLRF   LRAM_0x45     ;   b'00000000'  d'000' 
 
LADR_0x00A7 
    CALL   SubRout_02 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x00B9 
;    CLRWDT 
    BTFSS  GPIO,5 
    BSF    LRAM_0x50,4 
 
LADR_0x00B5 
    ; incrementa 16 bits contido em 0x45,0x44 (MSB,LSB) 
    INCF   LRAM_0x44,F 
    BTFSC  STATUS,Z      ; testa 256 
    INCFSZ LRAM_0x45,F   ; incrementa 0x45 (byte high) se 0x44 (byte low) = 256 
    GOTO   LADR_0x00A7 
 
LADR_0x00B9 
;    CLRWDT 
    BTFSC  LRAM_0x50,4 
    GOTO   LADR_0x00A3 
 
LADR_0x00BD 
    MOVLW  0x01          ;   b'00000001'  d'001' 
    MOVWF  LRAM_0x44 
    CLRF   LRAM_0x45 
 
LADR_0x00C0 
    CALL   SubRout_02 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x00D2 
;    CLRWDT 
    BTFSS  GPIO,5 
    GOTO   LADR_0x00A3   ; 
 
LADR_0x00CE 
    INCF   LRAM_0x44,F 
    BTFSC  STATUS,Z 
    INCFSZ LRAM_0x45,F 
    GOTO   LADR_0x00C0 
 
LADR_0x00D2 
    BCF    GPIO,2        ; turn off LED on pin 5 
    GOTO   Upd_LED       ; updates LED status 
 
 
LADR_0x00D7 
    CLRF   LRAM_0x5D     ; initializes index counter with 0 
 
; Fills 10 bytes in RAM (IR stream data buffer) with 0xFF 
LADR_0x00D8 
    CALL   Counter_Test  ; stream end test 
    BTFSC  STATUS,C 
    GOTO   LADR_0x00E4 
    MOVF   LRAM_0x5D,W 
    ADDLW  0x3A          ; pointer to IR stream data in RAM 
    MOVWF  FSR           ; FSR now has the address to write 
    MOVLW  0xFF          ; value to fill stream data into RAM 
    MOVWF  INDF          ; write 0xFF into address indicated by FSR 
    INCFSZ LRAM_0x5D,F   ; index++ 
    GOTO   LADR_0x00D8   ; next write (to until 10 bytes) 
 
LADR_0x00E4 
    CLRF   LRAM_0x44 
    CLRF   LRAM_0x45 
 
LADR_0x00E6 
    INCF   LRAM_0x44,F 
    BTFSC  STATUS,Z 
    INCF   LRAM_0x45,F 
    CALL   LADR_0x0122 
;    CLRWDT               ; for debug only 
    BTFSC  LRAM_0x50,4 
    GOTO   LADR_0x00FA 
    MOVF   LRAM_0x44,W 
    MOVWF  LRAM_0x20 
    MOVF   LRAM_0x45,W 
    MOVWF  LRAM_0x21 
    MOVLW  0xFD          ;   b'11111101'  d'253' 
    MOVWF  LRAM_0x23 
    MOVLW  0xE8          ;   b'11101000'  d'232' 
    CALL   LADR_0x003C 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x0119 
    GOTO   LADR_0x00E6 
 
; Starts the stream writing (copy) from RAM to the EEPROM  
LADR_0x00FA 
    BCF    GPIO,2        ; turn off LED on pin 5 
    CALL   Upd_LED       ; updates LED status 
    CLRF   LRAM_0x5D     ; initializes index/byte counter with zero 
 
; Copy 10 bytes from RAM (address 3Ah up to 43h) to EEPROM 
LADR_0x00FF 
    CALL   Counter_Test  ; checks if index/byte counter reached the end (LRAM_0x5D = 10) 
    BTFSC  STATUS,C      ; skip if no 
    GOTO   LADR_0x0111   ; writing has ended 
    MOVF   LRAM_0x5D,W 
    ADDLW  0x3A          ; adds counter value with address of the first stream byte in RAM, to get the address of byte to read  
    MOVWF  FSR 
    MOVF   INDF,W        ; gets byte to copy 
    MOVWF  LRAM_0x32     ; copy it to address 32h 
    MOVF   LRAM_0x5D,W   ; copy counter value (index) to W register 
    BSF    STATUS,RP0    ; select bank 1 
    MOVWF  EEADR         ; copy counter value (index) to EEADR 
    BCF    STATUS,RP0    ; returns to bank 0 
    MOVF   LRAM_0x32,W 
    CALL   LADR_0x0006   ; writes byte in EEPROM 
    INCFSZ LRAM_0x5D,F   ; next byte 
    GOTO   LADR_0x00FF 
 
LADR_0x0111 
    MOVLW  0x01          ;   b'00000001'  d'001' 
    MOVWF  LRAM_0x23 
    MOVLW  0xF4          ;   b'11110100'  d'244' 
    CALL   LADR_0x0013 
    BSF    GPIO,2        ; turn on LED on pin 5 
    CALL   Upd_LED       ; updates LED status 
 
LADR_0x0119 
    MOVLW  0x03          ;   b'00000011'  d'003' 
    MOVWF  LRAM_0x23 
    MOVLW  0xE8          ;   b'11101000'  d'232' 
    CALL   LADR_0x0013 
    BCF    GPIO,2        ; turn off LED on pin 5 
    GOTO   Upd_LED       ; updates LED status 
 
 
LADR_0x0122 
    BCF    LRAM_0x50,4   ; resets stream end flag 
;    CLRWDT               ; for debug only 
    BTFSC  GPIO,5        ;  
    RETURN               ;  
 
 
LADR_0x0128 
    CALL   Start_TMR1 
    CALL   Wait_IRHigh   ; waits IR pin to return for level high 
    CALL   Stop_TMR1     ; stops TMR1 and copy it to LRAM_0x4A/LRAM_0x4B and LRAM_0x20/LRAM_0x21 
 
    MOVLW  0x01          ;   b'00000001'  d'001' 
    MOVWF  LRAM_0x23 
    MOVLW  0x5E          ;   b'01011110'  d'094'  "^" 
    CALL   LADR_0x003C 
    BTFSC  STATUS,Z 
    RETURN 
 
 
LADR_0x0144 
    CALL   SubRout_03 
    MOVLW  0x04          ;   b'00000100'  d'004' 
    MOVWF  LRAM_0x23 
    MOVLW  0xE2          ;   b'11100010'  d'226' 
    CALL   LADR_0x003C 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x0153 
    MOVLW  0xE2          ;   b'11100010'  d'226' 
    MOVWF  LRAM_0x46 
    MOVLW  0x04          ;   b'00000100'  d'004' 
    MOVWF  LRAM_0x47 
    GOTO   LADR_0x0180 
 
LADR_0x0153 
    CALL   SubRout_03 
    MOVLW  0x0A          ;   b'00001010'  d'010' 
    MOVWF  LRAM_0x23 
    MOVLW  0x8C          ;   b'10001100'  d'140' 
    CALL   LADR_0x003C 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x0162 
    MOVLW  0x84          ;   b'10000100'  d'132' 
    MOVWF  LRAM_0x46 
    MOVLW  0x03          ;   b'00000011'  d'003' 
    MOVWF  LRAM_0x47 
    GOTO   LADR_0x0190 
 
LADR_0x0162 
    CALL   SubRout_03 
    MOVLW  0x0C          ;   b'00001100'  d'012' 
    MOVWF  LRAM_0x23 
    MOVLW  0xE4          ;   b'11100100'  d'228' 
    CALL   LADR_0x003C 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x0171 
    MOVLW  0xEE          ;   b'11101110'  d'238' 
    MOVWF  LRAM_0x46 
    MOVLW  0x02          ;   b'00000010'  d'002' 
    MOVWF  LRAM_0x47 
    GOTO   LADR_0x0190 
 
LADR_0x0171 
    CALL   SubRout_03 
    MOVLW  0x0C          ;   b'00001100'  d'012' 
    MOVWF  LRAM_0x23 
    MOVLW  0xE4          ;   b'11100100'  d'228' 
    CALL   LADR_0x0042 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x0180 
    MOVLW  0xB0          ;   b'10110000'  d'176' 
    MOVWF  LRAM_0x46 
    MOVLW  0x04          ;   b'00000100'  d'004' 
    MOVWF  LRAM_0x47 
    GOTO   LADR_0x0188 
 
LADR_0x0180 
    CALL  Wait_IRLow 
    CALL  Wait_IRHigh 
 
LADR_0x0188 
    CALL  Wait_IRLow 
    CALL  Wait_IRHigh 
 
LADR_0x0190 
    CLRF   LRAM_0x5D     ; initializes index/byte counter with zero 
 
LADR_0x0191 
    CALL   Counter_Test  ; test for stream data end 
    BTFSC  STATUS,C      ; has stream data ended? 
    GOTO   LADR_0x0201   ; no, 
    MOVLW  0x01 
    MOVWF  LRAM_0x5E 
 
LADR_0x0198 
;    CLRWDT               ; for debug only 
    MOVLW  0x05          ;   b'00000101'  d'005' 
    SUBWF  LRAM_0x5E,W 
    BTFSC  STATUS,C 
    GOTO   LADR_0x01FF 
    CALL   Start_TMR1 
 
; Checks end of IR command 
LADR_0x01A5 
;    CLRWDT               ; for debug only 
    BTFSS  GPIO,5        ; checks if pin 2 of 12F629 is high 
    GOTO   LADR_0x01B0   ; pin 2 of 12F629 is low 
;    CLRWDT               ; for debug only 
    MOVLW  0x07          ; test for de TMR1 byte high 
    SUBWF  TMR1H,W       ; the carry flag will be set if TMR1H >= 7 
    BTFSS  STATUS,C      ; 
    GOTO   LADR_0x01A5   ; 
 
LADR_0x01B0 
    CALL   Stop_TMR1      ; stops TMR1 and copy it to LRAM_0x4A/LRAM_0x4B and LRAM_0x20/LRAM_0x21 
    CALL   SubRout_04 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x01C8 
    BSF    LRAM_0x52,7 
    GOTO   Jump_01 
 
LADR_0x01C8 
    BCF    LRAM_0x52,7 
 
Jump_01 
    CALL   SubRout_01 
 
;---------------------------------------------------------------- 
; Starts length measuring, in TMR1, of level low on 12F629 pin 2  
;---------------------------------------------------------------- 
    CALL   Start_TMR1 
    CALL   Wait_IRHigh 
    CALL   Stop_TMR1 
    CALL   SubRout_04 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x01F5 
    BSF    LRAM_0x52,7 
    GOTO   Jump_02 
 
LADR_0x01F5 
    BCF    LRAM_0x52,7 
 
Jump_02 
    CALL   SubRout_01 
    INCFSZ LRAM_0x5E,F 
    GOTO   LADR_0x0198 
 
LADR_0x01FF 
    INCFSZ LRAM_0x5D,F 
    GOTO   LADR_0x0191 
 
LADR_0x0201 
    BSF    LRAM_0x50,4 
    RETURN 
 
 
; Checks if programming button is pressed 
LADR_0x0203 
;    CLRWDT               ; for debug only 
    BTFSC  GPIO,4        ; is pressed the programming button? 
    RETURN               ; no 
 
; Starts programming procedure 
LADR_0x0207 
    MOVLW  0x01          ;   b'00000001'  d'001' 
    MOVWF  LRAM_0x4C 
    CLRF   LRAM_0x4D 
 
LADR_0x020A 
    MOVF   LRAM_0x4C,W 
    MOVWF  LRAM_0x20 
    MOVF   LRAM_0x4D,W 
    MOVWF  LRAM_0x21 
    MOVLW  0x13          ;   b'00010011'  d'019' 
    MOVWF  LRAM_0x23 
    MOVLW  0x88          ;   b'10001000'  d'136' 
    CALL   LADR_0x003F 
    BTFSS  STATUS,Z 
    GOTO   LADR_0x021C 
;    CLRWDT               ; for debug only 
    BTFSC  GPIO,4        ; is pressed the programming button? 
    GOTO   LADR_0x0203   ; no 
    INCF   LRAM_0x4C,F   ; yes 
    BTFSC  STATUS,Z 
    INCFSZ LRAM_0x4D,F 
    GOTO   LADR_0x020A 
 
LADR_0x021C 
    BSF    GPIO,2        ; turn on LED on 12F629 pin 5 
    CALL   Upd_LED       ; updates LED status on 12F629 pin 5 
    CALL   LADR_0x00D7 
    BCF    GPIO,2        ; turn off LED on 12F629 pin 5 
    CALL   Upd_LED       ; updates LED status on 12F629 pin 5 
    RETURN 
 
 
; Updates LED status 
Upd_LED 
    BSF    STATUS,RP0    ; select bank 1 
    BCF    GPIO,2 
    BCF    STATUS,RP0    ; returns to bank 0 
    RETURN 
 
 
; Dois pontos do programa usa esta sub-rotina 
SubRout_01 
    MOVF   LRAM_0x5D,W 
    ADDLW  0x3A          ;   b'00111010'  d'058'  ":" 
    MOVWF  FSR 
    MOVF   LRAM_0x52,W 
    MOVWF  INDF 
    BCF    STATUS,C      ; clears bit 
    RRF    LRAM_0x52,F   ; read bit in carry flag 
    RETURN 
 
 
; Dois pontos do programa usa esta sub-rotina 
SubRout_02 
    MOVF   LRAM_0x44,W 
    MOVWF  LRAM_0x20 
    MOVF   LRAM_0x45,W 
    MOVWF  LRAM_0x21 
    MOVLW  0x03          ;   b'00000011'  d'003' 
    MOVWF  LRAM_0x23 
    MOVLW  0xE8          ;   b'11101000'  d'232' 
    GOTO   LADR_0x003F 
 
 
; Clears TMR1 and LRAM_0x4A/LRAM_0x4B and starts TMR1 
Start_TMR1 
    BCF    PIR1,0        ; clears the TMR1 overflow flag 
    MOVLW  0x00 
    MOVWF  LRAM_0x4A     ; clears LRAM_0x4A 
    MOVWF  LRAM_0x4B     ; clears LRAM_0x4B 
    MOVWF  TMR1L         ; clears TMR1L 
    MOVWF  TMR1H         ; clears TMR1H 
    BSF    T1CON,0       ; enable TMR1 counting 
    RETURN 
 
 
; Stops TMR1, copy it to LRAM_0x4A/LRAM_0x4B and LRAM_0x20/LRAM_0x21 
Stop_TMR1 
    BCF    T1CON,0       ; stops TMR1 
    MOVF   TMR1L,W 
    MOVWF  LRAM_0x4A     ; copy TMR1L in LRAM_0x4A 
    MOVF   TMR1H,W 
    MOVWF  LRAM_0x4B     ; copy TMR1H in LRAM_0x4B 
 
; Copy LRAM_0x4A/LRAM_0x4B in LRAM_0x20/LRAM_0x21 
SubRout_03 
    MOVF   LRAM_0x4A,W 
    MOVWF  LRAM_0x20 
    MOVF   LRAM_0x4B,W 
    MOVWF  LRAM_0x21 
    RETURN 
 
 
; Waits IR pin go to level low 
Wait_IRLow 
;    CLRWDT               ; for debug only 
    BTFSC  GPIO,5        ; is IR out pin low? 
    GOTO   Wait_IRLow    ; no 
    RETURN               ; yes 
 
 
; Waits IR pin go to level high 
Wait_IRHigh 
;    CLRWDT               ; for debug only 
    BTFSS  GPIO,5        ; is IR out pin high? 
    GOTO   Wait_IRHigh   ; no 
    RETURN               ; yes 
 
 
; Checks if counter reached the end (.10) 
; Returns carry flag = 1 if yes 
Counter_Test 
;    CLRWDT               ; for debug only 
    MOVLW  .10           ; counter end limit 
    SUBWF  LRAM_0x5D,W   ; compares LRAM_0x5D with .10 
    RETURN 
 
 
; Inverts PIC12F629 output (pin 7) state 
Toggle_Output 
    MOVLW  B'00000001'   ; bitmask 
    XORWF  GPIO,F        ; toggle output state 
    BSF    STATUS,RP0    ; select bank 1 
    BCF    GPIO,0        ; updates the output with the new level 
    BCF    STATUS,RP0    ; returns to bank 0 
    RETURN 
 
 
    End

spacer

RELOJ LED CON ESFERA ROTANTE

COMO CONSTRUIR RELOJ LED CON ESFERA ROTANTE 



RELOJ LED CON ESFERA ROTANTE
https://hobbitronix.blogspot.com/
Reloj led con esfera rotante
LOS PUNTOS ROJOS TIENE QUE SER SOLDADAS EN LED NÚMERO 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51,56.
Este prototipo es antes de su diseño final en EasyEDA se simuló en 3D para ver en físico de como se vería el reloj antes de enviar a fabricar.

DESCRIPCIÓN DEL PROYECTO.

Este proyecto es un reloj con esfera rotante con diodos led y un display de 7 segmentos, hoy en día hay una variedad de tiendas virtuales que ofrecen para su venta, la pueden encontrar en Bangood, aliExpres tiendas online que ofrecen en precios asequibles a este producto. Existe en versiones diferentes pero con las mismas prestaciones difiriéndose solo en el Firmware del kit, se puede adquirir para ensamblar o ensamblado, si adquiere para ensamblar se tiene que tener habilidades para la soldadura en SMD (montaje en superficie), ya que los componentes en su mayoría son de montaje en superficie. Si adquiere ensamblado se evita el preocupante trabajo de ensamblar, en ambos casos el Kit ya viene con microcontrolador programado por esta parte tiene la ventaja, al menos quiere hacer el nuevo firmaware y luego programar el micro con un programador.
La idea es hacer nuevo hardware de este proyecto, y que sea compartida de manera pública, tener acceso a los archivos de manera gratuita por si alguien desea hacer o fabricar, con las prestaciones de la tecnología del pleno siglo XXI, el detalle es que en vez de comprar en el mercado, se puede realizar el diseño uno mismo, entonces empecemos. 
El proyecto parte de la idea original del autor quien ha inventado este prototipo de hecho esta versión tiene  o va a tener las mismas prestaciones que el kit original o algo mejorado aún. En Internet hay solo su diagrama de esquemas mas no lo hay los archivos como Gerber y el firmware para reproducir este prototipo, de hecho hay 2 versiones de diagrama V1 y V2. y la versión que se hizo para este modelo EC1204B (FC209) con las mismas prestaciones que el original. 
El proyecto está controlado por un microcontrolador AT89S52/AT89C52, los diodos leds están conectados como un matriz, en cuanto a la mutiplexación esta conectada 8 líneas más 4 lineas verticales del display El display de 4 dígitos es el que va mostrar las horas, minutos, fecha, año y temperatura, por lo tanto el firmware está escrito para controlar intercaladamente los 12 bits.
Los 60 diodos led´s son los que marcan los segundos de los minutos, el chip de temperatura DS18B20  esta conectado por un hilo, y este va sensar cada un milisegundo para actualizar la temperatura, el chip de reloj el DS1302 esta conectado por tres (3) hilos, 2 hilos de datos y uno (1) de habilitación que está como reset. ,
También esta  va a guardar las configuraciones hechas en el microcontrolador en su memoria, el DS1302 lleva su cristal y batería para el respaldo de configuraciones el cual al reloj le da un toque de RTC , es decir, cuando se corta el suministro eléctrico el reloj es capaz de almacenar la configuración  realizada y mantener el reloj en tiempo real.
A demás el reloj va llevar 3 botones (RESET, MODE Y PLUS), MODE esta destinado para cambiar y seleccionar y el PLUS para cambiar el valor, este reloj también está pensado en tener varias prestaciones, uno de ellos es el buzer para el alarma y pitidos en cambio horarios.
En el reloj también está incorporado el sistema de ICSP para el microcontrolador, el cual permite  programar, actualizar, cambiar el firmware del microcontrolador sin remover del sistema a través de pines de transmisión y recepción de datos(Mosi, miso, sck, reset, vcc y gnd),  los pines de TX, Dx, vcc y GND es para el módulo Bluetooth, actualmente el firmware esta escrito para instalar este dispositivo en el sistema esto le permite al reloj manipular desde un móvil para configurar y actualizar la configuración. 
La alimentación de este reloj es a través de un puerto MINIUSB, solo se puede alimentar con voltaje de 5VDC el cual hoy en día se encuentra de manera común en casa, el cargador de celulares, este dispositivo es común y  suministra los 5VDC al reloj. Para este fin solo encuentra un adaptador de cable USB para MINIUSB y listo, si tiene problema en encontrar este tipo de cable no se preocupe, este prototipo esta diseñado pensando en eso, hay segunda opción, también se puede alimentar a través de micro USB que esta en la esquina superior del reloj. Pero hay inconveniente con este conector, lo que pasa es que no está conectado al sistema, por lo se requiere conectar con un puente o un cable la línea de positivo y negativo del conector micro USB al positivo y negativo del sistema del reloj, para ello  en esta versión hay dos Pads de soldadura con serigrafía de signo positivo y negativo en el reloj.

A continuación se detalla la evolución de este reloj desde el primer prototipo hasta la actualidad:

 En año 2018 se desarrolló el primer prototipo de este reloj, se elaboró su diagrama esquemático, y su circuito impreso en EAGLE SOFTWARE luego fue exportado a EasyEDA para su diseño final. en donde se diseñó su serigrafia de los componentes y es donde se obtuvo los archivos gerber para el primer proyecto. Los archivos Gerber se envió a la empresa JLCPCB de China, es por primera vez que mandé los Gerber para fabricar el PCB. El tablero (pcb) no tardaron en llegar, sin exagerar unos 15 días calendario, ni apenas se arribó a mi correo local fui a recogerla ni siquiera le dí tiempo a los carteros para que me lleven a mi casa, luego llegando a casa abrí y ahí estaban, la impresión con la cual me quedé fue de sorpresa, era realmente PCB´s de calidad y profesional. No  obstante también pedí los componentes electrónicos a la tienda de LCSC y me llegaron casi juntos, entonces ya tenia todo para empezar a ensamblar, para empezar este era un reto para mi, también es por primera vez voy a realizar soldadura en SMD, la verdad fue un reto, al principio me fue difícil pero con paciencia lo logré ensamblar todo, si fuera con estación de calor hubiera sido mas fácil como no tenia, preferí un cautín de estaño. Este es el primer prototipo, se hizo para saber posibles defectos que pueda presentar el reloj, efectivamente después de terminar de ensamblar fue así que presentó más de un defecto, la esfera rotante, o, los diodos led´s que marcan los segundos de los minutos, estaban mas orientados, es decir que empezaron a marcar en sentido anti horario entonces era necesario hacer la corrección de este prototipo, a tomar nota para corregir en la próxima versión tomando en cuenta que era necesario enviar nuevo Gerber con las correcciones. 
Aquí una imagen del primer prototipo el pcb de color verde, el color es bonito pero no cumplía mis expectativas para el reloj.

 PCB de color verde.
DIAGRAMA ESQUEMÁTICO DEL RELOJ EC1204B (FC209)  El diagrama siempre será el mismo para todas las versiones posteriores, solo variará en que si deseamos agregar algún componente como por ejemplo el conector micro USB el cual está pensado en agregar mas adelante.
Diagrama del reloj led con esfera rotante https://hobbitronix.blogspot.com/
Diagrama esquemático  del reloj con esfera rotante EC1204B

Pcb de color verde para el reloj led con esfera rotante https://hobbitronix.blogspot.com/
PCB de color verde 

https://hobbitronix.blogspot.com/
OBSERVESE EL RELOJ ENSAMBLADO POR COMPLETO LISTO PARA SU FUNCIONAMIENTO, es el primer prototipo.
Como se puede evidenciar en esta imagen y para ser sincero no está mal para mi primer experiencia en soldadura en SMD, definitivamente me quedó muy bien la soldadura sin complicaciones y era relativamente una experiencia muy buena. 

En 2019 se desarrolló el segundo prototipo con las posibles correcciones del anterior proyecto, esta vez se ordeñó los PCB´s en color azul, el procedimiento es el mismo, se corrigió los archivos en EAGLE del primer proyecto y luego otra vez fue exportado de EAGLE a EasyEDA para el diseño del PCB.
Este es el segundo prototipo, las características son las mismas, solo  En que en este segundo prototipo se agregó un conector el micro USB en la parte superior derecha del PCB, en detalles anteriores se mencionó que el micro USB no tiene contacto con el sistema y es por eso que era necesario conectar o poner un cable tipo puente para tener la conexión al sistema.

La siguiente imagen fue obtenida de EasyEDA  clic en el link para ver el circuito impreso, si desea mandar fabricar uno lo pueden hacer desde este software, para generar los Gerber se detalla mas abajo en este artículo o lo pueden buscar de como generar archivo gerber en You Tube, hay un montón de tutoriales acerca de este objetivo. 
https://hobbitronix.blogspot.com/
CIRCUITO IMPRESO EN EASYEDA
https://hobbitronix.blogspot.com/
CIRCUITO IMPRESO DE EC1204B 
Después de terminar de corregir los supuestos defectos de generó el archivo Gerber para volver a enviar los Gerber´s a la empresa JLCPCB para su fabricación, en esta ocasión se pidió los PCBs de color azul. También no demoró mucho en llegar, solo pedí los PCB´s ya que los componentes ya lo tenia en mano cuando adquirí con el  primer proyecto, también ni apenas llegaba empecé a ensamblar empezando desde los componentes pasivos y mas pequeños, esta vez era ya muy fácil por que estaba armando ya por segunda vez el proyecto entonces me parecía algo familiar en soldadura en SMD. 

CÓMO MANDAR PCB EN CHINA?

Particularmente yo suelo enviar mis prototipos a la empresa JLCPCB, a continuación se muestra a través de imágenes de como enviar y cargar Gerber en la pagina de JLCPCB.
https://hobbitronix.blogspot.com/









 Después de terminar de ensamblar verificar que no tenga cortos circuito, solo se necesita para este fin un multímetro o tester para saber la continuidad, y saber si hay contacto o un corto circuito entre la masa y el polo positivo, si es que presentara intentar resolver primero antes de suministrar con la energía. Pero sino tuviese entonces estas listo para empezar usar el reloj haciendo su configuración previa. 
Despuésdde tanto trajinado por fin terminé el segundo proyecto la de color azul, y esta me ha quedado excelente como se puede observar en la imagen.
https://hobbitronix.blogspot.com/
RELOJ EC1204B ENSAMBLADOS CON LOS COMPONENTES 
https://hobbitronix.blogspot.com/
RELOJ EC1204B, parte inferior
Habíamos mencionado que este prototipo lleva 2 conectores como se puede apreciar en la imagen, también habíamos dicho que se tenía que conectarse con un cable ya que el conector micro usb no está conectado con el sistema. Justamente es eso lo que se observa en esta imagen. 


COMO PROGRAMAR EL MICROCONTROLADOR AT89S52

El gran reto para programar este microcontrolador hoy en día tal vez sea una de las retos mas difíciles del lograr, si no cuenta con un programador de alta gamma esto podria ser tedioso para un principiante, pero  hoy en día hay opciones para llegar a programar el microcontrolador, ¿como? en seguida lo sabremos.
En primer instancia el programador de preferencia es TL866 para vaciar los côdigos hex al microcontrolador, pero tiene una desventaja con este programador es que cuesta muy caro, alrededor de 500 soles y es mucho, si deseamos solo para programar este proyecto es muy costoso para un principiante.
https://hobbitronix.blogspot.com/

En Internet existe otra opción que es un método muy eficaz para lograr este objetivo, solo hay que tener un ARDUINO, un software que permite pasar los HEX al microcontrolador hacia el AT89S52, solo hay que convertir este arduino en programador cargando un sketck al arduino uno. Realmente utilizar este método es muy económico ya que se ahorra de estar comprando el programador profesional si igual podemos lograr objetivo por esta opción.

Para lograr este objetivo solo realiza los siguientes conexiones entre un arduino y el microcontrolador AT89S52. Es importante seguir los pasos que dice en el vídeo que vas a ver a continuación. 
La demostración de este método se puede apreciar en este VÍDEO de hecho es el único que me ha funcionado, en donde se detalla paso  a paso de como se realiza la programación de este microcontrolador si no cuenta con un programador y este es la mejor opción solo para este microcontrolador.

https://hobbitronix.blogspot.com/
Diagrama de conexiones entre un arduino y AT89S52 
 Los archivos de este Método están AQUÍ, en el vídeo se detalla a fondo de este método, contiene el skech de arduino y el software para programar el microcontrolador.

Después de programar exitosamente el microcontrolador AT89S52 conecte su reloj por primera vez, se mostrará la pantalla en 00 horas y 00 minutos, para configurar este reloj solo presione MODE para aleccionar y PLUS para avanzar y disminuir o navegar los parámetros que que se desee, y luego MODE para guardar la configuración. Y listo FUNCIONA!!!!!!!!.


https://hobbitronix.blogspot.com/

EL FUNCIONAMIENTO DE ESTE RELOJ SE PUEDE VER EN ESTE VÍDEO.

El reloj en funcionamiento, una vez mas salió con pequeño defecto, como se puede evidenciar en la imagen los puntos rojos (led rojo) no coinciden con los números, pero el reloj está cien por ciento operativo funcionan de maravillas. Si es que desean construir este prototipo en los archivos de descarga encontrarán los archivos en optimas correcciones,
Cabe indicar también que en el pie de PCB de azul lleva el nombre del blog, lo cual quiere decir que fue publicado en este blog pasionelectrónica.blogspot.com  que también era administrado por mí, pero ahora ya no existe dicho blog solo existe https://a-apl.blogspot.com/Si deseas fabricar el reloj, solo visita al link de descarga o visita al SOFTWARE EasyEDA para ver este proyecto.

El firmaware no es de mi autoría lo pueden descargar de manera gratuita, solo con fines educativos mas no para reproducibilidad de este proyecto, si desea reproducir o mercanterizar, deberá enviar un mensaje o un correo de permisibilidad  al autor de este proyecto.


CIRCUITO IMPRESO EN EasyEDA

Desde esta ventana de Software lo pueden descargar los archivos Gerber, en YouTube existe muchos tutoriales de como obtener y generar los archivos Gerber desde EasyEDA, este circuito es el segundo prototipo con las correcciones necesarias, es decir, el circuito impreso que vas a ver es el impreso listo para exportar para su fabricación. 
Si pensaste fabricar, con el viejo método de planchado también lo puedes realizar, en una placa o baquelita de 2 caras, para eso tendrás que generar archivo en PDF desde este ventana, tanto capa inferior y superior por separado y imprimir con un impresora láser en un papel cuché o fotografico, luego trasferir el tóner con una plancha a la placa virgen. 

El Gerber es un archivo esencial para su fabricación de este proyecto, el archivo Gerber está actualizado y corregido al cien, para que no presente ningún defecto para su fabricación.

 Diagrama esquemático EC1204B

La diagrama esquemático está en formato pdf, lo puede descargar de manera gratuita si desea empezar fabricar su propio prototipo.

Los materiales  para este proyecto, están en formato Excel los paquetes son de 0805, lo puede descargar de manera gratuita.

DOCUMENTACIÓN DEL RELOJ CON ESFERA ROTANTE EC1204B

Descargue este documentación para ver todo lo que necesitas para construir este reloj EC1204B, contiene varios archivos de este proyecto.

Espero les guste el aporte, si realmente les gustó el proyecto no olvide en apoyar con una pequeño donativo para seguir adelante en este mundo maravilloso de electrónica y seguir aportando con más en futuros proyectos.
 



************************************************************************************************************************************************************************************************************************************************************************************************************************************


VERSIÓN PREMIUM


https://hobbitronix.blogspot.com/

En 2020 se hizo la nueva versión el cual es considerado un proyecto premium  y tiene un costo.
Después de poner la prueba el reloj EC1204B se hizo la ultima versión quizás sea la última, se ruteó en software EAGLE luego se terminó la edición en EasyEDA para generar los Gerbers, las diferencias de esta versión al anterior son los siguientes:

CONECTOR MICRO USB
En esta versión el conector micro USB si tiene contacto con el sistema, es decir, no es necesario poner un puente o cable para que tenga contacto con el sistema.

LOS BOTONES  DE CONFIGURACIÓN:
Los botones de esta versión ya no es en SMD, sino  es para un montaje a través de orificio, RESET, MODE Y PLUS, los cuales ya están detalladas en la descripción mas arriba de este artículo.

RELOJ CON BLUETOOHT:  
El firmware de este versión está escrito, para que reconozca el módulo Bluetooht, solo reprograme el microcontrolador o cambie de firmware para que reconozca el módulo bluetooht.

A continuación son imágenes de este prototipo simulado en Google skechUp tiene que ser idéntica al reloj en físico, solo que en las imágenes no se ve los valores de los componentes.

https://hobbitronix.blogspot.com/
EC1204B PREMIUM
https://hobbitronix.blogspot.com/
RELOJ EC1204B 
Los archivos Premium contiene los planos en EAGLE, y el circuito impreso en EAGLE, los archivos Gerbers EC1204B, y el Boom, (Materiales para construir el reloj con esfera rotante EC1204B) solo haz clic en comprar ahora, luego pague la tarifa y se redirigirá al link de descarga.

Ya que no se ven la serigrafía en la simulación en 3D aquí los dejo algunas imágenes obtenidas de su archivos Gerbers y es como se vería el reloj en físico y real.

https://hobbitronix.blogspot.com/
Imagen obtenida de su código gerber de la versión Premium, capa superior
PCB DEL EC1204B
Imagen obtenida de su codigo Gerber capa inferior del reloj versión Premium 


Este es un producto digital descargable, ya sea para modificar el circuito o re-diseñar, porque  contiene los archivos en EAGLE, solo que se tiene que tener instalada el software Eagle en su ordenador para poder aperturar los archivos y generar los archivos Gerber a su gusto, también contiene los archivos Gerbers de este prototipo listo para enviar a fabricar a China como se detalló mas arriba.


El precio de este producto digital es 
4.35USD
spacer