Preguntas, Comentarios y Sugerencias

Todo lo relacionado con la eléctronica en nuestros barcos
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Hola amigos

Resulta que nuestros 3 amigos que están por empezar a construir la tarjeta experimental tienen problemas de conseguir algunas de las componentes. Es por eso que ofrezco conseguir estas para todo aquel que así lo desea. He generado una primera tabla de Excel en la cual el interesado puede poner las componentes que quiera que yo le consiga. Mándenme un mensaje con su dirección de Email y les mandaré el Excel. No duden en agregar alguna componente que quieran utilizar después de haber aprendido lo básico con la tarjeta experimental. Esta ofrece suficiente espacio libre para agregar cualquier función adicional. Son estos "proyectos posteriores" que van a resultar en una rica biblioteca de soluciones para muchos objetivos.

Habiendo hecho algunas investigaciones para estos primeros 3 amigos resulta que el camino más viable es que los proveedores manden las componentes a mi casa y que yo allí las pongo en paquetes para cada destinatario. Allí ofreceré tarifas para un transporte asegurado y para uno normal sin seguro. Así podremos repartir los costos del transporte dentro de Alemania sobre muchas espaldas. Mi proposición es que estos costos se repartirán de acuerdo al valor del pedido de cada cual. Aquí un ejemplo simplificado para explicarme:

Asumiendo que los transportes costaron 10,- Euros, que un amigo ha puesto una orden por el valor de 10,- Euros y el segundo por 90,- Euros, entonces el de los 10,- Euros paga 1,- Euro y el de los 90,- Euros 9,- Euros. Yo garantizo que hare mi parte de forma gratuita y que solo computo los costos que se generan sin sumar nada. Tampoco puedo responsabilizarme por si algo falla. Pero garantizo hacer el mejor de los esfuerzos para actuar de forma correcta y que todo resulte bien. También requiero que cada cual que ponga una orden me confirme por escrito que no usará el medio judicial para resolver desacuerdos y que no reclamara daños inmediatos o consecutivos de naturaleza alguna. Los pagos deben efectuarse de antemano a mi cuenta bancaria. Dentro de la comunidad europea esto es gratuito por ley. Si alguien de fuera de la comunidad quiere que le compre algo, entonces puede pagar por PayPal, pero debe sumar los 3,9% que cobra PayPal por su servicio.

Voy a ofrecer una tarifa para transporte asegurado y una sin seguro. Cada cual tiene que decidir cual tarifa quiere que use y sumar el costo a la transferencia.

Una vez que todos los pagos hayan llegado a mi cuenta bancaria pongo la orden con los proveedores. Como algunos saben estoy sin trabajo desde el 2000 y no puedo tomar el riesgo que alguien no pague.

Repito, no duden de poner órdenes por otras componentes. Yo estoy por poner una orden en DigiKey, un proveedor que tiene prácticamente todo y donde se consiguen hasta las partes más exóticas. Pero para partes normales es demasiado caro.
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Debido a la narración de ciertas dificultades tratando de armar la tarjeta experimental quiero volver a resaltar la importancia de cómo proceder armándola.

1. Armen módulo por módulo y no todo a la vez!

Me explico:
Primero solo arman el módulo del adaptador, pues este es uno de los más sencillos.
Después con la tarjeta experimental primero solo arman el regulador lineal.

2. Al soldar hagan el cableado que equivale a las conexiones del esquema por grupos y verifiquen cada grupo antes de seguir.

Me explico usando el armar del regulador lineal como ejemplo:
1. Primero soldán los conectores para la alimentación de corriente a la tarjeta.

Estudien la imagen. Los cables negro y rojo a la izquierda son los que llevan la corriente a la tarjeta. Hay 2 formas de hacerlo.

La una, que es la que muestra la imagen en el cursillo es soldar los cables directamente a la tarjeta. Para hacer esto hay que taladrar un poco el orificio por el cual pasamos el alma de cada cable para que quepa. Esto hay que hacerlo con mucho cuidado para no dañar el cobre en el lado de abajo taladrando el hueco para agrandarlo. El alma lo soldán a 2 o tres de las superficies circulares de cobre en el lado de abajo para asegurar que este fuertemente conectado. La razón por no soldar estos 2 cables directamente al lado inferior de la tarjeta es que pasándola por uno de los orificios antes lo fija de forma mecánica fuerte para evitar estresar las soldaduras. Como se pueden imaginar esos pequeños “parches de cobre” se podrían arrancar de la superficie de Epoxi de la tarjeta con algo de fuerza.

La segunda forma, y esa es la que yo realice en mi tarjeta, es usar un dispositivo que permite fijar los cables atornillándolos. Les puse esta imagen para explicar a que me refiero:

Imagen

En el borde delantero a la izquierda ven el módulo con el regulador 7805. La barra de aluminio que ven atornillado al empaque del regulador es mi “difusor de calor casero”. Inmediatamente junto al condensador electrolítico grande de 2200uF y que uso como “C9” entre este y el conector de 10 pines pueden ver el objeto negro con las cabezas de los 2 tornillos que se usan para fijar el alma de un cable. Yo prefiero este sistema al propuesto por Torsten por ofrecer una conexión más robusta. Como esa pieza es estresada cada vez que le ajustas el tornillo al fijar las almas del cable de alimentación eléctrica antes de soldar esta pieza por abajo la fijo usando pegante del que seca en un segundo. Así la pegante fija esta pieza al material de la tarjeta quitando el estrés mecánico de la soldadura. Es bueno comprar esta pieza que sea adecuada para atornillar el alma de cables con un diámetro de cobre de hasta 2,5 mm cuadrados.

