資料介紹
描述
背景
我創建這個項目只是為了確保我的家人受到保護并且他們洗手的時間適當。它使用超聲波傳感器檢測手,并使用 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的內部定時器
- 基于Arduino的內部定時器 0次下載
- 基于Arduino UNO的電動洗手定時器 0次下載
- COVID-19非接觸式洗手定時器
- 非接觸式洗手定時器
- Arduino Nano上的自定義定時器功能
- 帶水聲檢測器的洗手定時器
- 可調定時器自動洗手模塊
- 基于Arduino定時器控制器的繼電器
- labview定時器實現實例分享 26次下載
- STM32定時器-基本定時器
- 如何解析定時器產生的脈沖信號? 15次下載
- Arduino開發板定時器定時中斷的詳細資料免費下載 29次下載
- TMS320C6474 DSP 64位定時器用戶指南 3次下載
- 555定時器 52次下載
- 使用Arduino的可變定時器繼電器設計 1115次閱讀
- 如何制作一個簡單的2步Arduino可編程定時器電路 2462次閱讀
- 倍福PLC中定時器的使用 4332次閱讀
- 如何制作一個簡單的2步Arduino可編程定時器電路 4658次閱讀
- 基礎定時器實驗 1231次閱讀
- STM32的通用定時器 3526次閱讀
- freeRTOS軟件定時器的使用 2261次閱讀
- 軟件定時器簡介及程序配置 3954次閱讀
- 制作一個基于Arduino控制的定時器 7308次閱讀
- 圖文詳解:定時器實用電路的原理 3.6w次閱讀
- STM32定時器基本計數原理解析 1.8w次閱讀
- 低耗定時器電路 4811次閱讀
- 遙控定時器 2383次閱讀
- 來復式定時器 1900次閱讀
- 電子定時器 2550次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論