I2c test con 2 unità e stepper motor

Ciao a tutti,
sto facendo esperienza con la comunicazione i2c tra dispositivi e fintanto che si tratta di mandare semplici comandi da una board all’altra non ho grosse difficoltà.
Il prossimo step è vedere di riuscire a pilotare un motorino passo passo collegato ad uno slave.

Ho collegato in i2c un Arduino Uno (master) e un Arduino Nano (slave), al quale ho collegato tramite il driver ULN2003AN il classico 28byj-48.

Perdonate la rozzezza ma sono alle prime armi con Arduino…

Il master semplicemente manda in successione due comandi allo slave: “accendi” e “spegni”.
Lo slave, nella mia testa, dovrebbe accendere il LED integrato e far compiere una rivoluzione completa al motore.

Lo sketch funziona solo dalla parte del LED, mentre quando viene “attivato” il motore, semplicemente si blocca tutto, con due Led accesi del driver, il LED integrato acceso, e nessun movimento del motore.

Cosa sto sbagliando concettualmente?
Grazie a tutti per l’aiuto (e perdonate se ho sbagliato qualcosa nello scrivere il mio primo post)!

// MASTER
#include <Wire.h>

void setup() {
  Wire.begin(); // master
  Serial.begin(9600);
}

void loop() {
  Wire.beginTransmission(0x01);
  Wire.write("accendi");
  Wire.endTransmission();
  delay(1000);
  Wire.beginTransmission(0x01);
  Wire.write("spegni");
  Wire.endTransmission();
  delay(1000);
}
// SLAVE
#include <Wire.h>
#include <Stepper.h>

Stepper motore(2048,2,4,3,5);

void setup() {
  Wire.begin(0x01); // slave address 0x01
  Wire.onReceive(receiveEvent);
  Wire.onRequest(requestEvent);
  Serial.begin(9600);
  motore.setSpeed(10);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  delay(100);
}

void receiveEvent(int howMany) {
  String c = "";
  while (Wire.available()) {
    c += char(Wire.read());
  }
  if (c == "accendi") {
    digitalWrite(LED_BUILTIN, HIGH);
    //motore.step(2048);
  } else if (c == "spegni") {
    digitalWrite(LED_BUILTIN, LOW);
  }
}
void requestEvent() {
  Wire.write(Wire.read());
}

Alimenti tutto tramite i 5V di arduino uno?

Ho fatto dei tentativi sia alimentando con i 5V usb entrambe le schede, sia con una 9V collegata ad un alimentatore per breadboard della Elegoo (power MB v2), ma ho sempre lo stesso esito.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.