This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Enlazar Arduinos
#1
Buenas

Estoy con un proyecto entre manos en el que mi intención es conectar 15 leds RGB y 13 leds normales a arduino y además todo esto controlarlo desde un módulo bluetooth conectado al arduino.

El tema del módulo bluetooth ya lo tengo solucionado gracias a otro post por Spainlabs en el que me echasteis una mano.

El problema es que al utilizar tantos leds no tengo suficientes pines para manejar todos los ellos, ya que quiero que cada uno de ellos quiero que vaya independiente y por lo tanto solo con los leds RGB ya me llevo 46 pines contando con el de 5V.

Como quiero controlarlo desde el móvil desde el módulo bluetooth los comandos tengo que mandarlos a un único arduino (creo). Por lo tanto mi pregunta es: ¿Hay alguna manera de que conectando dos arduinos mega 2560 recibiendo datos solo uno de ellos, pueda hacer que vaya encendiendo a mi antojo los leds de ambos arduinos?  (No se si me he explicado bien Confundido Confundido )
  Responder
#2
Yo no controlo mucho de electrónica, pero de la Universidad recuerdo que había unos módulos electrónico tipo microchip de puertas lógicas, que con 4 entradas controlabas 16 salidas, creo que si usas algo así te ahorras muchos pines. Siempre desde mis pocos conocimientos.
  Responder
#3
En un libro leí que se podía conectar dos placas Arduino mediante la conexión serial (conectas los pines TX y RX de las placas cruzados: TX(placa1)-RX(placa2), RX (placa1)-TX(placa2) ) a una velocidad de 115200 bps. Para comunicarlos además con bluetooth tendrás que crear un nuevo puerto serial con la librería SoftwareSerial.h creo. Además cada placa tiene su programa, puedes mandar con el bluetooth un número o carácter y que en cuanto la placa 1 lo reciba encienda `x` nº de leds y envíe otro nº o carácter a la placa 2 para que encienda otros leds a la vez.
El libro se llama ARDUINO Guía Práctica y su autor es Byron O.Ganazhapa.
Un Saludo y suerte!
  Responder
#4
Se lo que dices montagut pero con eso creo que si mando que se encienda una de las entradas se encenderian varios leds a la vez y yo quiero que se enciendan de manera individual conforme yo quiera, gracias igualmente Guiño

Voy a ver si encuentro el libro en pdf y averiguo como enlazarlos.... Seguro que me voy a dar de ostias con el código con las variables u.u, si es como tu dices
  Responder
#5
Vale, al parecer es bastante fácil.

Simplemente hay que identificar los pines SCL y SCA de nuestros arduinos o los sistemas que vayamos a conectar y unirlos con un cable y también juntar las GND. Y ya esta..

Cogiendo en ejemplos el apartado de Wire mas o menos te puedes apañar y hacer una idea

Aquí dejo un enlace que esta muy bien explicado:
http://programarfacil.com/blog/arduino-b...uinos-i2c/

Lo mas lioso va a ser a la hora de escribir el código e ir enlazando los datos que mandas desde el "master" con los pines que recibe el "esclavo". Yo para esto he hecho que mande una variable 'c' desde el master al esclavo y dentro del esclavo me peleo con el código y así el master no tengo que tocarlo
  Responder
#6
Hola

Los leds RGBs quieres controlarlos mediante señales PWM o con que le lleguen a cada pata señal digital vale?

Si es con señales digitales yo usaría registros de desplazamiento, con solo 2 salidas de arduino controlas todos los leds.
  Responder
#7
Me hubiese gustado que fueran señales PWM pero ya tenia esos pines reservados  Confundido

Explicate con lo de señales de desplazamiento Gran sonrisa que todavía soy bastante novato en esto
  Responder
#8
(23-08-2016, 07:42 PM)maxi94 escribió: Me hubiese gustado que fueran señales PWM pero ya tenia esos pines reservados  Confundido

Explicate con lo de señales de desplazamiento Gran sonrisa que todavía soy bastante novato en esto

MAX7221 o MAX7219 bastante conocidillos en el mundo arduino
http://playground.arduino.cc/Main/MAX72XXHardware

Siendo breve, lo que hace es "multiplicar" las salidas con un par de pines, puedes controlar bastantes más
  Responder
#9
Aqui te dejo informacion de como hacerlo, se trata de usar integrados 74HC595, los cuales tienen 8 salidas. Se puden encadenar tantos como se quieran.

http://roberto-mtz.blogspot.com.es/2012/...zando.html

La idea es introducir toda la informacion en forma de ceros y unos por la entrada serie del primer integrado y conectar los leds a las salidas de los integrados.

Si tienes alguna duda no tienes mas que preguntar, ya que he hecho varias cosas con este sistema y funciona de lujo.

Saludos
  Responder
#10
Maxi94, lo primero que necesitamos saber para aconsejarte es que disposición van a tener los led, no es lo mismo que los posiciones en linea, que hagas una matriz o un digito. Cada uno llevara un multiplexor distinto y adecuado para su uso.
  Responder