Volvamos al procedimiento de soldar los cables que equivalen a las conexiones del esquema!

Después de haber realizado la conexión de los cables de alimentación eléctrica ponen las componentes, una por una, pasando los pines por los orificios de la tarjeta. Las componentes se ponen sobre el lado que no tiene cobre, pues el cobre solo se necesita en el lado inferior para las soldaduras. Empiecen poniendo pieza por pieza, doblando los pines en lado inferior y soldando los pines fijando así la componente. Oriéntense por la imagen como poner las componentes. No suelden los cables aún, solo monten las componentes del módulo que están trabajando. Una vez que todas las componentes del módulo del regulador lineal han sido puestas en sus respectivas posiciones y los pines soldados para fijar las componentes, usamos un alicate de corte oblicuo para cortar los pines allí donde sobrepasan el estaño con el que las fijamos. Ahora empezamos a hacer las conexiones del esquema soldando el cable entre los pines de las componentes.

Aquí viene el punto que me es muy importante resaltar pues primeros intentos han demostrado que no siguiendo un procedimiento como el que describo aquí la cosa se vuelve confusa e intimidante. Sé que eso solo es aplicable a los tímidos como yo, pero yo aprendí esto de mi amigo Torsten observando maravillado como el construía su tarjeta.

Imagen

Como pueden ver en la imagen del esquema del módulo, la línea horizontal superior equivale al cableado del polo positivo y la otra línea inferior al cableado negativo o tierra. Al soldar los cables que equivalen a la línea horizontal verde procedemos de la izquierda a la derecha usando un cable para cada conexión. Empecemos por la línea inferior, las conexiones de tierra. Como ahora estamos soldando, trabajamos exclusivamente por el lado inferior de la tarjeta. Como las componentes ya han sido soldadas a los parches de cobre en lado inferior de la tarjeta las componentes ya no se salen.

Tomamos un cable de color negro, tierra, lo cortamos a tal longitud que equivalga 1.5 veces la distancia entre los pines a conectar. Después les quitamos el aislamiento a ambos cabos en una longitud de 3-4 mm. Ahora usamos estaño y el soldador para empapar el alma del cable con estaño. El alma del cable así recibe un cubrimiento de estaño que lo vuelve rígido y que lo prepara para soldar al punto al que lo vamos a fijar, que es el estaño de la soldadura con la que fijamos el pin anteriormente. Ahora le aplicamos el soldador al estaño de pin para la tierra o polo negativo del dispositivo para atornillar los cables de la alimentación eléctrica y le ponemos uno de los cabos del cable al que le aplicamos estaño antes de tal forma que este se sumerja en el estaño que se vuelve a derretir por aplicar el soldador y que el cable a su vez tenga buen contacto con la punto del soldador. Apenas vemos que el estaño del cabo del cable y el que usamos para fijar el pin de la componente se derriten ambos, quitamos la punta del soldador y soplamos para que el estaño se enfriara y vuelva a endurecer. Una buena soldadura se reconoce por lo que el estaño toma una superficie cóncava y es brillante y baña las partes soldadas. Eso garantiza una conexión eléctrica buena y estable y cualidades mecánicas buenas.
Ahora tomamos el otro cabo del cable y repetimos el procedimiento, soldándolo al pin negativo del condensador electrolítico “C8”. Recordemos que los condensadores electrolíticos requieren respetar la polarización, ósea que el pin del lado negativo tiene que ser conectado a tierra y el otro a la polaridad positiva. Recuerden que si lo conectan de forma equivocada cuando apliquen la tensión de alimentación por primera vez el efecto acústico es equivalente al ruido de una pistola. Yo por esa razón, ríanse, me tapo los oídos la primera vez que conecto la tensión a mi circuito.
Ahora repetimos el procedimiento conectando el polo negativo del “C8” el primer cabo de otro trozo de cable con aislamiento negro preparado de la misma forma como antes y el segundo cabo al polo negativo del “C6”, otro cable del “C6” al Pin “2” del regulador 7805, del Pin “2” al “C7”, del C7 al C9, del C9 al pin negativo del LED1, del pin positivo del LED1 a uno de los pines de la resistencia.

