#include(servo.h) Servo myservo; const int trig = 11; const int echo = 10; const int led = 3; int pos = 15; void setup() { pinMode(trig, OUTPUT); pinMode(led, OUTPUT); pinMode(echo, INPUT); Serial.begin(9600); myservo.attach(9); } void loop() { for (pos = 15;pos <= 165 ; pos += 1){ myservo.write(pos); digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig,HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); long duration = pulseIn(echo,HIGH); int distance = duration/58; if (distance >= 2 && distance <=4){ analogWrite(led,map(distance,2,4,255,0)); } else if(distance < 2) { analogWrite(led,255); } else{ analogWrite(led,0); } Serial.print(distance); Serial.print("cm"); delay(100); } for (pos = 165;pos >= 15 ; pos -= 1){ myservo.write(pos); digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig,HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); long duration = pulseIn(echo,HIGH); int distance = duration/58; if (distance >= 2 && distance <=4){ analogWrite(led,map(distance,2,4,255,0)); } else if(distance < 2) { analogWrite(led,255); } else{ analogWrite(led,0); } Serial.print(distance); Serial.print("cm"); delay(100); } }在原代码的情况下增加三个LED来分别在15度到65度和65度到115度和115度到165度区间内在2cm到4cm
时间: 2024-01-25 10:03:28 浏览: 139
的距离范围内亮起,可以这样修改代码:
```
#include(servo.h)
Servo myservo;
const int trig = 11;
const int echo = 10;
const int led1 = 3; // 第一个LED引脚
const int led2 = 5; // 第二个LED引脚
const int led3 = 6; // 第三个LED引脚
int pos = 15;
void setup() {
pinMode(trig, OUTPUT);
pinMode(led1, OUTPUT); // 设置LED引脚为输出模式
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600);
myservo.attach(9);
}
void loop() {
for (pos = 15; pos <= 165 ; pos += 1){
myservo.write(pos);
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
long duration = pulseIn(echo,HIGH);
int distance = duration/58;
if (distance >= 2 && distance <= 4){
if (pos >= 15 && pos <= 65){ // 判断当前角度范围
analogWrite(led1, map(distance, 2, 4, 255, 0)); // 控制LED亮度
} else if (pos > 65 && pos <= 115){
analogWrite(led2, map(distance, 2, 4, 255, 0));
} else if (pos > 115 && pos <= 165){
analogWrite(led3, map(distance, 2, 4, 255, 0));
}
} else if (distance < 2) {
analogWrite(led1, 255);
analogWrite(led2, 255);
analogWrite(led3, 255);
} else {
analogWrite(led1, 0);
analogWrite(led2, 0);
analogWrite(led3, 0);
}
Serial.print(distance);
Serial.print("cm");
delay(100);
}
for (pos = 165; pos >= 15 ; pos -= 1){
myservo.write(pos);
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
long duration = pulseIn(echo,HIGH);
int distance = duration/58;
if (distance >= 2 && distance <= 4){
if (pos >= 15 && pos <= 65){
analogWrite(led1, map(distance, 2, 4, 255, 0));
} else if (pos > 65 && pos <= 115){
analogWrite(led2, map(distance, 2, 4, 255, 0));
} else if (pos > 115 && pos <= 165){
analogWrite(led3, map(distance, 2, 4, 255, 0));
}
} else if (distance < 2) {
analogWrite(led1, 255);
analogWrite(led2, 255);
analogWrite(led3, 255);
} else {
analogWrite(led1, 0);
analogWrite(led2, 0);
analogWrite(led3, 0);
}
Serial.print(distance);
Serial.print("cm");
delay(100);
}
}
```
这样就可以在不同角度范围内控制不同的LED亮起了。
阅读全文
相关推荐














