#include #define DIR_PIN 8 #define STEP_PIN 9 #define ENABLE_PIN 10 #define SLAVE_ADDRESS 0x04 #define STEPS_PER_CM 50 // Pasos necesarios para mover 1 cm void setup() { // Configurar los pines como salida pinMode(DIR_PIN, OUTPUT); pinMode(STEP_PIN, OUTPUT); pinMode(ENABLE_PIN, OUTPUT); // Iniciar comunicación I2C Wire.begin(); // Habilitar el controlador de motor (activo bajo) digitalWrite(ENABLE_PIN, LOW); // Establecer dirección a HIGH para avanzar digitalWrite(DIR_PIN, HIGH); } void loop() { // Avanzar 10 cm (500 pasos) for(int x = 0; x < 500; x++) { digitalWrite(STEP_PIN, HIGH); delayMicroseconds(3000); // Ajustar delay para velocidad deseada digitalWrite(STEP_PIN, LOW); delayMicroseconds(3000); // Ajustar delay para velocidad deseada } delay(5000); // Pausa de 5 segundos // Enviar señal al otro XIAO Wire.beginTransmission(SLAVE_ADDRESS); Wire.write("1"); // Enviar señal para encender el LED Wire.endTransmission(); // Detener el motor después de 1 ciclo while(true); }