Ahora lo que hacemos es verificar que nuestras soldaduras y conexiones han sido realizadas de forma correcta para las conexiones de tierra. Para esto pones uno de los puntos de medición del multimetro, el negativo (tierra) al dispositivo donde atornillamos el polo negativo de la alimentación eléctrica, el otro al polo negativo del C8. La resistencia tiene que ser “0”, Lo mismo, solo moviendo el punto de medición positivo (aislamiento rojo del cable) ahora al C6, al Pin “2” del 7805, al C7, al C9, al LED. En todos los casos la resistencia tiene que ser “0”. No medimos detrás del LED, pues este, siendo un diodo y montado tal cual lo indica el esquema mostrara una resistencia infinita. Lo que si podemos hacer es medir el valor de la resistencia entre el punto atrás del LED y el pin no conectado de la resistencia R4. El valor indicado debe equivaler al de la resistencia R4.
Midiendo una resistencia entre los 2 pines de los condensadores C8, C6, C7 y C9 siempre resulta en un valor infinito pues la resistencia de un condensador a una fuente de corriente DC siempre es infinita. El valor de la resistencia de un condensador se reduce cuando se aplica una tensión AC, o alterna, donde la polaridad se invierte continuamente, cuando más lata es la frecuencia alterna. De la corriente en las redes eléctricas que usamos en nuestros hogares sabemos que la frecuencia es de 50 Hz o 60 Hz, dependiendo si estamos en Europa o por ejemplo en los Estados Unidos.

Ahora procedemos de igual forma siguiendo el esquema para la línea superior de la izquierda hacia la derecha. Una vez hecho todas las conexiones, habiéndolas verificado midiendo las resistencias de forma equivalente es válido suponer que nuestro módulo es capaz de cumplir su función. Ahora le podemos aplicar una tensión de alimentación, tal cual lo dice el esquema, con una tensión entre los 7V y los 15V.

Como lo dije antes, cuando pongo mi mano en el interruptor para conectar la tensión a este módulo por primera vez, me tapo los oídos! Si todo fue hecho correctamente podremos verificar el éxito de nuestro “segundo” circuito, el primero fue el adaptador, pues el LED estará encendido. Si esto no es así, entonces tenemos un problema. Comuníquenlo en el foro y le buscaremos la solución juntos.

Si el LED si esta encendido., entonces podemos hacer unas verificaciones con el multimetro. Lo ponemos para medir tensiones DC de hasta 20V mínimo. Ahora medimos el valor de la tensión entre los 2 cables de alimentación y veremos la tensión que equivale a aquella que nuestra fuente eléctrica nos brinda. Ahora dejamos un punto de medición, el de tierra, en el punto de alimentación de tierra y el otro por ejemplo al pin de la resistencia R4 conectado al polo positivo. Ahora la tensión debe mostrar un valor próximo a los 5V. Bingo, nuestro primer módulo de la tarjeta experimental fue realizado con éxito.

Porque he descrito de forma tan detallada el procedimiento para realizar este módulo? Lo he hecho, pues el módulo es muy sencillo, pero realizándolo realmente estamos aplicando todas las técnicas que se requieren para el resto de los módulos y para cualquier otro circuito que vayamos a construir.
También deseo resaltar porque es tan importante seguir rigorosamente un procedimiento como el que he descrito. Es porque subdividimos la labor en pequeños pasos los cuales verificamos de inmediato, sabiendo así que nuestro circuito no presenta errores hasta ese punto.

Imagen

Imagen

Si miran las 2 imágenes anteriores pueden ver el estado actual de mi tarjeta experimental.

La primera imagen la muestra desde el lado de arriba con las componentes. Como pueden ver a al menos sospechar, he puesto los dispositivos de una forma más o menos organizada.
La segunda imagen muestra la misma tarjeta, pero por el lado inferior, donde en este momento le estoy agregando ciertos circuitos para seguir experimentando funciones que voy a necesitar en mi velero. También pueden ver a la derecha los conectores para el ratón y el teclado de un ordenador. De ese modo pude experimentar y desarrollar el software para controlar el ratón y el teclado. Para realizar el ratón aún tengo que realizar la conexión de una pantalla gráfica. Pero eso es otra historia.

La razón por la que he incluido las últimas 2 imágenes de mi propia tarjeta experimental es para demostrar que si no hubiera procedido durante su realización tal y cual lo describo aquí, ustedes creen que aun sería posible para un novato verificar la tarjeta y encontrar la causa si algo no funciona? Yo no creo que eso sea posible para un novato.

Yo el autor de esta tarjeta no me he dedicado a esta desde ya van a hacer varios anos. Por eso yo voy a verificar la tarjeta completa usando el esquema que he estado desarrollando mientras le sumaba módulo por módulo.

Otra utilidad de estas imágenes quizá es aquella que os demuestra cuantas cosas se pueden ir sumando a la tarjeta experimental y así esplicar una vez más en qué consiste la utilidad, la función de la tarjeta. La tarjeta es un medio para empezar como novato a crear nuestras propias tarjetas, pero aún después de mucho tiempo es muy útil para experimentar con otras funciones.

Esta tarjeta experimental permite instalar un segundo controlador. Los 2 controladores pueden comunicarse entre sí usando el bus I2C, ver subforo de terminología aquí en este foro. Es posible alimentar el segundo controlador con otros valores de tensión que los 5 V que estamos usando en nuestra tarjeta, por ejemplo 3,3 V. Para eso he instalado una componente especial del proveedor NXP, antes Phillips, el inventor del bus I2C, que convierte la tensión en el bus I2C entre los 5V del primer controlador y los 3,3V del segundo controlador. He usando la misma componente para la extensión del bus I2C que he llevada a un conector en la periferia de la tarjeta. Así puedo conectar otras tarjetas a través del Bus I2C y ese dispositivo se ocupa de adaptar las tensiones.

