Data Sheet
12/30/2015 4WDMobilePlatformSKU:ROB0022RobotWiki
https://www.dfrobot.com/wiki/index.php?title=4WD_Mobile_Platform_SKU:ROB0022 20/24
intURPWM=3;//PWMOutput0-25000US,Every50USrepresent1cm
intURTRIG=10;//PWMtriggerpin
uint8_tEnPwmCmd[4]={0x44,0x02,0xbb,0x01};//distancemeasurecommand
voidsetup(){//Serialinitialization
myservo.attach(9);
Serial.begin(9600);//Setsthebaudrateto9600
SensorSetup();
}
voidloop(){
if(measureDistance.check()==1){
actualDistance=MeasureDistance();
//Serial.println(actualDistance);
//delay(100);
}
if(sweepServo.check()==1){
servoSweep();
}
}
voidSensorSetup(){
pinMode(URTRIG,OUTPUT);//AlowpullonpinCOMP/TRIG
digitalWrite(URTRIG,HIGH);//SettoHIGH
pinMode(URPWM,INPUT);//SendingEnablePWMmodecommand
for(inti=0;i<4;i++){
Serial.write(EnPwmCmd[i]);
}
}
intMeasureDistance(){//alowpullonpinCOMP/TRIGtriggeringasensorreading
digitalWrite(URTRIG,LOW);
digitalWrite(URTRIG,HIGH);//readingPinPWMwilloutputpulses
unsignedlongdistance=pulseIn(URPWM,LOW);
if(distance==50000){//thereadingisinvalid.
Serial.print("Invalid");
}else{
distance=distance/50;//every50uslowlevelstandsfor1cm
}
returndistance;
}
voidservoSweep(){
if(sweepFlag){
if(pos>=60&&pos<=120){
pos=pos+1;//instepsof1degree
myservo.write(pos);//tellservotogotopositioninvariable'pos'
}
if(pos>119)sweepFlag=false;//assignthevariableagain
}else{
if(pos>=60&&pos<=120){
pos=pos‐1;
myservo.write(pos);
}
if(pos<61)sweepFlag=true;
}
}