×

自动洗手机开源分享

消耗积分:2 | 格式:zip | 大小:0.16 MB | 2022-11-16

分享资料个

描述

在这些困难时期,我们需要尽可能避免外部身体接触。我们定期使用消毒剂和洗手液,但它仍然是身体接触的来源。所以,我决定做一台自动洗手机。

电路:

阿杜诺

  • 将 Arduino 的 5V 连接到面包板上的 +ve 电源轨
  • 将 Arduino 的接地连接到面包板的 -ve 导轨

注意:您稍后会希望使您的项目可移植。为此,您可以将 Arduino 的 V IN 引脚连接到 +ve 导轨而不是 5V 引脚。然后,您可以将 9V 电池连接到电源轨为您的项目供电。

HC-SR04超声波距离传感器

  • 将超声波距离传感器的 5V 引脚连接到面包板的 +ve 导轨
  • 将传感器的接地引脚连接到面包板上的 -ve 电源轨
  • 将传感器的触发引脚连接到 Arduino 上的引脚 9
  • 将传感器的回波引脚连接到 Arduino 上的引脚 10

注意:您也可以为此项目使用 IR 接近传感器或任何其他距离传感器。

伺服电机

  • 将伺服电机的中间线(5V)连接到面包板上的+ve导轨
  • 将伺服电机的地线连接到面包板上的 -ve 导轨
  • 将伺服上的信号引脚连接到 Arduino 上的引脚 2

而已!接线非常简单。

在职的

我们首先包括 New Ping 和 Servo 库。

#include 
#include

接下来,我们定义所有变量。

int trigPin = 9;
int echoPin = 10;
float v = 343;
float d = 0;
float pingTime = 0;
int servoPin = 2;
int servoPos = 0;
int buzzPin = 5;

我们使用伺服库创建一个名为 myServo 的对象,并使用 New Ping 库创建另一个名为 sonar 的对象

Servo myServo;
NewPing sonar(trigPin,echoPin);

然后,我们设置这些对象,声明我们的引脚模式并在 void setup 中启动我们的串行监视器。

void setup(){
Serial.begin(9600);
pinMode(trigPin,OUTPUT); 
pinMode(echoPin,INPUT); 
myServo.attach(servoPin); 
myServo.write(servoPos); 
pinMode(buzzPin,OUTPUT);
}

在 void 循环中,我们得到以厘米为单位的距离,并检查距离是大于还是小于 15cm。

d = sonar.ping_cm();

如果距离小于 15 厘米,我们使用简单的 if-else 语句将伺服器设置为移动 120 度。最后,我们将伺服位置写入电机。

 if(d < 15){   
servoPos = 120;   
digitalWrite(buzzPin,HIGH);   
delay(100);   
digitalWrite(buzzPin,LOW); 
} 
else{ 
servoPos = 0;
 } 
digitalWrite(buzzPin,LOW);   
myServo.write(servoPos);

注意:要使用超声波距离传感器测量距离,您不一定必须使用 New Ping 库,您可以在触发器和回波引脚中创建一个脉冲并计算到目标的距离(在这种情况下,我们的手)。您可以使用这段代码在触发引脚中创建一个脉冲并收听回声引脚中的 ping。

digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
delayMicroseconds(10);
pingTime = pulseIn(echoPin,HIGH);
pingTime /= 10000;
d = pingTime*343/2;

理论

超声波距离传感器:超声波距离传感器从发射器发出超声波脉冲。这称为“ping”。接收器“监听”这个 ping 并计算传输后到达的时间。我们可以使用这个公式来计算距离(假设25⁰C时空气中的声速= 343 m/s)

v = 2d/t

在哪里

  • v——空气中的声速
  • d - 从传感器到物体的距离
  • t - 接收器检测到 ping 所用的时间

在重新安排时,我们得到

d = v*t/2

我们得到的距离以米 [m] 为单位。因此,我们可以将距离乘以 100 得到以厘米为单位的距离 [cm]。

pYYBAGNy4NOAedFrAAAnURXh2s0558.png
超声波距离传感器的工作原理
 

伺服电机:伺服电机是一种特殊的电机,可以根据指令转动特定的角度。连接和编码非常简单。我们将为此使用该Servo.h库。在这个项目中,我们将使用伺服电机来拉动洗手液的杠杆。

外壳

  • 取一块纸板并将其折叠成一个尺寸合适的盒子状结构,以容纳面包板。
  • 在外壳上切一个孔以容纳开关。
  • 制作 2 个孔以容纳超声波距离传感器,并将其连接到盒子上。记得把纸板剪得比原来的盒子大一些,这样它就可以用翻盖贴在盒子上。

让伺服器分配消毒剂

  • 在消毒器的杠杆上打 2 个孔
  • 将坚固的铜线穿过这些孔
  • 将电线的一端连接到伺服喇叭上的孔中,并将另一端牢固地固定在消毒剂的另一侧。
  • 将一块泡沫连接到消毒剂瓶的侧面,然后将铜线的自由端穿过它。
  • 弯曲电线,使其与另一侧的电线平行。

注意:确保在将电线连接到伺服器和消毒器时保持电线的张力。

poYBAGNy4NuAVdceAAWVYU-e79k642.jpg
将泡沫片连接到消毒剂瓶
 

 

 

图书馆:

您可以从这些站点下载库,也可以从 Arduino IDE 安装它们。只需转到工具-> 管理库。将弹出一个窗口,您可以搜索和下载所需的库。

pYYBAGNy4N2AVkLOAACaVq7wS6s045.png
在 Arduino 中安装和包含库
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !