2017-07-23 60 views
0

我想要做的是读取值pulseIn(ECHO,HIGH),以便我最终可以将其转换为厘米,所以我知道超声波传感器距离多远一个东西。但是,当我读取串行监视器上打印的值时,它只有3或4,并且不考虑超声波传感器距离任何东西有多远。我甚至不明白为什么它会是这两个值,或者它们之间为什么会发生变化。我无法想象如何解决这个问题或者是什么原因造成的。我不知道问题出在代码或组件上。但是,这个传感器最近经过了其他人的测试,然后它就起作用了,所以也许只是我做错了什么。帮帮我?Arduino超声波传感器pulseIn只有3或4个

#define SPEAKER 11 
#define TRIGGER 2 
#define ECHO 3 
#define SPLIT 40 

unsigned long duration; 

int alarm1() 
{ 
    Serial.print("alarmtest"); 
    analogWrite(SPEAKER, 100); 
    delay(100); 
    analogWrite(SPEAKER, 0); 
    delay(100); 
    analogWrite(SPEAKER, 100); 
    delay(100); 
    analogWrite(SPEAKER, 0); 
    delay(500); 
} 

void setup() 
{ 
    Serial.begin(9600); 
    pinMode(SPEAKER, OUTPUT); 
    pinMode(TRIGGER, OUTPUT); 
    pinMode(ECHO, INPUT); 
} 

void loop() 
{  
    digitalWrite(TRIGGER, LOW); 
    delayMicroseconds(50); 
    digitalWrite(TRIGGER, HIGH); 
    delayMicroseconds(50); 
    digitalWrite(TRIGGER, LOW); 
    duration = pulseIn(ECHO, HIGH); 
    delay(200); 

    Serial.print(duration); 
    if (duration < SPLIT) 
    { 
    // alarm1(); 
    } 
} 
+0

这是一个HC-SR04超声波传感器 – sigrott

回答

0

它给我打印了这个,我误用了错误的端口。问题解决了。确保在额外的时间后检查您的连接!

相关问题