Como ya lo dije antes, he provisto los conectores para ratón y teclado del ordenador.

Ahora voy a agregarle un circuito con la componente para conectarme a un ordenador por la interfaz USB. Ven que tan potente es el concepto de una tarjeta experimental como esta? Si hubiera realizado la placa sin usar la metodología de los cables para conectar los pines, sino pasando el circuito a ella tal y cual lo conocemos de las placas comerciales, esto sería imposible!

Claro que nunca pondré la tarjeta experimental en el velero, sino que hare las placas dedicadas. Pero cuando haga estas, ya sabré que el circuito funciona y ya habré desarrollado y verificado el programa correspondiente.

Ojala esta contribución sea una ayuda para aquellos que se aventuran en hacer la placa experimental o que le ayude a otros embarcar en esta ventura que nos ofrece infinitas posibilidades para nuestro hobby! Quiero recordarles, que estoy ofreciendo comprar las componentes para la tarjeta experimental para todo que quiera y que como parte de las componentes y en especial para mi proyecto de iluminación de la cubierta del velero, estoy poniendo una orden con DigiKey, un proveedor que ofrece prácticamente todas las componentes que existen. Si tienen alguna componente donde tengan dificultades de conseguirlas, aprovechen la posibilidad de ordenarlas a través de mi persona sin que yo le cobre a alguien más dinero que el necesario para cubrir los gastos. Los gastos de transporte se reparten a partes tales que correspondan al valor de las partes a comprar.
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Queda otro punto importante que resaltar por lo que lo pongo en su propia contribución en este hilo:

Como el módulo de alimentación eléctrica de la tarjeta experimental con el 7805 es la fuente para todo circuito en la tarjeta experimental tenemos que conectar muchos cables a tierra y los 5 V creados por el módulo. Es por lo tanto muy útil construir una "barra" para tierra y 5V donde se puedan conectar fácilmente muchos cables. La forma de realizar esto es creando un cable de la longitud que se pueda soldar a 5 parches de cobre en línea, y que podamos introducir los cabos de este cable por los orificios del primer parche y del quinto parche. Al cable se le debe quitar todo el aislamiento. Después de fijar los cabos en sus sendos orificios, toman el estaño y el soldador y van empapando el cable en toda su longitud con estaño hasta que este forma una barra rígida de estaño. Naturalmente que también tienen que soldar esta barra a los parches 2 a 4 sobre los que pasa calentando los parches de cobre y el estaño del cable para soldar estos y logar una posición estable y fija de la barra de estaño y cobre. El resultado es una barra a la que van a poder conectar to dos cables que quieran para alimentar los módulos de la tarjeta experimental con los 5V y tierra. Ojalá me haya podido hacer entender!

Mi cámara no es capaz de tomar fotos nítidas de objetos tan pequeños como una barra de estas. Lo mejor que os puedo dar es si acceden al original de alta resolución de la imagen que muestra mi tarjeta experimental desde abajo en el sitio de flickr.com. Tecleando con el botón derecho del ratón sobre la imagen y seccionando "Propiedades", pueden averiguar el enlace al original y verla la imagen en alta resolución allí! En el borde delantero de la tarjeta a mano izquierda se puede ver una de estas "barras"!
--------------------
Saludos Hellmut
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

hola hellmut 1956,
tengo una duda, que queria saber si tu pudieses, responderme te explico:

en los pines del puerto de entrada de un microcontrolador, sea pic o Atmel, que no se utilizen, ¿es necesario conectar esos pines a masa con una resistencia?, y en caso de que sea necesario, ¿de qué valor tiene que ser esa resistencia, de 1k o bien de 10k?

te lo pregunto, porque, estoy haciendo unas practicas con el 16F84a, utilizo una de las cinco entradas del puerto Ra, y queria saber si obligatoriamente es necesario poner las otras cuatro a masa, y si no las pongo, en teoria que puede pasar.

diese Frage lässt keine Eile, Grund warum laufen, wenn diese, die mit Ihrer beschäftigt sind, Sie auf mich, wenn Sie, können, Grüße reagieren können von josechu
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Hola josechu

Estoy seguro que estas consciente de la diferencia, pero adjunto la explicación para aquellos que no saben.

Los pines de un controlador pueden tener diferentes funciones por diseño, significa que al diseñar el producto a estos se les ha asignado una función y la pueden tener adicionalmente por programación. Esto hay que diferenciar para poder responder.

Si los pines son de alimentación, estos tienes que estar conectados de acuerdo.
Si los pines no tienen función definida, esto ocurre cuando un empaque tiene más pines que los que necesita la parte, estos son nombrados por lo general "n/c". Abreviación inglesa para "not connected" lo que significa lo mismo que "no conectado". En este caso la hoja de datos indica si hay alguna recomendación.

Si los pines son para entradas o salidas, según el usuario lo programa o según tengan su función en un momento determinado de la ejecución del programa, por lo general están conectados con el pin de alguna otra componente.

Si el usuario sabe que ese pin que se podría utilizar como entrada o salida no va a tener función en su placa y que no esta conectado con algo hay que proceder en 3 pasos:

