👉 Comunicación I2C entre 3 Arduinos 🧠⚡ | Wire.h Paso a Paso (Cómo conectar 3 Arduinos)

Guaposaurio dice blablabla
11 Mar 202117:25

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

plate

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

Upgrade durchführen

Mindmap

plate

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

Upgrade durchführen

Keywords

plate

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

Upgrade durchführen

Highlights

plate

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

Upgrade durchführen

Transcripts

plate

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

Upgrade durchführen
Rate This

5.0 / 5 (0 votes)

Ähnliche Tags
ArduinoI2CElectrónicaProgramaciónLEDsPotenciómetroProyectos DIYTutorialMicrocontroladoresEducativoCircuitosCodificación
Benötigen Sie eine Zusammenfassung auf Englisch?