如何使用2 HCSR04 Arduino组件?
对使用两个不同的超声传感器合作的守则有什么想法吗?这个想法是,当任何一个传感器都检测到传感器前方的OBJ时,它会自动打开蜂鸣器。但是目前,我只使用2个超声波传感器。这是我的代码,无法正常工作:
#define trigPin1 3
#define echoPin1 2
#define trigPin2 4
#define echoPin2 5
long duration, distance, RightSensor,LeftSensor;
void setup()
{
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
}
void loop() {
SonarSensor(trigPin1, echoPin1);
RightSensor = distance;
SonarSensor(trigPin2, echoPin2);
LeftSensor = distance;
Serial.print(LeftSensor);
Serial.print(" | ");
Serial.println(RightSensor);
}
void SonarSensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW);
delay(2);
digitalWrite(trigPin, HIGH);
delay(2);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
}
Any ideas for the code of working with 2 different ultrasonic sensors? The idea is when either one of the sensors detects an obj in front of the sensor, it automatically turns on a buzzer. But for now, I only use the 2 ultrasonic sensors. This is my code, doesnt work as expected:
#define trigPin1 3
#define echoPin1 2
#define trigPin2 4
#define echoPin2 5
long duration, distance, RightSensor,LeftSensor;
void setup()
{
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
}
void loop() {
SonarSensor(trigPin1, echoPin1);
RightSensor = distance;
SonarSensor(trigPin2, echoPin2);
LeftSensor = distance;
Serial.print(LeftSensor);
Serial.print(" | ");
Serial.println(RightSensor);
}
void SonarSensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW);
delay(2);
digitalWrite(trigPin, HIGH);
delay(2);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决此问题的更好方法是制作返回距离长的函数。该代码看起来像这样:
如果您读了错误的读数,请尝试将此代码用于函数:
如果要使用原始代码,请在
void sonarsensor
移动void loop void sonarsensor
>并使距离变长。A better way to approach this problem would be to make a function that returns the distance long. The code would look like this:
If you are getting wrong readings try using this code for the function:
If you want to use the original code, move the
void SonarSensor
beforevoid loop
and make distance a global long.