#11
Muchas gracias por la información, creo que tengo ambos tipos de integrados por algun lado ya que tengo un par de matrices leds que me suenan que usan MAX---- y uno o dos del 74HC595 o parecido tambien tengo de algun kit.

Mi intención es hacer una maqueta de una planta industrial, la he hecho con filamento transparente y dentro de cada edificio tengo metidos leds rgb, por lo general uno por edificio, mi intención es conectarlo a la planta real recibiendo los datos de este y por ejemplo si un tanque esta lleno hasta X altura pues que el color de ese tanque sea tal, si hay una bomba en funcionamiento pues que el led de esa bomba este encendido y ademas hacer algun que otro juego de luces vistoso. Con todo esto llevo casi 1000 lineas de código escritas, seguro que vosotros serías capaces de reducirlo a la mitad... Pero he de admitir que estoy aprendiendo bastante y no me importa hacerlo mejor o peor.

Espero aclararte la duda fbforos, gracias
  Responder
#12
Entonces el que mejor te viene es el 74hc595. Los 15leds de colores los podrías multiplexar tambien usando dos 4017 (divisor por 10). Cómo, muy facil. Unes todos los rojos, todos los azules y todos los verdes. Y con el 4017 vas encendiendo cada uno de ellos al tiempo que pones el color que quieres. Con 4 salidas y dos 4017 manejas los 15 leds
  Responder
#13
Supongamos que tengo dos 4017 como tu dices... mi duda esta a la hora de hacer por ejemplo que se ilumine el segundo led (por decir un led) de color rojo. No se muy bien como tendría que escribirlo en el código del arduino
  Responder
#14
Estoy mirando el chip 74hc595 y siguiendo varios tutoriales. Para poder controlar los leds que se enciendan segun le mande por el monitor serial he encontrado este:
https://www.arduino.cc/en/Tutorial/ShftOut12
Pero no entiendo muy bien como funciona, ¿Qué comando es el que hace que se encienda? ¿Como consigo que se enciendan varios leds a la vez? ¿Qué hace "bitToSend"?

Si podéis darme una pequeña explicacion para dummies de como funciona latchpin, clockpin y datapin lo agradeceria. Creo que clockpin es como una señal de reloj que cuando esta en HIGH deja pasar datos y en LOW es como si no funcionase el integrado, latchPin es con el que activamos o desactivamos unas salidas u otras y datapin no tengo ni idea. Si me equivoco corregidme, please
  Responder
#15
Básicamente envías los datos en forma serie y se representan en la salida en paralelo (con el manejo del latch).

Lo que necesitas enviar son bytes, que son los 8bits que corresponden a cómo se activarán las salidas (0 corresponde a nivel bajo y 1 a alto, como siempre). Por ejemplo, imagina que queremos encender el primer y último led, de los 8 que hay en la salida del 595; para ello, enviaríamos el byte B10000001, o 129 en decimal.
Debes tener en cuenta con la función ShifOut el orden de salida, LSB (empezando por el bit menos significativo) o MSB (más significativo).
  Responder
#16
Lo más sencillo es usar leds rgb tipo ws2812b que se conectan en cascada y sólo utilizas 1 gpio. Olvídate de bluetooth y de arduino y pon un esp8266 (2€) que se programa igual y que lo controlas por wifi. Si quieres le añades el bt pero para mí está obsoleto.
Desde cada sonda en el depósito o donde quieras puedes mandarle por wifi los datos a la maqueta.

Te recomiendo usar el framework Souliss que ya tiene todo esto solucionado.
Souliss.net
Y en google groups.

Saludos
F


enviado desde mi Sinclair Spectrum 16k
  Responder
#17
Tambien es buena idea la que sugiere manbade, led indexables.

Van unidos en serie por tres cables, negativo, positivo y datos. Yo uso la libreria de ADAFRUIT, con la que puedes controlar cada led, en color e intensidad como quieras y te quitas de problemas. Ademas es mucho mas simple porque no lleva electronica adicional, tan solo los leds y arduino.

Saludos
  Responder
#18
Primera vez que oigo eso de leds indexables, investigare un poco sobre el tema, pero segun estoy viendo solo los hay en tiras de leds o smd. A mi lo que me interesa son individuales porque por un lado tengo un led y alomejor a 20 cm tengo otro, los cuales se tienen que meter por un agujero que he hecho. Yo hasta hora he estado utilizando estos:
http://www.banggood.com/20Pcs-RGB-LED-Di...62534.html

Muchas gracias por la info ^^
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Comunicación entre arduinos a larga distancia daniez 12 8,330 25-03-2014, 12:47 AM
Último mensaje: daniez
  Conectar dos Arduinos entre si Electromecánico 4 7,415 02-01-2014, 10:30 PM
Último mensaje: giltesa
  Error TIMEOUT con mis arduinos 2560. asgranda 1 9,280 31-10-2013, 07:52 PM
Último mensaje: Triggerr