Primero hay que ver si la hoja de datos da una recomendación si conectar con tierra o el polo positivo.
Digo polo positivo y no 5V, por lo que diferentes pines pueden tener diferentes voltajes asociados (5V, 3.3V, 3V, etcétera).

Segundo hay que ver si el pin, interno a la componente esta “jalado” (push or pull) hacia tierra o el polo positivo. Viendo en el esquema de la componente se puede ver si internamente está conectado de cierta forma a través de una resistencia de forma fija.
Porque? Imagínate que el pin, interno a la componente está conectado a tierra por una resistencia. Si tu ahora lo conectas externamente a 5V, entonces fluye una corriente que se puede calcular usando la ecuación de Ohm. Corriente que corre sin necesidad representa un estrés a la componente por el calor que genera y representa un consumo de energía sin otra función que la de calentador!

Lo mismo vale si el pin está conectado internamente al otro polo. Por lo tanto lo único sensato es conectarlo externamente al mismo polo externamente, siempre y cuando sea necesario.

El tercer aspecto a considerar es el programa que el usuario graba en el componente, en este caso un controlador. A veces conectamos todos los pines de un portal por software al polo positivo o negativo internamente. Si ahora resulta que alguno de los pines del portal no se usa y lo has conectado externamente a tierra y por software a 5v vale lo que dije antes.

Porque josecho me pregunta de cómo conectar el pin? Si un pin no está conectado, sea internamente como lo acabo de explicar, o externamente por el diseñador de la placa y la hoja de datos recomienda que este sea conectado de cierta forma (tierra o polo positivo), entonces el pin “flota o en Inglés “is floating”. Que significa esto?

Pues bien, el pin de un componente determina si es lógicamente un “0” o un “1”, según la tensión que exista entre este pin y la tierra de la componente. No es así que tierra signifique “0V”, sino que tiene una tensión inferior a un límite que es especificado en la hoja de datos. Este puede estar por ejemplo en 0,5V o 0,7V. Cualquier tensión de 0,7V o menos para la componente significa un “0”, o eléctricamente hablando tierra.
Del mismo modo un “1” lógico no significa que la tensión en el pin sea de 5V, o de 3,3V, etcétera según la tensión a la que opera el componente. Aquí también rige la regla que toda tensión superior a un cierto límite es considerado ser lógicamente un “1” o 5V, 3,3V …
En muchas componentes que funcionan con una alimentación de 5V este límite esta en 2,7V. El valor que rige para una cierta componente se encuentra en la hoja de datos de dicho componente.

Que ocurre ahora si la tensión del pin tiene un valor entre 0,7V y 2,7V? No es ni “0” ni “1”! Pues eso es lo que se denomina “flotando”. Y un pin flotando es muy susceptible a funcionar como antena y recibir “ruido”. Si este ruido que modifica la tensión resulta que la tensión del pin varíe de tal forma que tome un valor inferior a 0,7V o mayor a 2,7V entonces de pronto el pin tiene un valor que no se puede prever.
Un ejemplo para este efecto en un programa. Imagínate que tomas una decisión dentro del programa dependiendo que el valor de un portal sea “0” y de pronto este pin flotando toma el valor de “1”, el portal ya da una información equívoca al programa! Traten de imaginarse el problema del programador de encontrar la razón porque su programa en el 99% de los caso funciona bien y de vez en cuando no!

Hay una última razón por la cual, si la hoja de datos recomienda conectar un pin de cierta forma y el diseñador de la placa lo dejo flotando. Ese “ruido” externo electromagnético no solo puede afectar un programa como lo acabo de describir, sino que puede afectar los circuitos dentro de la componente de tal forma que esta no funcione correctamente. Un tipo de circuito dentro de un controlador muy susceptible a este tipo de “ruido” son los convertidores A/D (análogo a digital).

Resumiendo la respuesta a la pregunta de josechu:

1. Mira la hoja de datos si recomienda no dejar flotando un pin no conectado
2. Mira la hoja de datos si dice con que conectar y/o
estudia del esquema de la componente que muestra el circuito interno del pin
3. Considera si tiene repercusiones en tu programa
4. Como la única razón para conectar un pin a tierra o 5V es que este no flote, cuando mayor la resistencia menor el flujo de corriente. Conectando un pin con tierra o 5V define la tensión a que este pin está sometido, la cantidad de corriente define cuanto energía
(Voltios * Amperios = Watt) un ruido requiere para modificar la tensión hasta el valor lógico opuesto! Yo en este caso teniendo la opción entre 1K y 10K seleccionaría 10k, pero no 10M, pues en este caso fluye muy poca corriente limitando la función de esta parte del circuito!
--------------------
Saludos Hellmut
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

Muchisimas gracias Hellmut 1956,
siendo muy sincero te dire que, si bien me sonaba algo, de lo que tu amablemente has explicado con todo detalle, yo tenia muchas lagunas y dudas al respecto, y efectivamente, en las practicas que estoy haciendo con el pic 16f84a, gracias a un buen amigo, que me proporciona el Sofware, pudiese ser, y digo que no lo sé de momento con esactitud, tampoco que lo sea, pero parece como si tuviese por los led que conecto en la salida como testigo, algún ruido de señal, y que este proviniese de la emisora, que ahora me estoy dando cuenta que siempre la he tenido muy cerca, a pòcos centimetros.

