¿Cómo conectar dos Arduino sin escudos?

14

Estoy planeando un sistema Arduino que consta de varias placas Arduino. La distancia máxima entre las tablas es de unos 50 metros. Quiero enviar datos básicos entre estos, como cadenas cortas o enteros. Sé que podría enviar datos a través de cables de ethernet, pero eso requiere un escudo de ethernet o la placa Arduino Ethernet que duplica los costos. ¿Hay una forma de bajo presupuesto para poder conectar las placas usando solo las placas más básicas (como Uno) y algunos otros componentes pero no un escudo completo?

totymedli
fuente
Si el presupuesto no fuera un problema, puede usar chips bluetooth o xbee. No son tan malos, pero
costarán
@ Steven10172 Los dispositivos Bluetooth son útiles, pero parece que el OP quiere una solución barata sin escudos (¿perfil bajo, tal vez?)
Anonymous Penguin
3
¡ Asegúrese de conectar los terrenos si su medio de transferencia es la electricidad!
Anonymous Penguin

Respuestas:

9

Para una comunicación por cable de larga distancia, mire RS-485 .

Dado que utiliza una línea balanceada diferencial sobre un par trenzado (como RS-422), puede abarcar distancias relativamente grandes (hasta 4,000 pies (1,200 m)). Una regla general es que la velocidad en bits / s multiplicada por la longitud en metros no debe exceder 108. Por lo tanto, un cable de 50 metros no debe indicar más rápido que 2 Mbit / s

Puedes usar el chip MAX485. Es bastante fácil trabajar con él, pero también hay una buena biblioteca:

https://github.com/Protoneer/RS485-Arduino-Library

Sachleen
fuente
¿No podría simplemente pelar los cables en RS-485 o similar y usarlo en serie para ahorrar dinero? 9600 baudios no se ejecuta casi tan rápido como 2 Mbps. ¿Hay algo especial sobre el protocolo / voltajes / etc. eso lo hace adecuado para largas distancias? Podría ahorrar algo de dinero ...
Anonymous Penguin
Es una señal diferencial enviada a través de un par trenzado. Reduce el ruido. en.wikipedia.org/wiki/Differential_signaling
sachleen
Esta página es un excelente recurso en RS485 con Arduino gammon.com.au/forum/?id=11428
DaveP
7

Se me ocurren dos categorías para clasificar las características de conminucación de las placas Arduino:

Entre 2 dispositivos:

  • Serie: fácil de usar y solo requiere 2 líneas de datos.
  • OneWire: más difícil de usar y lento, pero usa solo una línea de datos

Entre más de 2 dispositivos.

  • I2C: puede tener hasta 128 dispositivos en una red, direccionables individualmente, pero requiere un dispositivo maestro, utiliza 2 líneas de datos. Esto también se conoce como Wire.
  • SPI: difícil de usar, pero selección de dispositivo muy rápida y fácil. usa muchas líneas de datos (3 + número de dispositivos)
  • OneWire: el uso de oneWire direccionado es aún más lento que oneWire normal, todavía solo una línea de datos
  • SoftwareSerial: puede tener varios dispositivos conectados por diferentes líneas de serie, pero es más lento.
  • PUEDE: solo disponible en el vencimiento y direccionable

Hay otros métodos disponibles, pero estos solo requieren un mínimo de hardware externo.

Para clasificaciones de distancia, consulte http://forum.arduino.cc/index.php?topic=82937.0 y http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html

Estas velocidades de datos se controlan directamente en serie y se pueden modificar en muchos otros.

TheDoctor
fuente
5

Freakduino fabrica algunas placas Arduino con conexión inalámbrica integrada. Su largo alcance inalámbrico es 900 MHz y su alcance más corto es 2.4GHz. Creo que en realidad son radios XBee y para la programación usarías una biblioteca llamada chibiArduino, que está disponible (y documentada) en el sitio web de Freakduino. Al comunicarse de forma inalámbrica con otra radio, puede usar Broadcast o especificar una radio por su ID, que es un valor que debe configurar en la EEPROM del Freakduino.

Tomado directamente del sitio Freakduino:

La adición de una radio inalámbrica integrada basada en el protocolo IEEE 802.15.4 (el mismo protocolo de radio que el XBee) permite el control inalámbrico de dispositivos o la recopilación de datos de sensores inalámbricos. Se agregó un circuito de batería opcional para que pueda funcionar como un verdadero nodo inalámbrico sin cables de alimentación externos. La placa también está diseñada para adaptarse a una carcasa resistente para que el diseño pueda transportarse de manera segura o implementarse en un escenario de uso real sin preocuparse por dañar los circuitos.

Esta radio de 900 MHz es mi favorita personal. Lo uso todo el tiempo porque 900 MHz ofrece un rango mucho mejor en comparación con 2.4 GHz. La radio puede emitir hasta 10 mW de potencia de transmisión, lo que puede obtener una sorprendente cantidad de alcance. Con una línea de visión directa, unos pocos cientos de metros no serían sorprendentes. Si se necesita un rango adicional, el modo de modulación también se puede cambiar de OQPSK a BPSK. Esto da como resultado un rango adicional a expensas de la velocidad de datos, con un máximo de 250 kbps a 40 kbps en modo estándar.

HK1
fuente
0

Como dijiste, los protectores de Ethernet son caros, pero no tienes que usar el protector. Eche un vistazo a la enc28j60 para redes cableadas o ESP8266 si prefiere la conexión inalámbrica. Ambos cuestan alrededor de $ 4USD. Estoy usando el ESP8266 ahora y tengo unos 8 dispositivos hablando entre sí y un Raspberry Pi. ¡Es un pequeño chip realmente genial! No puedo hablar personalmente con el ENC28j60, ya que todavía están en el paquete en mi escritorio.

Mantequillas
fuente
0

Podría usar una placa de conexión Ethernet ($ 2 en Sparkfun). Esto le permite usar los cables de Ethernet, pero no tiene que usar un protocolo TCP / IP completo; en su lugar, solo puede conectar los pines de datos a la placa de conexión, usar Ethernet para conectarlos y luego hacer que hablen en serie. Utilizo esto bastante para colocar sensores de un cable más lejos del Arduino para una conexión fuerte pero barata.

Nathan
fuente