//使用了SR04超声波传感器,可收发超声波,测距0~450cm //通过串口显示距离 #include Servo myServo; const int servoPin = 9; //设定SR04连接的Arduino引脚 const int TrigPin = 8; //C语言的基本数据类型中的一种,const int定义的是一个常量,它的值不可以更改。 const int EchoPin = 6; const int TrigPin2 = 2; const int EchoPin2 = 3; const int trct5000_01=A0; float distance; //C语言的基本数据类型中的一种,表示单精度浮点数。 float distance2; int flag; void setup() { Serial.begin(9600); //初始化串口通信 myServo.attach(servoPin,500, 2500); pinMode(TrigPin, OUTPUT); //设置4(TrigPin)脚为输出状态 // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态 pinMode(EchoPin, INPUT); //设置6(EchoPin)脚为输入状态 pinMode(TrigPin2, OUTPUT); //设置4(TrigPin)脚为输出状态 // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态 pinMode(EchoPin2, INPUT); //设置6(EchoPin)脚为输入状态 Serial.println("Ultrasonic sensor:"); //串口监视器显示Ultrasonic sensor: pinMode(A0,INPUT); pinMode(4, OUTPUT); //EA pinMode(7, OUTPUT); //EB pinMode(10, OUTPUT); //A1 pinMode(5, OUTPUT); //A1 pinMode(11, OUTPUT); //B1 pinMode(12, OUTPUT); //B2 digitalWrite(4,HIGH); digitalWrite(7,HIGH); myServo.write(90); } void loop() { analogWrite(5, 200); analogWrite(10, 50); Serial.println(digitalRead(trct5000_01)); analogWrite(11, 50); analogWrite(12, 200); digitalWrite(TrigPin, LOW); //设置数字引脚4为低电平 delayMicroseconds(2); //产生一个2us延迟,“delayMicroseconds();”为微秒级延时。 digitalWrite(TrigPin, HIGH); //设置数字引脚4为高电平 delayMicroseconds(10); //产生一个10us的高脉冲去触发TrigPin,至少10us的高电平信号才能触发模块的测距功能。 digitalWrite(TrigPin, LOW); //设置数字引脚4为低电平 distance = pulseIn(EchoPin, HIGH) / 58.00; //检测脉冲宽度,并计算出距离 digitalWrite(TrigPin2, LOW); //设置数字引脚4为低电平 delayMicroseconds(2); //产生一个2us延迟,“delayMicroseconds();”为微秒级延时。 digitalWrite(TrigPin2, HIGH); //设置数字引脚4为高电平 delayMicroseconds(10); //产生一个10us的高脉冲去触发TrigPin,至少10us的高电平信号才能触发模块的测距功能。 digitalWrite(TrigPin2, LOW); //设置数字引脚4为低电平 distance2 = pulseIn(EchoPin2, HIGH) / 58.00; //检测脉冲宽度,并计算出距离 if(distance < 10) { flag = 1; digitalWrite(4,LOW); digitalWrite(7,LOW); } else { flag = 0; } if(flag == 0) { if(distance2 < 20) { myServo.write(110); digitalWrite(4,LOW); digitalWrite(7,LOW); } else { digitalWrite(4,HIGH); digitalWrite(7,HIGH); } } //注意!!!此语句中58.00前的“/”符号为算术运算符,表示除以。 Serial.print(distance); //串口监视器显示distance(所测距离) Serial.println(); //串口监视器打印一行回车 Serial.print(distance2); //串口监视器显示distance(所测距离) Serial.print("cm"); //串口监视器显示“cm” Serial.println(); //串口监视器打印一行回车 delay(100); //延迟1秒(1000毫秒) }