bueno seguire probando, le conectaré unas resis de 10k, haber si elimino unas fluctuaciones que tengo en esos led de salida.

muchas Hellmut y Saludos a todos, y naturalmente a nuestro amigo, huy, digo a mi amigo.
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Tienes un esquema que me permita ver si puedo ayudar en encontrar la razón?
--------------------
Saludos Hellmut
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

haber que tal sale:

la entrada es por RA 0, patilla 17
la salida, puede ser cualquiera del puerto RB, en este caso para simplificar el esquema la he puesto en RB1 y RB2, patillas, 7 y 8 respectivamente.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Hola amigos

Me tome el tiempo de estudiar la hoja de datos y el esquema de ustedes un poco. Asumo que el PIC se comporta y funciona tal y cual todos los controladores funcionan. El PIC16F84A es simpático, pero, perdónenme en decirlo, no lo están usando de forma que tengan el beneficio de sus capacidades.

La razón es que no usan un del os pines RB4:7 que tienen la función de “interrupt-on-change” en combinación con el timer TMR0 para decodificar la señal del receptor. Aquí en el foro el amigo puso los gráficos que demuestran de forma visual muy evidente la forma de los impulsos que aparecen a las salidas del receptor cada 20 ms y cuya longitud define la posición del control en el transmisor.

Ahora de forma escrito como me imagino que deberían hacer el programa para beneficiarse de las interesantes capacidades del controlador:

Entrada:
El impulso cada 20 ms del receptor y cuja longitud define de cómo deben ser encendidos y apagados los LEDs conectado a uno de los pines que NO sean los RB4:7
Salidas:
RB1 y RB2: Los LEDs están conectados entre estos pines y 5V. De allí resulta que si pones un “1” en el registro correspondiente al pin el Pin también tendrá 5V y por lo tanto el LED está apagado. Pones un “0” y el pin esta encendido. Yo recomendaría el uso del portal A! Ver páginas15 y 16 para los detalles del portal A y 17 y 18 para los detalles del portal B
Recursos a utilizar en el controlador:
La función de “interrupt-on-change” de los pines RB4:7
El timer 0 (TMR0)

Iniciación:
Dependiendo de si el impulso de tu radio control es de 5V o de 0V y que entre impulso e impulso la señal tiene la otra tensión, definimos la tensión inicial sin impulso.
Los Pines RB1 y RB2 los definimos como salidas, activamos la resistencia que los jala a 5V y escribimos un “1” al registro correspondiente (ver página 7). De ese modo en descanso y ese estado lo definimos durante la iniciación nos aseguramos que los 2 pines de salida tenga la tensión (5V) que deseamos y que solo cambiarán a “0V” cuando escribamos un “0” a los registros correspondientes a esos 2 pines (Bit1 y Bit2) del registro 06h.
Ahora iniciamos el timer, ver instrucciones en hoja de datos y definimos el timer0 para que cuente de “0” hacia arriba cuando le demos la señal de arrancar y le damos el valor de “0” inicial(creo que es el registro “o2h”)
Asumamos que la señal del receptor normalmente es de “0V” y que el impulso hace que la tensión salte a “5V”.
Iniciamos la función de “interrupt-on-change” para los pines RB4:7, pero aún sin activar el interrupt. Activar el interrupt significa que el controlador saltara en la ejecución de su programa a la rutina de servicio de ese interrupt, apenas cambie la tensión en el pin al que conectamos la señal del receptor, uno de los pines RB4 a RB7.
Ahora tenemos que escribir la rutina de servicio para el interrupt-on-change”.
El valor de una variable que refleja la tensión del pin RBx la iniciamos con el valor “0”, esta inicialización ocurre fuera de la rutina de servicio y es parte de la inicialización.
El controlador saltara a ejecutar esta rutina en el momento que el impulso (la señal) del receptor llegue a la entrada del PIN RBx.

Este Pin al que conectamos la señal del receptor es iniciado como entrada y la resistencia interna no es activada pues solo existe para conectar a “5V” y no a “0V”. Externamente conectaría el pin con una resistencia de 10k con tierra. Así aseguro que esta entrada solo saltara de “0V” a “5V” porque la señal del receptor así lo indica.

El controlador recién podrá saltar a esta rutina cuando en el programa principal activamos el interrupt. Si el controlador llega a esta rutina podemos asumir que esto ocurre por primera vez dentro de un lapso de tiempo de máximo 20ms después de activar el interrupt!
Que hace esta rutina de servicio.
1. Verifica que no estamos midiendo un impulso. Para esto miro si el valor de la variable “longitud señal” tiene el valor “0” o no!
2. 1. Si esto es correcto, inicia el timer que empieza a contar de “0” hacia arriba y le asigna el valor de “0” a la variable “longitud señal”. Así en el caso alternativo sabe que si la variable “longitud señal” no es “0” que está midiendo un impulso.
3. 2. Si ya está midiendo un impulso lee el valor actual del contador y lo asigna a la variable “longitud señal”. Para el contador, lo vuelve a iniciar a “0”.
4. Fin de rutina de servicio

El jueguito es el siguiente:

