Avoidance by Infrared and Ultrasonic(一)
#define初始化函数
int pulseWidth; //pulse width
//initialization of servo舵机控制函数
pinMode(servoPin, OUTPUT);
void turnServo(int angle){至此可实现舵机在(0, 180)内任意角度的转向四、红外避障模块的使用完成相应线路的连接引脚定义和相关的变量
for(int i = 0; i <= 20; i++)
servoPulse(angle);
}
void servoPulse(int angle){
pulseWidth = (angle * 11) + 500; //map the pulse width value to 500-2048
digitalWrite(servoPin, HIGH);
delayMicroseconds(pulseWidth);
digitalWrite(servoPin, LOW);
delay(20-pulseWidth/1000);
}
#define初始化函数
#define
int infraredLeftState; //left infrared state
int infraredRightState; //right infrared state
//initialization of infrared红外检测函数
pinMode(infraredLeft, INPUT);
pinMode(infraredRight, INPUT);
void infraredJudge(){五、超声波模块的使用完成线路的连接引脚的定义和相关变量
infraredLeftState = digitalRead(infraredLeft);
infraredRightState = digitalRead(infraredRight);
if(infraredLeftState == LOW && infraredRightState == LOW) {
//both left and right has obstacle
}
else if(infraredLeftState == HIGH && infraredRightState == LOW){
//right has obstacle
}
else if(infraredLeftState == LOW && infraredRightState == HIGH){
//left has obstacle
#define初始化函数
#define
int distanceFront; //front distance
int distanceLeft; //left distance
int distanceRight; //right distance
//initialization of ultrasonic超声波检测函数
pinMode(ultrasonicEcho, INPUT);
pinMode(ultrasonicTrig, OUTPUT);
float distanceTest(){
digitalWrite(ultrasonicTrig, LOW);
delayMicroseconds(2);
digitalWrite(ultrasonicTrig, HIGH);
delayMicroseconds(10);
digitalWrite(ultrasonicTrig, LOW);
float dis = pulseIn(ultrasonicEcho, HIGH);
dis = dis / 58;
return
版权声明
本文仅代表作者观点,不代表博信信息网立场。
上一篇:Example of using Turtle 下一篇:香港服务器受到攻击如何解决