基于wemos的智能感应垃圾桶

   日期:2021-01-12     浏览:101    评论:0    
核心提示:一:开发环境 Arduino上电后不断执行loop函数中的代码,我们核心控制代码写入loopsetup函数只调用一次,一般用于硬件相关的初始化,比如IO口,串口,wifi等void setup() {}void loop() {}void setup() { pinMode(D5, OUTPUT); //设置引脚为输出引脚}void loop() {digitalWrite(D5, HIGH); // 输出高电平,...

一:开发环境 Arduino

上电后不断执行loop函数中的代码,我们核心控制代码写入loop

 

setup函数只调用一次,一般用于硬件相关的初始化,比如IO口,串口,wifi

 

void setup() {

}

 

void loop() {

}

void setup() {
             pinMode(D5, OUTPUT); //设置引脚为输出引脚
}

void loop() {
digitalWrite(D5, HIGH);     // 输出高电平,蜂鸣器闭嘴
delay(1000);		//这一秒内都得闭嘴
digitalWrite(D5, LOW);     //输出低电平,蜂鸣器吼起来
delay(1000);		//吼一秒(延时期间,蜂鸣器控制引脚属于低电平)
}

pinMode()

通过pinMode()函数,你可以对Arduino的引脚配置

       输出(OUTPUT)模式

       输入(INPUT)模式

digitalWrite()

将数字引脚写HIGH(高电平)或LOW(低电平)

delay()

延时函数;

#include <Servo.h>
#define DuoPIN D5
#define BEEF D6
#define Echo D2
#define Trig D8
Servo myDuoji;
void intChaoShenBo() //初始化超声波
{
  pinMode(Echo, INPUT); //定义输入端口
  pinMode(Trig, OUTPUT); //定义输出端口
}
long getTime() //获取距离
{
  digitalWrite(Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);
  return pulseIn(Echo, HIGH);
}
void setup() {
  intChaoShenBo();
  myDuoji.attach(DuoPIN); //连接舵机
  pinMode(BEEF,OUTPUT); //定义IO口
  digitalWrite(BEEF,HIGH); //初始化
  Serial.begin(115200);//开启串口,设置波特率。
  
}

void loop() {
  //获取距离
  long dis;
  dis = getTime() / 58;
  Serial.print(dis); // 打印获取的距离。
  Serial.println("cm");
  if (dis < 10) {
    myDuoji.write(110+);
    digitalWrite(BEEF,LOW);
    delay(1000);
  }
  else
  {
   myDuoji.write(180);
   digitalWrite(BEEF,HIGH); 
   }
  

}

代码实现功能:当物品靠近超声波测距感应器10CM以内垃圾桶开盖,蜂鸣器鸣响。

delayMicroseconds()  函数在Arduino中在短时间延时中更准确

pulseIn()Arduino中的API  测得某的IO口维持高|低电平的时间

/58原理:

343m/s

34300/s

0.0343cm/us   0.0343cm耗时1us

  1us能走多少厘米 29.15

 

Pulseln(Echo ,HIGH)   time

Time/58.3 波再空气中的总厘米

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服