Antes de que llegue el primer impulso de la señal del receptor la línea tiene el valor del “0”, equivale “0V”. Activamos el “interrupt-on-change”. Cuando llega el impulso la tensión en el pin de entrada salta de “0V” a “5V” y el “interrupt-on-change” hace que la ejecución del programa en el controlador salte a la rutina de servicio correspondiente.
En la rutina de servicio lo primero que hacemos es leer el valor del contador “timer” y asignarlo a una variable. Esta variable tiene el valor inicial de “0”, lo mismo que el contador (TMR0). Siendo esto la primera acción nos aseguramos tener el valor del contador más próximo al evento del cambio de tensión de la señal no se pierda.
Ahora verificamos si el valor es “0” o no!
Si es “0” significa que empezamos a contar, y por lo tanto la segunda acción es arrancar el contador.
La función de “interrupt-on-change” se controla a través de los Bits “0”, “3” y “7” del registro INTCON, ver página 10.
Bit “7” es el interruptor principal que permite o no que interrupt tengan un reacción del controlador.
Bit”3” es el interruptor que activa o desactiva el “interrupt-on-change”.
Bit “0” es la indicación si un interrupt ha ocurrido o no.

Esto significa que la rutina de servicio tiene que resetear (anular) el valor del los bits para que el controlador este preparado a volver a saltar a esta rutina de servicio cuando la señal acabe y la tensión en el pin de entrada vuelve de “5V” a “0V”.
Ahora abandonamos la rutina.

