Fork me on GitHub


思路

arduino接红外线传感器, 舵机,红外线传感器被触发后,红灯亮起,舵机转动一定的角度,垃圾桶盖被打开,等待3秒后,舵机转回初始位置,垃圾桶盖关闭。

代码

#include <Servo.h>

int infraredPin = 2;
int lightPin = 6;
int steerPin = 9;
int closeAngle = 0;
int openAngle = 80;
Servo servo;

void setup() {
  pinMode(infraredPin, INPUT);
  pinMode(steerPin, OUTPUT);
  pinMode(lightPin, OUTPUT);
  servo.attach(steerPin);

  // 初始状态: 垃圾桶盖子是关闭的
  servo.write(closeAngle);
}

void loop() {
  if (digitalRead(infraredPin) == 0) {         //检测到障碍物,输出低电平
    digitalWrite(lightPin, HIGH);     //亮灯
    // 垃圾桶开盖
    servo.write(openAngle);
    delay(3000);    // 等待3秒
    // clear
    digitalWrite(lightPin, LOW);      // 灭灯
    servo.write(closeAngle);
  } 
  delay(200);
}

演示视频

B站

参考资料

1.Servo Library for Arduino


作者: vearne
文章标题: 玩转Arduino(3)-感应式垃圾桶
发表时间: 2024年11月1日
文章链接: https://vearne.cc/archives/40195
版权说明: CC BY-NC-ND 4.0 DEED


微信公众号

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注