Acuariofilia Madrid

Versión completa: Aula Arduino para principiantes.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas a todos, ya por fin me han ido llegando el arduino y los sensores, y estoy empezando a cacharrear con el mismo. Las dudas que me surgen son todas de electrónica y electricidad, que lo tengo muy olvidado, pero con simuladores y buscando info más o menos las estoy resolviendo.

Pero tengo una duda respecto al bus I2C. Si tengo un arduino (el mega, pero sería indiferente), y tengo un RTC de conexión I2C por un lado, y una pantalla LCD también I2C por otro como tenéis la mayoría. ¿Cómo conectáis ambos dispositivos a la vez si el arduino tiene solo un puerto I2C? ¿Usáis algún multiplexor? ¿Cómo resolvéis esta conexión de forma que sea transparente para el software? Seguro que este tema lo habéis tratado a lo largo del hilo porque CAO1 creo que utiliza a la vez un reloj RTC I2C y una pantalla lcd I2C, no?

En http://electronics.stackexchange.com/que...sda-and-a5 he creído entender que mientras los dispositivos utilicen una dirección distinta, se pueden conectar todos al mismo pin SDA o SCL. Aunque también habla de que hay que utilizar una resistencia para utilizar el I2C, esa resistencia va en los datos, o en el vcc de los dispositivos? de cuántos ohmios sería?
lo puedes conectar en paralelo los dos en los pines 20 y 21 del MEGA creo y 4 y 5 del UNO
(09-01-2015, 05:22 PM)LARVA escribió: [ -> ]lo puedes conectar en paralelo los dos en los pines 20 y 21 del MEGA creo y 4 y 5 del UNO

Y la resistencia de la que hablan? que hay que colocar una resistencia en los dispositivos que usan el I2C?
No hace falta poner nada. Como mucho comprobar que no comparten dirección I2C.
(09-01-2015, 08:14 PM)Agamenon escribió: [ -> ]
(09-01-2015, 05:22 PM)LARVA escribió: [ -> ]lo puedes conectar en paralelo los dos en los pines 20 y 21 del MEGA creo y 4 y 5 del UNO

Y la resistencia de la que hablan? que hay que colocar una resistencia en los dispositivos que usan el I2C?

[Imagen: 5037279_orig.jpg]

Esa resistencia es de tipo pull-up. Es decir, sirve para cargar el bus con voltaje positivo. Los procesadores internamente ya traen una resistencia interna pull-up en esos pines. y salvo en Arduino Mega se pueden deshabilitar por software.

En Arduino Mega se suelen conectar los dispositivos todos en paralelo sin necesidad de usar esas resistencias. Algunos dispositivos ya incluyen esas resistencias pull-up en sus circuitos y otros no. Usando resistencias de 10k suele ser suficiente y más seguro ya que en caso de existir resistencias redundantes evitamos cargar en exceso el bus.

Por ejemplo si de forma accidental estamos metiendo al bus un pull-up de 10k por duplicado sería como si metieramos un solo pull-up con resistencias de solo 5k, lo cual tambien puede funcionar. El problema es cuando no hay ningún pull-up, o cuando se juntan muchos o cuando se usan resistencias pequeñas (de menos de 1k)

Nos puede faltar información sobre los dispositivos I2C que conectamos a I2C. Lo recomendable es probar sin poner ninguna resistencia pull-up confiando en que no haga falta por estar ya incluida, en mega funciona bien sin pull-up porque ya lo incluye. Solo no funciona probar a meter un pull-up de 10k.
Perfecto, ya me he hecho mi programita base con todos los sensores funcionando y sacando la Info por la pantalla. Cuando pueda me pongo a bichear tu software que por lo que se comenta tiene muy buena pinta. Me interesa sobre todo ver como has hecho la parte de menús y el cambio entre modos de funcionamiento.
La parte de menus, es algo liosa. De hecho, el interfaz de usuario no tendría porque ser tan rudimentario como el que estamos usando (LCD + zumbador + botonera).

Dejo para un futuro mejorar estos aspectos.

El cambio en los modos de funcionamiento se basa en el uso de unas variables internas que controlan estos modos de funcionamiento. Lo que hago para que las variables no pierdan sus valores ante una eventual pérdida de fluido eléctrico, es mantener una copia de esos valores en la EEPROM.

