Motor¶
Überblick¶
In dieser Lektion lernen Sie, wie man einen Motor verwendet, dessen Arbeitsprinzip darauf beruht, dass die stromdurchflossene Spule im Magnetfeld zur Rotation gezwungen wird und somit der Rotor des Motors entsprechend rotiert, wodurch das Ritzelrad das Schwungrad des Motors antreibt.
Benötigte Komponenten¶
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
- |
|
- |
Verdrahtung¶
In diesem Beispiel verwenden wir das Power Supply Module, um die Anode und Kathode des Breadboards zu versorgen.
Schaltplan¶
Code¶
Bemerkung
Sie können die Datei
24-motor.ino
direkt im Pfadelite-explorer-kit-main\basic_project\24-motor
öffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
Nachdem der Code auf das UNO-Board hochgeladen wurde, können Sie die Drehrichtung des Motors wählen, indem Sie „A“ oder „B“ im seriellen Monitor eingeben.
Code-Analyse¶
Der Motor kann angetrieben werden, indem man eine Spannungsdifferenz zwischen den Kupferplatten auf beiden Seiten des Motors herstellt. Daher müssen Sie nur 0 für die Spannung einer Seite der Kupferplatte und 5V für die andere Seite schreiben. Modifizieren Sie den geschriebenen analogen Signalwert, um die Richtung und Geschwindigkeit anzupassen.
// Function to rotate the motor clockwise
void clockwise(int Speed) {
analogWrite(motorBI, 0);
analogWrite(motorFI, Speed);
}
// Function to rotate the motor anticlockwise
void anticlockwise(int Speed) {
analogWrite(motorBI, Speed);
analogWrite(motorFI, 0);
}
In diesem Beispiel wird Serial.Read() verwendet, um die Richtung des Motors zu steuern.
Wenn Sie „A“ im seriellen Monitor eingeben, wird die Funktion clockwise (255) aufgerufen, damit sich der Motor mit der Geschwindigkeit von 255 dreht. Geben Sie „B“ ein, und der Motor dreht sich in die entgegengesetzte Richtung.
void loop() {
// Check if there is available data on the serial port
if (Serial.available() > 0) {
int incomingByte = Serial.read(); // Read incoming data
// Determine motor direction based on user input
switch (incomingByte) {
case 'A':
clockwise(255); // Rotate motor clockwise
Serial.println("The motor rotates clockwise.");
break;
case 'B':
anticlockwise(255); // Rotate motor anticlockwise
Serial.println("The motor rotates anticlockwise.");
break;
}
}
delay(3000); // Wait for 3 seconds
stopMotor(); // Stop the motor
}