2016-11-29 160 views
0

我正在研究arduino和HC_SR04。我搜查了大部分文件,但他們沒有解決我們的問題。如何使用超聲波傳感器和Arduino控制機器人手臂

我的問題是如何讀取從庫<NewPing>中獲取的值。

#define echopin 11 //set echopin 
#define trigpin 12 //set trigpin 

#include <Servo.h>; 

Servo robotArm; 

#include <NewPing.h> 

#define MAX_DISTANCE 400 

NewPing sonar(trigpin, echopin, MAX_DISTANCE); 

int distance; 

void setup() { 
    // put your setup code here, to run once: 
    Serial.begin(9600); 
    robotArm.attach(9); //attach our servo 
    robotArm.writeMicroseconds(150); 
} 

void loop() { 
    // put your main code here, to run repeatedly: 
    robotArm.write(90); //always set to servo 90 to position it to the middle 
    //codes of ultrasonic sensor 
    distance=digitalRead(echopin); 
    if (distance <= 20) //if ultrasonic sensor detects on obstacle less than 20 cm in 90 degree angle 
    { 
    robotArm.write(0); //dervo rotates at full speed to the right 
    delay(60); 
    } 

    else 
    { 
    robotArm.write(90); //else servo stays at 90 degree angle 
    delay(60); 
    } 
    Serial.print(distance); //print distance 
    Serial.println("cm"); //print distance unit cm 
} 

回答

0

而不是distance=digitalRead(echopin);嘗試使用distance = sonar.ping_cm()

+0

感謝您的幫助 –