2.13 Motor

Überblick

In dieser Lektion lernen Sie, wie man einen Motor verwendet, dessen Funktionsprinzip darin besteht, dass die erregte Spule gezwungen wird, sich im Magnetfeld zu drehen, dann dreht sich der Rotor des Motors entsprechend, woraufhin das Ritzel das Schwungrad des Motors antreibt, um sich zu drehen.

Erforderliche Komponenten

../_images/list_2.13.png

Fritzing-Schaltung

In diesem Beispiel verwenden wir das Stromversorgungsmodul, um die Anode und Kathode des Steckbretts mit Strom zu versorgen. GND des Mega 2560 Boards ist mit der Kathode verbunden.

../_images/image141.png

Schematische Darstellung

../_images/image459.png

Code

Bemerkung

  • Sie können die Datei 2.13_motor.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\2.13_motor direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE.

Nachdem Sie die Codes auf das Mega2560-Board hochgeladen haben, können Sie die Drehrichtung des Motors auswählen, indem Sie im seriellen Monitor 「A」 oder 「B」 eingeben.

Code-Analyse

Der Motor kann angetrieben werden, indem eine Spannungsdifferenz zwischen den Kupferblechen auf beiden Seiten des Motors bereitgestellt wird. Daher brauchen Sie nur 0 für die Spannung der einen Seite des Kupferblechs und 5 V für die andere Seite zu schreiben. Ändern Sie den geschriebenen analogen Signalwert, um Richtung und Geschwindigkeit anzupassen.

void clockwise(int Speed)
{
analogWrite(motor1A,0);
analogWrite(motor2A,Speed);
}

void anticlockwise(int Speed)
{
analogWrite(motor1A,Speed);
analogWrite(motor2A,0);
}

In diesem Beispiel wird Serial.Read() verwendet, um die Richtung des Motors zu steuern.

Wenn Sie A in den seriellen Monitor eingeben, wird die Funktion im Uhrzeigersinn (255) aufgerufen, um den Motor mit der Geschwindigkeit von 255 drehen zu lassen. Geben Sie B ein, und der Motor dreht sich in umgekehrter Richtung.

void loop() {
if (Serial.available() > 0) {
    int incomingByte = Serial.read();
    switch(incomingByte){
    case 'A':
        clockwise(255);
        Serial.println("The motor rotate clockwise.");
        break;
    case 'B':
        anticlockwise(255);
        Serial.println("The motor rotate anticlockwise.");
        break;
    }
}
delay(3000);
stopMotor();
}

Phänomen Bild

../_images/image143.jpeg