1、产品清单
3D打印垃圾桶模型一套
nano主控板、舵机、触摸传感器、红外避障模块
杜邦线若干
2、介绍
本实验模型基于市面上市售的智能垃圾桶来设计,按照商用智能垃圾桶的功能,利用arduino平台实现全功能还原。
功能一:自动感应打开,三秒后自动关闭。
功能二:手动触摸长期打开,再次触摸后关闭。
3、接线图
4、代码
#include <Servo.h> //加入舵机库
Servo myservo; //创建舵机对象来控制舵机
int angle = 0; //初始化舵机角度
int sensor1 = 2; //设置红外传感器信号引脚
int value;
int buttonPin =3;
int buttonNum = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
Serial.begin(9600); //初始化串口频率
myservo.attach(9); //设置舵机引脚
pinMode(sensor1,INPUT); //设置传感器1引脚模式为输入模式
pinMode(buttonPin,INPUT_PULLUP);
myservo.write(angle); //舵机角度初始化
}
void loop() {
value = digitalRead(sensor1);
buttonState = digitalRead(buttonPin);
if(value == 1){
myservo.write(0);
Serial.print("开");
}
else
{
myservo.write(92);
Serial.print("关");
}
/* if (buttonState!= lastButtonState){
if(buttonState){
buttonNum++;}
}
lastButtonState = buttonState;
if (buttonNum%2==0){
myservo.write(0);
Serial.print(buttonNum);}
else{
myservo.write(90);}
*/
}
Servo myservo; //创建舵机对象来控制舵机
int angle = 0; //初始化舵机角度
int sensor1 = 2; //设置红外传感器信号引脚
int value;
int buttonPin =3;
int buttonNum = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
Serial.begin(9600); //初始化串口频率
myservo.attach(9); //设置舵机引脚
pinMode(sensor1,INPUT); //设置传感器1引脚模式为输入模式
pinMode(buttonPin,INPUT_PULLUP);
myservo.write(angle); //舵机角度初始化
}
void loop() {
value = digitalRead(sensor1);
buttonState = digitalRead(buttonPin);
if(value == 1){
myservo.write(0);
Serial.print("开");
}
else
{
myservo.write(92);
Serial.print("关");
}
/* if (buttonState!= lastButtonState){
if(buttonState){
buttonNum++;}
}
lastButtonState = buttonState;
if (buttonNum%2==0){
myservo.write(0);
Serial.print(buttonNum);}
else{
myservo.write(90);}
*/
}
5、注意事项
1、商用垃圾桶由于比较大,一般把红外传感器设置在垃圾桶身上,实际打开的盖子比较小,感应方向朝上。
2、不要把距离感应传感器安装在垂直于地面的垃圾桶面上,这样人走过会引起误判。
请先
!