4

私は、2 つの超音波、LCD、および Arduino で構成されるプロジェクトに取り組んでいます。

超音波は流量測定にも使用されます。その背後にある概念は、最初の超音波から 2 番目の超音波に波を送信し、時間を計算することです1。次に、1 番目が受信する 2 番目から波を送信し、time2 を計算します。

フローがない場合、time1 は time2 と等しくなければなりません。しかし、本当の結果が表示されていないため、私のarduinoコードが正しいかどうかはわかりません。

これがコンセプトです http://www.universalmetering.co.uk/images/mobile/ultrasonic-diagram.gif

それを確認してください。コードがあれば教えてください..

ありがとう..

LiquidCrystal LCD(11,10,9,2,3,4,5); 
//Create Liquid Crystal Object called LCD 
#define trigPin1 12 #define echoPin1 13 
#define trigPin2 8 
#define echoPin2 7
//Simple program just for testing the HC-SR04 Ultrasonic Sensor with LCD dispaly //URL: 

void setup()
{ 
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  LCD.begin(16,2); 
  //Tell Arduino to start your 16 column 2 row LCD 
  LCD.setCursor(0,0); //Set LCD cursor to upper left corner, column 0, row 0
  LCD.print("Difference in time:"); //Print Message on First Row 

 }


  void loop() 
  { 
    long duration1, duration2, diff;
    digitalWrite(trigPin1, LOW);
     delayMicroseconds(2); 
    digitalWrite(trigPin1, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin1, LOW); 
    duration1 = pulseIn(echoPin2, HIGH);

    digitalWrite(trigPin2, LOW);
     delayMicroseconds(2); 
    digitalWrite(trigPin2, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin2, LOW);
    duration2 = pulseIn(echoPin1, HIGH);
    diff = (duration2) - (duration1);
    LCD.setCursor(0,1); //Set cursor to first column of second row 
    LCD.print(" "); //Print blanks to clear the row
    LCD.setCursor(0,1); //Set Cursor again to first column of second row
    LCD.print(diff); //Print measured distance 
    LCD.print(" sec"); //Print your units.
    delay(250); //pause to let things settle

    } 
4

1 に答える 1