BYJ48 léptető motor vezérlés ULN2003 motorvezérlővel

Ezt a kapcsolást, én még csak tesztelésre használtam, mert egyenlőre semmi olyan projektem nem volt, amihez külön léptető motor kellett volna. Ezért a részletesség teljes igénye nélkül mutatom be az összeállítást. A BYJ48 léptető motort csak csatlakoztassuk a vezérlő panelre. Hála az égnek teljesen hülyebiztos a csatlakozó, nem lehet fordítva csatlakoztatni.

41-D0uGC11L

Ezután a vezérlőt a következőképpen csatlakoztassuk az arduinohoz.

41rR7emmXMLGND — GND

VDD – 5V

In1 — D8

In2 — D9

In3 — D10

In4 — D11

A bekötés után töltsük fel a forráskódot a vasra, és teszteljük a működést.

Forráskód:

int motorPin1 = 8;     // Kék         - 28BYJ48 pin 1
int motorPin2 = 9;     // Rózsaszín   - 28BYJ48 pin 2
int motorPin3 = 10;    // Sárga       - 28BYJ48 pin 3
int motorPin4 = 11;    // Narancs     - 28BYJ48 pin 4
                       // Piros       - 28BYJ48 pin 5 (VCC)

int motorSpeed = 1000;  // Motor sebesség
int count = 0;          // Ciklus léptető operátor
int countsperrev = 720; // Ennyi lépés legyen 1 ciklusban
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};

//////////////////////////////////////////////////////////////////////////////
void setup() {
 
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  Serial.begin(9600);
}

//////////////////////////////////////////////////////////////////////////////
void loop(){
  if(count < countsperrev )
    clockwise();
  else if (count == countsperrev * 2)
    count = 0;
  else
    anticlockwise();
  count++;
}

void anticlockwise()
{
  for(int i = 0; i < 8; i++)   
  {     
    setOutput(i);
    delayMicroseconds(motorSpeed);
   }
   }
    void clockwise() 
  {   
   for(int i = 7; i >= 0; i--)
  {
    setOutput(i);
    delayMicroseconds(motorSpeed);
  }
}

void setOutput(int out)
{
  digitalWrite(motorPin1, bitRead(lookup[out], 0));
  digitalWrite(motorPin2, bitRead(lookup[out], 1));
  digitalWrite(motorPin3, bitRead(lookup[out], 2));
  digitalWrite(motorPin4, bitRead(lookup[out], 3));
}
(Statisztika: 23 megtekintés)

Vélemény, hozzászólás?

Az email címet nem tesszük közzé.