利用arduino超声波模块LED灯模块制作一个智能小机器人。按如下要求设计:超声波模块检测到有人靠近时LED灯亮起。给出完整代码
以下是基于Arduino的智能小机器人代码:
// 定义超声波模块的引脚
const int trigPin = 9;
const int echoPin = 10;
// 定义LED灯模块的引脚
const int ledPin = 13;
// 定义超声波检测距离的最大值和最小值
const int maxDistance = 200;
const int minDistance = 10;
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 定义引脚模式
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
// 关闭LED灯
digitalWrite(ledPin, LOW);
}
void loop() {
// 发送一个10ms的脉冲用于触发超声波模块
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 计算超声波的回响时间
long duration = pulseIn(echoPin, HIGH);
// 将回响时间转换为距离
int distance = duration / 58;
// 判断距离是否在最大值和最小值之间
if (distance >= minDistance && distance <= maxDistance) {
// 发现有物体靠近,灯亮起
digitalWrite(ledPin, HIGH);
} else {
// 没有物体靠近,灯关闭
digitalWrite(ledPin, LOW);
}
// 打印距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// 稍等一会儿
delay(100);
}
该代码通过超声波模块检测到有人靠近时,LED灯亮起。超声波模块会在循环中不断地发送脉冲,计算距离,并将距离与最大值和最小值进行比较,以决定是否点亮LED灯。同时,代码还会在串口中打印出当前距离的值
原文地址: https://www.cveoy.top/t/topic/fdJT 著作权归作者所有。请勿转载和采集!