注釈

こんにちは、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

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

コンポーネントの紹介

購入リンク

Arduino Uno R4 Minima

-

ブレッドボード

購入

ジャンパーワイヤー

購入

抵抗器

購入

LED

購入

ブザー

購入

I2C LCD1602

購入

超音波モジュール

購入

回路図

../_images/image265.png

配線図

../_images/6.4_reversing_aid_bb.png

コード

注釈

  • ファイル 6.4_reversingAid.ino3in1-kit\learning_project\6.4_reversingAid のパスで直接開くことができます。

  • または、このコードをArduino IDEにコピーしてください。

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

    ../_images/lib_liquidcrystal_i2c.png

コードが正常にアップロードされると、LCDに検出された現在の距離が表示されます。そして、距離に応じてブザーの音の頻度が変わります。

注釈

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

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

このコードは、物体との距離を測定し、LCDディスプレイとブザーを通じてフィードバックを提供するシンプルな距離測定デバイスを作成するのに役立ちます。

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

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

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

    // 距離を更新
    distance = readDistance();
    
    // 距離に基づいて間隔を更新
    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:" と現在の距離(センチメートル)を1行目に表示します。

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