以下是基于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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录