Skip to content

Instantly share code, notes, and snippets.

@paco-ruvalcaba
Created March 20, 2025 23:14
Show Gist options
  • Save paco-ruvalcaba/9049e445fd5ed549832afa7819b0c3dc to your computer and use it in GitHub Desktop.
Save paco-ruvalcaba/9049e445fd5ed549832afa7819b0c3dc to your computer and use it in GitHub Desktop.
Código para una práctica de redes en Bus con Arduino
#include <Wire.h>
volatile bool TransmitirDatos = false;
volatile bool RecibirDatos = false;
volatile byte x = 0;
void transmitir() {
TransmitirDatos = true; // Bandera para transmitir
}
void recibir() {
RecibirDatos = true; // Bandera para recibir
}
void setup() {
Wire.begin(); // Unirse al bus I2C
attachInterrupt(digitalPinToInterrupt(2), recibir, FALLING); // Recibimos datos en el flanco de bajada del pin 2
attachInterrupt(digitalPinToInterrupt(3), transmitir, FALLING); //Enviamos datos en el flanco de bajada del pin 3
}
void loop() {
if (TransmitirDatos) {
TransmitirDatos = false; // Borrar la bandera
Wire.beginTransmission(8); // Transmitir al dispositivo #8
Wire.write(x); // Mandar un byte
Wire.endTransmission(); // Detener la transmisión
}
if (RecibirDatos) {
RecibirDatos = false; // Borrar bandera
Wire.requestFrom(10, 1); // Pedirle 1 byte al dispositivo #10
if (Wire.available()) {
x = Wire.read();// Leer la transmisión
}
}
delay(100); // Dar tiempo a la comunicación
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment