资料介绍
描述
背景
我创建这个项目只是为了确保我的家人受到保护并且他们洗手的时间适当。它使用超声波传感器检测手,并使用 16x2 液晶显示器显示剩余时间。整个项目基于 arduino pro micro。
它是如何工作的?
该项目使用 HC-SR04 超声波传感器来检测人的手部。传感器的工作原理是发出 40kHz 的声波,并等待查看是否有任何声波反弹回来。如果任何声波确实反弹回来,传感器就会向 Arduino 发送一个信号(见下图)。
Arduino 从超声波传感器获取输入,然后计算物体的距离。
它是如何结合在一起的?
有关更详细的视图,请参见示意图。
超声波传感器引脚:
VCC:5V
触发:引脚 D9
回声:引脚 D10
接地:接地
LCD 引脚排列:
VSS:接地
VDD:5V
VO:带 1k 电阻的 Gnd(你真的应该在这里使用电位器来更好地调节对比度,这个电阻只是为了更紧凑)
RS:引脚 D13
RW:接地
E:引脚 D12
(跳过 D0-D3)
D4:引脚 D5
D5:引脚 D4
D6:引脚 D3
D7:引脚 D2
A:D7脚(背光电源开关)
K:接地
代码如何工作
这包括所有需要的库
#include
#include "pitches.h"
这设置了所有的变量和音调数组
#define screenPower 7 //define screen power pin (to automatically turn lcd backlight on and off)
// defines HC-SR04 pin numbers
const int trigPin = 9;
const int echoPin = 10;
//variables for HC-SR04
long duration;
int distance;
// Create an LCD object. Parameters: (RS, E, D4, D5, D6, D7):
LiquidCrystal lcd = LiquidCrystal(13, 12, 5, 4, 3, 2);
int timeLeft = 20; //variable for displaying time left
int speakerPin = 11;
int toneDuration = 100;
int tickDuration = 25;
//array of notes for done tone
int doneTone[] = {
NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5
};
//note of the ticking sound
int tick[] = {
NOTE_C5
};
这将设置 LCD 并启动超声波传感器
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
//Setup LCD rows and columns:
pinMode(screenPower, OUTPUT);
digitalWrite(screenPower, HIGH);
delay(200);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Hand Wash Timer");
lcd.setCursor(0, 1);
lcd.print("By:Danny Pashkow");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
digitalWrite(screenPower, LOW);
}
这是每秒循环以检查对象的内容
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
if (distance < 10) {
Serial.println("Hand detected");
isHand = true;
}
if (isHand == true) {
handDetected();
}
if (timeLeft < 0) {
noTimeLeft();
}
}
此代码在 20 秒结束时运行
void noTimeLeft() {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("Done!");
for (int thisNote = 0; thisNote < 8; thisNote++) {
tone(11, doneTone[thisNote], toneDuration);
delay(100);
}
delay(5000);
lcd.clear();
digitalWrite(screenPower, LOW);
timeLeft = 20;
isHand = false;
lcd.setCursor(0, 0);
}
当超声波传感器检测到一个物体时,这段代码就会运行
void handDetected() {
digitalWrite(screenPower, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Time Remaining: ");
lcd.setCursor(0, 1);
lcd.print(timeLeft);
lcd.print(" seconds");
timeLeft -= 1;
for (int thisTick = 0; thisTick < 3; thisTick++) {
tone(speakerPin, tick[thisTick], tickDuration);
}
delay(1000);
}
STL 文件
为了完全完成这个项目并在防水方面有所帮助,一台 3d 打印机(或从 Protolabs 等网站订购)。这弄乱了所有的接线,因此也弄乱了代码,所以我更新了 Nano 上面的代码和原理图。如果您仍在使用 Pro Micro,这里有一个指南。
- Arduino的内部定时器 0次下载
- 使用Arduino和X9C104控制555定时器 0次下载
- 基于Arduino的内部定时器 0次下载
- 基于Arduino UNO的电动洗手定时器 0次下载
- COVID-19非接触式洗手定时器 0次下载
- 非接触式洗手定时器 0次下载
- covid 19使用arduino洗手 0次下载
- 带水声检测器的洗手定时器 0次下载
- 可调定时器自动洗手模块 3次下载
- 基于Arduino定时器控制器的继电器 3次下载
- labview定时器实现实例分享 24次下载
- 串口屏LUA教程4-定时器的使用
- 如何解析定时器产生的脉冲信号? 13次下载
- PIC32系列参考手册之看门狗定时器、程序监控定时器和上电延时定时器 14次下载
- TMS320C6474 DSP 64位定时器用户指南 3次下载
- C51单片机的定时器介绍 709次阅读
- 如何制作一个简单的2步Arduino可编程定时器电路 1290次阅读
- 倍福PLC中定时器的使用 1846次阅读
- 如何制作一个简单的2步Arduino可编程定时器电路 3513次阅读
- 基础定时器实验 780次阅读
- STM32的通用定时器 2394次阅读
- freeRTOS软件定时器的使用 1283次阅读
- 制作一个基于Arduino控制的定时器 5846次阅读
- 定时器号和分辨率 1.2w次阅读
- 详细介绍定时器和定时器中断 1.7w次阅读
- 单片机定时器工作原理_单片机定时器工作方式_单片机定时器作用 2.5w次阅读
- STM32-基本定时器TIM6-TIM7基本定时功能 1w次阅读
- stm32通用定时器 2500次阅读
- 低耗定时器电路 4477次阅读
- 来复式定时器 1730次阅读
下载排行
本周
- 1储能电源市场分析
- 7.99 MB | 8次下载 | 免费
- 2储能电源市场分析报告
- 2.61 MB | 6次下载 | 免费
- 3磁环电感定制时应该注意什么
- 0.32 MB | 2次下载 | 免费
- 4labview文档教程资料(一)
- 24.29 MB | 2次下载 | 免费
- 5轻触三功能+常按 SOS 功能手筒LED驱动ICSD3302数据手册
- 0.60 MB | 1次下载 | 2 积分
- 6英集芯IP5353 QFN32 规格书pdf
- 2.70 MB | 1次下载 | 免费
- 7NCV78763R1DAGEVB子板数据手册
- 533.41 KB | 次下载 | 免费
- 8500mA,高效 MicroSiP™ 降压转换器TPS8269xSIP数据表
- 918.92KB | 次下载 | 免费
本月
- 1ES9038PRO解码芯片的电路原理图介绍
- 0.25 MB | 35次下载 | 5 积分
- 2STM32国内外发展现状
- 1.15 MB | 13次下载 | 免费
- 3传感芯片选型指南
- 3.60 MB | 11次下载 | 免费
- 4ATmega8芯片中文手册
- 2.45 MB | 8次下载 | 1 积分
- 5储能电源市场分析
- 7.99 MB | 8次下载 | 免费
- 6TDK电容器产品指南
- 11.88 MB | 7次下载 | 1 积分
- 72A多电池高效开关充电器AN_SY6912A中文资料规格书
- 1.43 MB | 7次下载 | 免费
- 8储能电源市场分析报告
- 2.61 MB | 6次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935086次下载 | 免费
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420050次下载 | 免费
- 3Altium DXP2002下载入口
- 未知 | 233068次下载 | 免费
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191317次下载 | 免费
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183316次下载 | 免费
- 6labview8.5下载
- 未知 | 81567次下载 | 免费
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73788次下载 | 免费
- 8NI LabVIEW中实现3D视觉的工具和技术
- 未知 | 70088次下载 | 免费
评论
查看更多