当前位置:首页Arduino > 正文

Arduino智能垃圾桶代码

作者:野牛程序员:2023-07-06 06:14:11Arduino阅读 2671

下面是一个简单的Arduino智能垃圾桶的代码示例:

#include <Servo.h>

const int servoPin = 9;       // 伺服电机控制引脚
const int ultrasonicTrigPin = 10;  // 超声波传感器触发引脚
const int ultrasonicEchoPin = 11;  // 超声波传感器回响引脚

Servo servo;
int isOpen = false;

void setup() {
  servo.attach(servoPin);
  pinMode(ultrasonicTrigPin, OUTPUT);
  pinMode(ultrasonicEchoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  long duration, distance;
  
  // 触发超声波传感器
  digitalWrite(ultrasonicTrigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(ultrasonicTrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(ultrasonicTrigPin, LOW);
  
  // 读取回响时间
  duration = pulseIn(ultrasonicEchoPin, HIGH);
  
  // 计算距离(单位:厘米)
  distance = duration * 0.034 / 2;
  
  Serial.print("距离: ");
  Serial.print(distance);
  Serial.println(" cm");
  
  // 如果距离小于等于10厘米,则打开垃圾桶盖子
  if (distance <= 10 && !isOpen) {
    servo.write(90);  // 打开盖子
    isOpen = true;
    delay(2000);      // 延迟2秒,让垃圾掉入桶内
  }
  
  // 如果距离大于10厘米,并且盖子是打开状态,则关闭垃圾桶盖子
  if (distance > 10 && isOpen) {
    servo.write(0);   // 关闭盖子
    isOpen = false;
    delay(2000);      // 延迟2秒,确保盖子完全关闭
  }
  
  delay(1000);        // 延迟1秒后进行下一次测量
}

这段代码使用了一个伺服电机控制垃圾桶的盖子。它还使用了一个超声波传感器来检测垃圾桶顶部的物体距离。当距离小于等于10厘米时,伺服电机会打开垃圾桶盖子,以允许物体掉入桶内。当距离大于10厘米时,伺服电机会关闭垃圾桶盖子。

请注意,这只是一个简单的示例代码,具体的实现可能因使用的硬件和传感器而有所不同。可能需要根据您的实际情况进行适当的修改和调整。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击