注釈

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

参加する理由は?

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

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

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

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

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

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

6.4 駐車補助

科学技術の発展に伴い、多くのハイテク製品が車に取り付けられています。その中で、バックアップアシストシステムはその一つです。このプロジェクトでは、超音波モジュール、LCD、LED、およびブザーを使用して、シンプルな超音波駐車補助システムを作成します。

必要な部品

このプロジェクトでは、以下のコンポーネントが必要です。

一式を購入するのが便利です。リンクはこちら:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

SunFounder R3ボード

購入

ブレッドボード

購入

ジャンパーワイヤー

購入

抵抗器

購入

LED

購入

ブザー

購入

I2C LCD1602

購入

超音波モジュール

購入

回路図

../_images/image265.png

配線図

../_images/backcar.png

コード

注釈

  • 3in1-kit\basic_project\6.4_reversingAid のパスの下の 6.4_reversingAid.ino ファイルを直接開くことができます。

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

  • ここでは LiquidCrystal I2C ライブラリが使用されています。 Library Manager からインストールできます。

    ../_images/lib_liquidcrystal_i2c.png

コードのアップロードが成功すると、現在検出された距離がLCDに表示されます。そして、ブザーは異なる距離に応じて音の周波数を変えます。

注釈

コードと配線が正しいのに、LCDに内容が表示されない場合は、裏側のポテンショメーターを回してみてください。

どのように動作するのか?

このコードを使用すると、オブジェクト間の距離を測定し、LCDディスプレイとブザーを通じてフィードバックを提供するシンプルな距離測定装置を作成できます。

loop() 関数はプログラムの主要なロジックを含み、連続して実行されます。 loop() 関数について詳しく見てみましょう。

  1. 距離を読み取り、パラメータを更新するループ

    loop 内で、コードはまず超音波モジュールで測定された距離を読み取り、その距離に基づいてインターバルパラメータを更新します。

    // Update the distance
    distance = readDistance();
    
    // Update intervals based on distance
    if (distance <= 10) {
        intervals = 300;
    } else if (distance <= 20) {
        intervals = 500;
    } else if (distance <= 50) {
        intervals = 1000;
    } else {
        intervals = 2000;
    }
    
  2. ビープ音を鳴らすタイミングを確認

    コードは現在の時間と前回のビープ音の時間の差を計算し、その差がインターバル時間以上であれば、ブザーを鳴らして前回のビープ音の時間を更新します。

    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= intervals) {
        Serial.println("Beeping!");
        beep();
        previousMillis = currentMillis;
    }
    
  3. LCDディスプレイを更新

    コードはLCDディスプレイをクリアし、最初の行に"Dis:"と現在の距離(センチメートル)を表示します。

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Dis: ");
    lcd.print(distance);
    lcd.print(" cm");
    
    delay(100);