Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

3. Beschleunigung

Neben dem digitalen Signal (HOCH/NIEDRIG) kann der Eingang des L9110-Moduls auch ein PWM-Signal empfangen, um die Geschwindigkeit des Ausgangs zu steuern.

Mit anderen Worten, wir können AnalogWrite() verwenden, um die Bewegungsgeschwindigkeit des Autos zu steuern.

In diesem Projekt lassen wir das Auto seine Vorwärtsgeschwindigkeit allmählich ändern, zuerst beschleunigen und dann abbremsen.

Verdrahtung

Dieses Projekt hat die gleiche Verdrahtung wie 2. Bewegung durch Code.

Code

Bemerkung

  • Öffnen Sie die Datei 3.speed_up.ino im Pfad 3in1-kit\car_project\3.speed_up.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Oder laden Sie den Code über den Arduino Web Editor hoch.

Nachdem das Programm läuft, wird das Auto allmählich beschleunigen und dann allmählich abbremsen.

Wie funktioniert das?

Das Ziel dieses Projekts ist es, verschiedene PWM-Werte an die Eingangspins des L9110-Moduls zu schreiben, um die Vorwärtsgeschwindigkeit des Autos zu steuern.

  1. Verwenden Sie die for() Anweisung, um speed in Schritten von 5 zu geben, wobei Werte von 0 bis 255 geschrieben werden, sodass Sie die Änderung der Vorwärtsgeschwindigkeit des Autos sehen können.

    void loop() {
        for(int i=0;i<=255;i+=5){
            moveForward(i);
            delay(500);
        }
        for(int i=255;i>=0;i-=5){
            moveForward(i);
            delay(500);
        }
    }
    
  2. Über die Funktion moveForward().

    Im Gegensatz zu 2. Bewegung durch Code, welcher direkt hohe/niedrige Pegel an die Eingangspins des L9110-Moduls gibt, übergeben wir hier einen Parameter speed an die Stellen, an denen wir hohe Pegel geben müssen.

    void moveForward(int speed) {
        analogWrite(A_1B, 0);
        analogWrite(A_1A, speed);
        analogWrite(B_1B, speed);
        analogWrite(B_1A, 0);
    }
    

Die for-Anweisung wird verwendet, um einen Block von Anweisungen, der von geschweiften Klammern eingeschlossen ist, zu wiederholen. Ein Inkrementzähler wird normalerweise verwendet, um die Schleife zu inkrementieren und zu beenden.

for (Initialisierung; Bedingung; Inkrement) {
// Anweisung(en);
}
  • Initialisierung: erfolgt zuerst und genau einmal.

  • Bedingung: Bei jedem Durchlauf der Schleife wird die Bedingung geprüft; wenn sie wahr ist, wird der Anweisungsblock und das Inkrement ausgeführt, dann wird die Bedingung erneut geprüft. Wenn die Bedingung falsch wird, endet die Schleife.

  • Inkrement: wird bei jedem Schleifendurchlauf ausgeführt, wenn die Bedingung wahr ist.