Es lo que llamo parámetros del sistema. Es una de las partes que más útil resulta. Se puede usar para cualquier ajuste. Por ejemplo para el horario de iluminación o para la regulación de la temperatura, etc.
(11-01-2015, 11:27 AM)Antonio Castro escribió: [ -> ]El cambio en los modos de funcionamiento se basa en el uso de unas variables internas que controlan estos modos de funcionamiento. Lo que hago para que las variables no pierdan sus valores ante una eventual pérdida de fluido eléctrico, es mantener una copia de esos valores en la EEPROM.

Es lo que llamo parámetros del sistema. Es una de las partes que más útil resulta. Se puede usar para cualquier ajuste. Por ejemplo para el horario de iluminación o para la regulación de la temperatura, etc.

Si, desde luego se hace necesario poder guardar una configuración para que si se corta la corriente no se pierda toda la programación de encendidos/apagados.

Cuando tenga más tiempo me pongo a montar todo. Me imagino que habrás contemplado la posibilidad de actuaciones en caliente sobre la interfaz, como por ejemplo poder encender las luces fuera del horario programado sin necesidad de reprogramar los mismos no? ya sabes, unas variables globales o atributos del objeto activables desde la botonera que hagan un or con la variable estándar que esté controlando eso. Tengo ganas de trastear más.

Quiero dimmear y controlar la pantalla (powerleds de 3w) también con arduino, ya me han llegado los tip141. Pero voy a aprovechar para meter unos leds más y cambiaré o ampliaré la fuente. Necesitaré unos 100w aprox. Qué fuentes usáis vosotros? mean wells de corriente constante no? entiendo que montáis las sencillas (sin dimmeo a 10v) y entre la fuente y los leds metéis el tip no?

Estoy echando un ojo a las mean wells, y veo que la opción más económica es pillar varias eln de 60w antes que una hlg más potente. Pero se empezarán a acumular demasiadas fuentes me parece a mi (iba a poner también una fuente de pc para alimentar al arduino a 5v y los ventiladores a 12v). Alguna otra opción? Estuve barajando la posibilidad de usar drivers de corriente constante alimentados con la fuente de pc y quitar cacharros, pero cada driver aguanta poca potencia y son caros... me gastaría más en drivers para alimentar el sistema que en pillar una hlg de 150w...

Un saludo
OJO. Las fuentes de corriente constante no son adecuadas para dimear con PWM. Nosotros usamos fuentes de alimentación con voltaje constante.
A mí me basta conocer el voltaje de trabajo del LED. Yo he usado grupos de tres LEDs en serie conectados entre sí en paralelo. A cada LED le llegaría un tercio del voltaje total. Suele hacer falta una resistencia para absorber el exceso de voltaje.

En la próxima versión se podrá encender y apagar las luces fuera del horario programado. Actualmente la posibilidad es la de actuar sobre el horario, lo cual no es muy práctico. -fisch.gif
(14-01-2015, 01:11 PM)Antonio Castro escribió: [ -> ]OJO. Las fuentes de corriente constante no son adecuadas para dimear con PWM. Nosotros usamos fuentes de alimentación con voltaje constante.
A mí me basta conocer el voltaje de trabajo del LED. Yo he usado grupos de tres LEDs en serie conectados entre sí en paralelo. A cada LED le llegaría un tercio del voltaje total. Suele hacer falta una resistencia para absorber el exceso de voltaje.

En la próxima versión se podrá encender y apagar las luces fuera del horario programado. Actualmente la posibilidad es la de actuar sobre el horario, lo cual no es muy práctico. -fisch.gif

Pues me acabas de dar un dato importante que desconocía. Creía justo que era al revés, que para leds era preferible usar fuentes de corriente constante y no de voltaje. Entonces para dimear con tips por PWM es preferible fuentes de tensión constante no? así que una fuente de pc sirve perfectamente creando series de 3 leds + resistencia conectados a los 12v entiendo. La cosa es, no van a absorber mucha potencia esas resistencias?? las pones con disipador? cómo haces los cálculos para determinar la resistencia?? porque los leds no trabajan a un voltaje fijo, sino en un rango, y a priori no sabes tampoco cuanta corriente chuparán.

Pongo un ejemplo práctico que será más sencillo de resolver. Si presupongo que mis leds trabajarán a 3,3v y 750mA (a unos 2,5w para no tenerlos a tope) una serie de 3 leds comerán 9,9v. Así a groso modo podría decir que los 2,1v restantes a 750mA según la ley de Ohm necesitaría una resistencia de 2,1 / 0,75 = 2,8 ohmios?? no es excesivamente pequeña? y no es mucho presuponer que los leds trabajarán a ese voltaje y no subirán a 3,5 o 3,8v?

