👉 Comunicación I2C entre 3 Arduinos 🧠⚡ | Wire.h Paso a Paso (Cómo conectar 3 Arduinos)
Summary
TLDREste video explica cómo establecer una comunicación I2C entre dos placas Arduino, una configurada como maestro y la otra como esclava. El maestro lee el valor de un potenciómetro conectado al pin analógico A0 y envía los datos al esclavo, que controla dos LEDs dependiendo del valor recibido. Además, se muestra cómo agregar más Arduinos al sistema, cómo solucionar problemas comunes, y cómo manejar un botón para controlar un LED adicional. Se utiliza la librería 'Wire.h' para la comunicación, demostrando su funcionalidad en diferentes configuraciones y escenarios de simulación.
Takeaways
- 😀 El proyecto utiliza dos Arduino, uno configurado como maestro y otro como esclavo, para intercambiar valores mediante comunicación I2C.
- 😀 El Arduino maestro lee un potenciómetro conectado al pin analógico 0 y mapea su valor de 0-1023 a 0-255 antes de enviarlo al esclavo.
- 😀 La comunicación entre los Arduinos se realiza mediante los pines SDA (A4) y SCL (A5) utilizando la librería Wire de Arduino.
- 😀 El Arduino esclavo está configurado con la dirección 8 y recibe los datos enviados por el maestro para controlar dos LEDs en los pines 2 y 3.
- 😀 Dependiendo del valor recibido, el esclavo enciende uno de los LEDs: si el valor es menor a 127, se enciende el LED izquierdo; si es mayor, se enciende el LED derecho.
- 😀 Se puede expandir el sistema para incluir múltiples Arduinos adicionales conectados en el mismo bus I2C.
- 😀 Se introduce un botón en el Arduino maestro que permite enviar valores específicos al esclavo para encender o apagar un LED adicional con dirección 9.
- 😀 Es importante definir correctamente los pines de entrada y salida, y mapear correctamente los valores para que los LEDs respondan adecuadamente a los datos recibidos.
- 😀 La depuración mediante Serial Monitor permite verificar los valores transmitidos y recibidos, facilitando la identificación de errores de conexión o de código.
- 😀 Errores comunes incluyen la falta de cables de conexión o errores de sintaxis en el código, los cuales pueden impedir la correcta comunicación y control de los LEDs.
Q & A
¿Qué tipo de comunicación se utiliza entre los dos Arduinos en el proyecto?
-Se utiliza la comunicación I2C (Inter-Integrated Circuit), que se basa en dos señales: SDA (Datos) y SCL (Reloj).
¿Qué componentes están conectados al Arduino maestro y al Arduino esclavo?
-Al Arduino maestro se conecta un potenciómetro en el pin analógico 0, mientras que al Arduino esclavo se conectan dos LEDs en los pines 2 y 3.
¿Qué valores se leen del potenciómetro en el Arduino maestro?
-El valor del potenciómetro se lee como un valor analógico en el pin 0 y se mapea a un valor entre 0 y 255 para enviarlo al Arduino esclavo.
¿Cómo se envían los datos desde el Arduino maestro al esclavo?
-Los datos se envían usando la función `Wire.beginTransmission(8)` para iniciar la transmisión y `Wire.write(valor)` para enviar el valor mapeado al Arduino esclavo, donde 8 es la dirección del esclavo.
¿Qué sucede en el Arduino esclavo al recibir los datos?
-En el Arduino esclavo, los datos recibidos determinan qué LED encender: si el valor es menor que 127, enciende el LED izquierdo, y si es mayor o igual a 127, enciende el LED derecho.
¿Qué hace el código en el Arduino esclavo al recibir la señal del maestro?
-El código en el Arduino esclavo escucha la transmisión mediante la función `Wire.onReceive()`, que activa un evento cada vez que se reciben datos. Dependiendo del valor recibido, enciende o apaga los LEDs.
¿Cuál es la finalidad del botón conectado al Arduino maestro?
-El botón permite enviar un valor digital al Arduino esclavo para encender o apagar un LED, dependiendo de si el botón está presionado o no.
¿Cómo se configura el botón en el código del Arduino maestro?
-En el código del Arduino maestro, se configura el botón como entrada digital mediante `pinMode(pin, INPUT)` y se lee su estado con `digitalRead(pin)` para enviar el valor al Arduino esclavo.
¿Qué cambios se realizan en el código cuando se agrega un nuevo Arduino esclavo?
-Cuando se agrega un nuevo Arduino esclavo, se cambia la dirección del esclavo en el código, y el Arduino maestro debe enviar datos a la nueva dirección utilizando `Wire.beginTransmission(nueva_direccion)`.
¿Qué problemas se mencionan en la demostración del proyecto?
-Se mencionan problemas relacionados con la falta de cables correctos o conexiones defectuosas, lo que provoca que los datos no se reciban correctamente entre los Arduinos.
Outlines

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.
قم بالترقية الآنMindmap

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.
قم بالترقية الآنKeywords

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.
قم بالترقية الآنHighlights

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.
قم بالترقية الآنTranscripts

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.
قم بالترقية الآنتصفح المزيد من مقاطع الفيديو ذات الصلة

Protocolo SPI entre 2 Arduinos | Protocolos e Interfaces de Comunicación

Principios de funcionamiento de redes locales

Conectar 2 ROUTERS Cisco Packet Tracer

Capacitor - Capacitancia

COMUNICACIONES - ¿Cómo funcionan? - Parte 3 - El protocolo I2C

Arduino en Tinkercad #5: Monitor serial Parte 1 (Enviando datos al Monitor Serial)
5.0 / 5 (0 votes)