注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!

3. スピードアップ

デジタル信号(HIGH/LOW)に加えて、L9110モジュールの入力は、出力の速度を制御するためのPWM信号も受け取ることができます。

つまり、 AnalogWrite() を使用して車の移動速度を制御することができます。

このプロジェクトでは、車の前進速度を徐々に変更させます。まず加速し、次に減速します。

配線

このプロジェクトの配線は 2. コードによる移動 と同じです。

コード

注釈

  • 3in1-kit\car_project\3.speed_up のパスの下にある 3.speed_up.ino ファイルを開きます。

  • または、このコードを Arduino IDE にコピーします。

  • または、 Arduino Web Editor を通じてコードをアップロードします。

プログラムが実行されると、車は徐々に加速し、その後徐々に減速します。

仕組みは?

このプロジェクトの目的は、L9110モジュールの入力ピンに異なるPWM値を書き込むことで、車の前進速度を制御することです。

  1. for() 文を使用して、 speed を5のステップで与え、0から255までの値を書き込むことで、車の前進速度の変化を確認できます。

    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. moveForward() 関数について。

    2. コードによる移動 はL9110モジュールの入力ピンに直接高/低レベルを与えますが、ここでは高レベルを与える必要がある場所に speed パラメータを渡します。

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

for 文は、波括弧で囲まれた一連の文を繰り返し実行するために使用されます。増分カウンタは通常、ループを増分および終了するために使用されます。

for (initialization; condition; increment){
// 文;
}
  • initialization: 最初に一度だけ実行されます。

  • condition: ループの各回で条件がテストされ、それが真であれば、文のブロックと増分が実行され、その後再び条件がテストされます。条件がfalseになると、ループは終了します。

  • increment: 条件が真である場合、ループを通じて実行されます。