Cuando el “interrupt-on-change” vuelve a hacer que el controlador salte a la rutina de servicio porque la señal del receptor acabo y la tensión volvió a “0V”, cuando leemos el valor del contador este tendrá un valor que no será de “0” y por lo tanto asignado el valor que leemos del contador a la variable “longitud señal” hará que la rutina de servicio salte a sus funciones después de terminar la señal. Pero lo que hace es lo mismo que antes, resetea los valores a “0”, pero adicionalmente para el contador y lo vuelve a inicial a “0”. Después terminamos la rutina de servicio.
Es muy importante durante la programación asegurar que la rutina de servicio sea lo más corto posible. Esto es porque durante el tiempo que estamos en esa rutina el controlador no puede saltar a una rutina de servicio en el caso que alguno de los otros interrupt posibles tenga lugar. Por eso yo lo considero buena practica desactivar el servicio de un interrupt durante este tiempo. Apenas abandonamos la rutina de servicio volvemos a reactivar los interrupt (Bits “7” y/o “3”!

Devuelta en nuestro programa principal tenemos en la variable “longitud señal un valor numérico.
Ahora podemos usar ese valor numérico que es equivalente a la longitud de la señal del receptor para hacer que el controlador haga las funciones que nosotros deseamos a razón de la posición de los controles correspondientes del transmisor. En este caso escribir “0” o “1” al bit del registro “06h” que corresponde al pin al que hemos conectado los LEDs.
De esta forma es imposible que razones no deseadas causen fluctuaciones de la luz de los LEDs. La única forma como un LED se enciende o apaga es que el programa escriba un “0” o un “1”!

Ojalá se entienda lo que escribo aunque ya es sumamente específico y requiere entender como implementar el programa.

Otra cosa que vale la pena resaltar en este ejemplo es la posibilidad de administrar con este controlador hasta 4 canales del receptor al mismo tiempo.
El interrupt, el salto a la rutina de servicio del “interrupt-on-change” ocurre si en cualquiera de los 4 pines RB4, RB5, RB6 y RB7 la tensión cambia su valor. El valor de la tensión de cada pin, “0” o “1” se puede leer en el programa en el registro “06h”.
Existen 2 tipos de receptores en dependencia de cómo proveen la señal. El uno, y ese es el que vino con mi radio control F14 Navy, empieza poniendo canal 1, después canal 2 hasta llegar a canal 8.
El otro tipo saca todas las señales al mismo tiempo.
En ambos casos es posible medir la longitud de los impulsos de 4 canales al tiempo.
La razón es que el interrupt “interrupt-on-change” es activado y resulta en que el controlador salta a la rutina de servicio correspondiente si cualquier de los pines RB4, RB5, RB6 o RB7 muestra un cambio de la tensión. Cuál de los pines vio el cambio se registra y se graba en el registro “06h”. Esto puede ser uno de ellos, 2, 3 o todos. El Bit correspondiente mostrara un “1” o un “0” según sea. El único cambio mayor en nuestra rutina de servicio consiste en leer y en como leer los valores de los Bits. Si las señales ocurren como en el receptor de mi F14 Navy, entonces el único cambio es definir cuál de los 4 pines cambio de valor y asignar el digito al canal correspondiente. Si uso un controlador como el mega168 o mega88 puedo medir las señales de hasta 8 canales.
Si las señales todas empiezan en el mismo momento y terminan en diferentes tiempos, entonces hay que dejar el contador contando hasta haber medido el último de los canales.
Puede parecer que este sistema no es exacto, pero sí lo es, pues aumentando la frecuencia con la que el contador cuenta aumenta la resolución. El controlador es tan rápido que el error es mínimo y puede ser ignorado.
El otro aspecto es que el contador en el pic16F84a es de solo 8 Bit. Eso significa que después de 256 pasos el valor vuelve a ser “0”. Realmente este contador es muy corto y uno de 16 bit o 64000 pasos es más adecuado. Pero hay que saber que existe un interrupt que es activado cada vez que el contador vuelve a tomar el valor de “0”. La rutina de servicio para este contador puede ser muy , pero muy breve, pues todo lo que haría es incrementar el valor de una variable. Cada 256 pasos esta variable aumentaría por “1” y así es posible contar sin pérdida de precisión lapsos de tiempo de cualquier longitud. Pero repito, cada 256 pasos es demasiado breve, pero factible.
--------------------
Saludos Hellmut
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

stoppen Sie, bitte. wenig aber langsam (alto, por favor. un poco mas despacio)

es que ejem..... mire usted, si yo solo estaba, esperando que mi mujer termine de hacer las compras, y me ha dicho que le compre un pinta labios aquí.

pues va a resultar que controlar estas cucarachas negras con patas, va ser mas dificil que ser fontanero en el titanic. valla tela marinera.

gracias Hellmut 1956, pero por favor, ten encuenta que sigues tratando con un novato, cuando me hablais del uso de los registros, me pierdo un poco, pero me he dado cuenta de una cosa, una vez mas y gracias a tu respuesta, que tengo que estudiar las hojas de datos, que estan en ingles,lo que pasa es que tu sabes cinco idiomas, y yo solo el español, de la región de andalucia.

bueno ahora, ya un poco mas en serio, dame un poco de tiempo que asimile y comprenda tu respuesta, ya que me interesa mucho esto, y quiero entender los pasos que me has descrito, con lo de las interrupciones y todo lo demás,

saludos y muchas gracias, ya te comentaré mis pasos.
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Hola josechu

No te preocupes. Lo que ocurre es que desde el punto de vista de la programmación en mi cursillo lo que estas haciendo ya es el titulo de bachiller!
Con muchísimo gusto the ayudo en el projecto paso por paso. Lo que no quiero hacer, es meterme de completo en la programación de los PIC. Ya tengo los suficientes problemas aprendiendo con los Atmel y aun mucho mas con los ARM.
Por esa razón en mi respuesta busque un compromiso entre detalle y abstración. Lo que resulto mientras escribía la respuesta fue que tuve que leer varias veces en la hoja de datos. Leyendo allí vi que los pines que selecionaste no son realmente apropiados y que no te estabas refiriendo al uso de los interrupt por cambio de tensión que el controlador tiene para los pines 4 a 7 del portal B!
Yo conectaría los LEDs a pines del portal A para mantener estos bien separador del proceso de leer las senal del receptor. Para la entrada de la senal del reeptor usariía un de los pines a los que me refiero del portal B!
Ya sabes de cual tipo de receptor el que usas es? Salen las senales de los differentes canales al mismo tiempo a uno tras el otro como lo hace el de mi F14 Navy?
--------------------
Saludos Hellmut
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

el receptor que utilizo es este:

de la casa futaba de 7 canales en 2,4 Ghz. normarmente para mis pruebas utilizo el canal dos.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

y aquí la emisora,
junto a mis experimetos practicos.
así como lo tengo instalado, con la bateria alimento la placa de pruebas y el receptor,
puedo probar tambien servos,
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
josechu
Miembro Leal
Miembro Leal
Mensajes: 1406
Registrado: Mar Oct 20, 2009 8:14 pm
Ubicación: Illescas (Toledo)

Re: Preguntas, Comentarios y Sugerencias

Mensaje por josechu »

esta es la placa con la que estoy haciendo mis pruebas,
la diseñe solo para los pic 12f508, 16f84a y 16f876a,
el motivo de hacer esta, es que como tenia en proyecto varios circuitos, de varios pic, entre ellos un variador, con esta placa me ahorro tiempo y dinero, al probar directamente el resultado sobre los pines del micro.

no obtante ya sabeis que tengo pensado hacer la tarjeta experimental con el Atmel, la pena es que no sean los pic, pero como por otro lado son mas baratos y con mayores prestaciones, y también que gracias a Dios tenemos muy buen profe, nada a hay que hacerla ya.

por otro lado, y en honor a la verdad, mi amigo que ha hecho el sofware para encender y apagar los led, del esquema anterior, me recomendó que pusiese los led, en las salidas del puerto Ra, lo que pasa, es que yo por mi cuenta y riesgo, he cambiado los pines, probando mejores resultados, pero si te fijas en la foto de la placa, asi es como me dijo mi amigo que lo conectara.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1305
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Preguntas, Comentarios y Sugerencias

Mensaje por Hellmut1956 »

Ahoa entiendo porque ya te montas en projectos de bachiller!.
La belleza del diseno claro y limpio de la tarjeta muestra que ya tienes los conocimientos para hacer la tarjeta experimental sin problema alguno!
Creo que el foco de acciones para tí será la programación. Veras que con BASCOM es sencillísimo programar pues ya tiene comandos que hacen gran parte de la labor de programación.
Otra vez, un sobresaliente! Hey, ya estoy cayendo en el comportamiento de profe. Perdona.
--------------------
Saludos Hellmut
Responder