Respecto al software, cuando ya tenga toda la parte hardware montada, los bricos necesarios hechos en el mueble y el arduino estable y funcionando (ni idea cuándo, meses a este ritmo jeje), estaré disponible para ayudar a programar los módulos y funcionalidades que hagan falta.
La ley de Ohm, no falla. Big Grin

La potencia que van a disipar es fácil de calcular si sabes la intensidad que circula por la resistencia y obviamente por los LEDs y conoces la diferencia de potencial en los extremos de la resistencia .... Watios= Voltios*Intensidad

Si te preocupa la perdida de eficiencia en las resistencia, lo que debes hacer es ajustar el voltaje de alimentación a un múltiplo exacto de la tensión de los LEDs.

3.3v * 3 = 9.9v
3.3v * 4 = 13.2v

Muchas fuentes Mean Well son ajustrable y una fuente de 12v quizás no logre bajar hasta los 10v pero subir a los 13.2v probablemente sí.

El único problema de trabajar con un voltaje no estándar es que en algún otro elemento como ventiladores no podrías usar directamente. Tendría que rebajarlo con un regulador de voltaje. A las fuentes para el dimeado de LEDs de potencia conviene ponerle una ferrita para impedir el paso de interferencias en ambos sentidos.

Si desea meterte a fondo en el tema de programación puedes guiarte por mi libro y por el estudio de los fuentes.

A mí me encanta compartir conocimiento y en programación Arduino C++ no he tenido ocasión de compartir mucho, así que sería un placer.
(14-01-2015, 02:47 PM)Antonio Castro escribió: [ -> ]La ley de Ohm, no falla. Big Grin

La potencia que van a disipar es fácil de calcular si sabes la intensidad que circula por la resistencia y obviamente por los LEDs y conoces la diferencia de potencial en los extremos de la resistencia .... Watios= Voltios*Intensidad

Si te preocupa la perdida de eficiencia en las resistencia, lo que debes hacer es ajustar el voltaje de alimentación a un múltiplo exacto de la tensión de los LEDs.

3.3v * 3 = 9.9v
3.3v * 4 = 13.2v

Muchas fuentes Mean Well son ajustrable y una fuente de 12v quizás no logre bajar hasta los 10v pero subir a los 13.2v probablemente sí.

El único problema de trabajar con un voltaje no estándar es que en algún otro elemento como ventiladores no podrías usar directamente. Tendría que rebajarlo con un regulador de voltaje. A las fuentes para el dimeado de LEDs de potencia conviene ponerle una ferrita para impedir el paso de interferencias en ambos sentidos.

Si desea meterte a fondo en el tema de programación puedes guiarte por mi libro y por el estudio de los fuentes.

A mí me encanta compartir conocimiento y en programación Arduino C++ no he tenido ocasión de compartir mucho, así que sería un placer.

Pero mi idea sería, al necesitar voltaje constante y no corriente constante, usar una fuente de pc que da mucho amperaje a 12v y además tiene 5v para alimentar al arduino. Todo en uno y ya bien refrigerada de serie. Pero claro, no puedo modificar los 12v... en todo caso usar un divisor de tensión para bajarlos.

La cuestión es que, una resistencia estándar de esos 2,8 ohmios o ligeramente superior, es muy muy pequeña. Si, como en el ejemplo que puse, está a 2.1v, 750mA esa resistencia estaría consumiendo alrededor de 1,5w. No es una barbaridad para una pequeña resistencia?? yo diría que eso se quema seguro no? la verdad que no se a priori cuántos vatios aguantarían. Tu tienes una resistencia por cada serie?? porque calcular unas resistencias equivalentes y utilizar una resistencia por cada 2 o 3 (creando subseries claro) ya sería inviable por la potencia que tendrían que disipar esas resistencias no??

Y tu las resistencias las tienes pegadas al disipador en cada serie o no lo has visto necesario?

Dices que conviene ponerle una ferrita a la fuente. La ferrita si no me equivoco se pone alrededor de un cable para apantallarlo no? habría que ponerla en el cable que alimenta las series de leds?

