パーキングレーダーセンサー
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
このプロジェクトについて
こんにちは、このプロジェクトはDIYパーキングレーダーセンサーに関するものです。作成は非常に簡単です。HCSR-04超音波センサーをベースにしています。3つ使用しています。各サイドに1つ、中央に1つ、次に2つのミニです。バッテリーディスプレイは、実際にはバッテリーの状態を表示するために作成されていますが、ここでは、センサーと障害物の間の距離を表示するために使用しています。どちら側に応じて、設定できる最大距離にも依存します。 、その距離より上では常に十分なスペースと見なされ、それより下ではその距離とその方向に応じて表示が変化します。
<図>
パーツ
これらは私が使用した部品です。必要に応じて、いくつかのジャンプワイヤーとブレッドボードを追加できます。 (バッテリーディスプレイはTM1651チップに基づいています)
<図> <図> <図> <図>
作業中
3つの超音波モジュールがあります:右、中央、左、および2つのディスプレイ:右と左。中央のセンサーは両方のディスプレイに影響を与える可能性がありますが、他の2つのセンサーはそれぞれの側面にのみ影響を与える可能性があります。
たとえば、 2つの障害があります 、右側に1つ、中央に1つ、コードは最も近いを取得します ディスプレイに表示するには、。
中央が最も近い場合 両方のディスプレイは、距離に応じて変化します。
右側が最も近い場合 右側の表示が変わり、左側よりも低くなります。
コードから設定できる最大距離があります。その距離を超えると安全と見なされ、ディスプレイが完全に点灯します。その距離を下回ると、ディスプレイが変化し始め、最大距離に比例します。
例
説明を簡単にするためのいくつかのケースがあります
<図> <図> <図> <図>最後のケースは、中央と右側(右側が近い)、左側と右側(右側が近い)、またはすべての側面(右側が近い)に障害物がある場合に発生する可能性があります。
改善点:
- 他のセンサーを追加して、広い領域をカバーできます
-距離の値を表示する画面を追加します
-センサーをJSNSR-04のような防水センサーに変更します
-サウンドを追加
コード
- Parking_sensor_v1.ino
Parking_sensor_v1.ino Arduino
/ *このコードは、HC-SR04超音波モジュールx3およびTM1651バッテリーディスプレイx2で動作することを目的としています*プロジェクトは、障害物がどれだけ近くにあるかを示すパーキングセンサーであり、その上にある最大距離に応じて*ディスプレイは安全距離として表示されます*その下で変化が始まります*詳細についてはwww.SurtrTech.comを参照してください* /#include#define CLK 3 //右ディスプレイの配線#defineDIO2#define CLK2 5 //左ディスプレイの配線#defineDIO24#define trigPin 6 //超音波モジュールの配線R =右L =左もう1つは真ん中です#defineechoPin 7#define trigPinR 8#define echoPinR 9#define trigPinL 10#define echoPinL 11 #define Maxdistance 20 //最大距離20cm長さ; int距離; TM1651 DisplayR(CLK、DIO); //インスタンスを表示しますTM1651DisplayL(CLK2、DIO2); void setup(){pinMode(trigPin、OUTPUT); // HC-SR04のピンモードと表示の開始pinMode(echoPin、INPUT); pinMode(trigPinR、OUTPUT); pinMode(echoPinR、INPUT); pinMode(trigPinL、OUTPUT); pinMode(echoPinL、INPUT); DisplayR.init(); DisplayR.set(BRIGHTEST); DisplayL.init(); DisplayL.set(BRIGHTEST);} void loop(){int distanceM =CDistance(trigPin、echoPin); //以下の関数を呼び出してすべての距離を計算しますintdistanceR =CDistance(trigPinR、echoPinR); int distanceL =CDistance(trigPinL、echoPinL); int R =min(distanceM、distanceR); // 2つのディスプレイRとLがあり、最初にM / RとM / Lの間の最小距離を取りますintL =min(distanceM、distanceL); if(R> 0 &&R Maxdistance)//安全で、ディスプレイには常に十分なスペースがあることが表示されますDisplayR.displayLevel (7); if(L> 0 &&L Maxdistance)DisplayL.displayLevel(7); delay(50);} int CDistance(int a、int b){//距離関数を計算し、2つの引数(TriggerとEcho)を取り、HC-SR04の通常のプロセスを実行しますdigitalWrite(a、LOW); delayMicroseconds(2); digitalWrite(a、HIGH); delayMicroseconds(10); digitalWrite(a、LOW);期間=pulseIn(b、HIGH);距離=期間*(0.034 / 2);戻り距離; //計算された距離を返します}
TM1651バッテリーディスプレイライブラリ
ライブラリを使用すると、作業が非常に簡単になりますhttps://github.com/ne0x/fuel_display 回路図
製造プロセス