基于Arduino的智能垃圾桶

通过本次简单的Arduino智能垃圾桶小实验可以快速了解Arduino的基本用法
1、材料准备
Arduino UNO
HC-SR04超声波模块
SG90舵机
杜邦线
电源
电脑
2、代码分析
电机的控制

#include<Servo.h>
#define duoji D5
Servo myduoji;
void setup() {
    
    
  myduoji.attach(duoji); //舵机连接
  Serial.begin(115200);
}
void loop() {
    
    
	myduoji.write(20); //设置角度
	delay(1000);
    myduoji.write(100); //设置角度
}

超声波模块控制

#define echo D2
#define trig D8
long getTime()//获取时间
{
    
    
  digitalWrite(trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(trig,LOW);
  return pulseIn(echo,HIGH);
  }
void initBo()//初始化超声波
{
    
    
	pinMode(echo,INPUT);
    pinMode(trig,OUTPUT);
  }
void setup() {
    
    
  initBo();
  Serial.begin(115200);
}

void loop() {
    
    
  long dis;
  dis = getTime()/58;//获取距离
  Serial.print(dis);
  Serial.println("cm");
  delay(1000);//每隔1s扫面一次

串口通讯

void setup() {
    
    
  Serial.begin(115200);
}
void loop() {
    
    
  int cmd;
  if(Serial.available() > 0)
  {
    
    
        cmd = Serial.read();
        if (cmd == 5)//当输入5的时候就输出你好到串口通讯助手
        {
    
    
          Serial.println("nihao");
          }else
          {
    
    
          Serial.println("nihaocai");
            }
    }
}

蜂鸣器

#define beep D5
void setup() {
    
    
    pinMode(beep,OUTPUT);
	digitalWrite(beep,HIGH);
    Serial.begin(115200);
}
void loop() {
    
    
  int cmd;
  if(Serial.available() > 0)
  {
    
    
        cmd = Serial.read();
        if (cmd == 5)//当输入5的时候就输出你好开始beep到串口通讯助手
        {
    
    
          Serial.println("nihao");
          digitalWrite(beep,LOW); 
          delay(1000); 
          }else
          {
    
    
          Serial.println("nihaotingzhibb");
          digitalWrite(beep,HIGH);  
            }
    }
    delay(1000);
}

整合

#include<Servo.h>
#define echo D2
#define trig D8
#define duoji D5
Servo myduoji;
long getTime()
{
    
    
  digitalWrite(trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(trig,LOW);
  return pulseIn(echo,HIGH);
  }
void initBo()
{
    
    
    pinMode(echo,INPUT);
    pinMode(trig,OUTPUT);   
  }
void setup() {
    
    
  initBo();//超声波初始化
  myduoji.attach(duoji); //舵机连接
  Serial.begin(115200);
}
void loop() {
    
    
  long dis;
  dis = getTime()/58;
  Serial.print(dis);
  Serial.println("cm");
  if(dis<10)
  {
    
    
      myduoji.write(20);
    delay(3000);
  }else
  {
    
    
      myduoji.write(100); 
  }
    delay(50);
}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41679960/article/details/114555143
今日推荐