Buscando por internet no se encuentra información clara sobre esto, y no conozco nadie en persona que tenga un montaje hecho de este tipo para ir a verlo insitu y entenderlo. Cuantas más vueltas le doy más dudas siguen.
Hola.
En otros foros he leído que las fuentes de PC no son muy aconsejables para montajes con leds, por tema de ruido.

En aliexpress compré una fuente de 13,5 v, 25A por 26€, que la puedes regular desde 11 a 15 v de salida.

Te recomiendo que compres la fuente sobrada de potencia, yo me equivoqué al hacer los cálculos, y al llevar la fuente al máximo, hacia un ruido muy molesto.

Con un par de reguladores de potencia y 4 condensadores sacas 5 v para Arduino, reles, etc, y 12v para ventiladores..

Saludos
(14-01-2015, 07:42 PM)xavi escribió: [ -> ]Hola.
En otros foros he leído que las fuentes de PC no son muy aconsejables para montajes con leds, por tema de ruido.

En aliexpress compré una fuente de 13,5 v, 25A por 26€, que la puedes regular desde 11 a 15 v de salida.

Te recomiendo que compres la fuente sobrada de potencia, yo me equivoqué al hacer los cálculos, y al llevar la fuente al máximo, hacia un ruido muy molesto.

Con un par de reguladores de potencia y 4 condensadores sacas 5 v para Arduino, reles, etc, y 12v para ventiladores..

Saludos

Una fuente de alimentación que funcione ininterrumpidamente muchas horas al día durante varios años debería ir sobrada de potencia.

El filtrado del ruido se hace mediante condensadores de gran capacidad. Estos son capaces de vaciarse muy rápidamente cuando llega el pulso de consumo y se llenan durante el pulso de reposo, pero si el consumo es mayor del que la fuente puede proporcionar, los condensadores se terminan vaciando y no pueden hacer la función de filtrado. En estos casos un aumentando la capacidad del condensador no serviría de nada.

Yo he usado una fuente de alimentación conmutada Mean Well RS-100-12 y no hace nada de ruido.

Dentro de esta serie de fuentes hay diferentes modelos para distintos voltajes y potencias. Estaba un poco justa de potencia y tras decidir aumentar la iluminación tuve que comprar un modelo superior para poder ampliar potencia de iluminación.

Concretamente hablo de la RS-150-12 (para 150W) . Es la mas potente dentro de esta gama y tampoco hace nada de ruido.

Desde la página que indico más adelante y entrando en un modelo concreto podéis ver sus características. Por ejemplo, esta fuente RS-150-12 tiene una salida ajustable entre 11.4 y 13.2 voltios.

Las Mean Well RS son fuentes de la serie G3. Se venden mucho, muy buana calidad precio, están muy bien. Tienen fama de ser muy robustas. En la tienda me indicaron que son fuentes para toda la vida. Tienen una gama amplísima y creo que no hay que complicarse la vida buscando otras marcas, pero eso solo es una opinión. Obviamente no lo conozco todo.

Para potencias superiores a 150W tenéis otras series de fuentes de esta marca. Podeis echar un vistazo en:

http://www.meanwell.com/Spanish/webnet/s...earch.html

Si alguien ha usado fuentes de otras marcas y modelos para el dimeo de LEDs con Arduino, conviene que comparta la información porque así nos haremos una idea de que fuentes van bien. Comprar una fuente y descubrir que no sirve es una faena.
Tendré en cuenta la fuente que mencionas Antonio si la fuente de pc no me da un resultado adecuado. Ya he hecho un pedido de resistencias de 2,2 ohmios y 2w que deberían servirme para las series de led si finalmente los tengo que montar así. También mis leds blancos funcionan a 3,3v y la fuente de pc que tengo disponible en el canal de 3,3v da 30A... así que conectando todos los blancos en paralelo ya estarían a sus 3,3v sin necesidad de resistencias y el canal da suficiente corriente para todos.

Y ya retomando el tema más relacionado con arduino, el de los pulsos PWM para el dimeo. Miraré las especificaciones del tip141 para ver el máximo amperaje que soporta y usar tantos tips y líneas distintas como sean necesarios. La cuestión es que entiendo que el tip en su base necesita poco amperaje para hacer el dimeo. Una sola salida PWM de arduino podré conectarla en paralelo a 4 o 5 tip141 sin problemas no? seguirá siendo necesaria la resistencia (era de 2k2 o 2k8?? buscaré en este mismo hilo que unas páginas más atrás lo decías) o ya el ampejare se ha repartido suficiente?