👉 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

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenMindmap

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenKeywords

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenHighlights

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenTranscripts

Dieser Bereich ist nur für Premium-Benutzer verfügbar. Bitte führen Sie ein Upgrade durch, um auf diesen Abschnitt zuzugreifen.
Upgrade durchführenWeitere ähnliche Videos ansehen

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)