#include #include #define SDA_PIN 6 #define SCL_PIN 7 const int stepPin = 2; const int dirPin = 1; const int enPin = 28; const uint8_t I2C_ADDRESS = 0x55; const uint32_t I2C_FREQUENCY = 100000; volatile bool motorActivo = false; void receiveData(int numBytes) { String mensaje = ""; while (Wire.available()) { char c = Wire.read(); mensaje += c; } Serial.print("Received: "); Serial.println(mensaje); if (mensaje == "On") { motorActivo = true; } else if (mensaje == "Off") { motorActivo = false; } } void setup() { Serial.begin(115200); delay(2000); // ← más tiempo para que el serial se estabilice pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); pinMode(enPin, OUTPUT); digitalWrite(enPin, LOW); digitalWrite(stepPin, LOW); Serial.println("Initializing I2C..."); Serial.flush(); // ← asegura que se imprime antes de continuar Wire.setSDA(SDA_PIN); Wire.setSCL(SCL_PIN); Wire.begin(I2C_ADDRESS); Wire.setClock(I2C_FREQUENCY); Wire.onReceive(receiveData); Serial.println("Slave ready!"); } void loop() { if (motorActivo) { digitalWrite(dirPin, HIGH); digitalWrite(stepPin, HIGH); delayMicroseconds(1000); digitalWrite(stepPin, LOW); delayMicroseconds(1000); } }