資料介紹
描述
背景
我創(chuàng)建這個(gè)項(xiàng)目只是為了確保我的家人受到保護(hù)并且他們洗手的時(shí)間適當(dāng)。它使用超聲波傳感器檢測手,并使用 16x2 液晶顯示器顯示剩余時(shí)間。整個(gè)項(xiàng)目基于 arduino pro micro。
它是如何工作的?
該項(xiàng)目使用 HC-SR04 超聲波傳感器來檢測人的手部。傳感器的工作原理是發(fā)出 40kHz 的聲波,并等待查看是否有任何聲波反彈回來。如果任何聲波確實(shí)反彈回來,傳感器就會(huì)向 Arduino 發(fā)送一個(gè)信號(hào)(見下圖)。

Arduino 從超聲波傳感器獲取輸入,然后計(jì)算物體的距離。
它是如何結(jié)合在一起的?
有關(guān)更詳細(xì)的視圖,請參見示意圖。
超聲波傳感器引腳:
VCC:5V
觸發(fā):引腳 D9
回聲:引腳 D10
接地:接地
LCD 引腳排列:
VSS:接地
VDD:5V
VO:帶 1k 電阻的 Gnd(你真的應(yīng)該在這里使用電位器來更好地調(diào)節(jié)對比度,這個(gè)電阻只是為了更緊湊)
RS:引腳 D13
RW:接地
E:引腳 D12
(跳過 D0-D3)
D4:引腳 D5
D5:引腳 D4
D6:引腳 D3
D7:引腳 D2
A:D7腳(背光電源開關(guān))
K:接地
代碼如何工作
這包括所有需要的庫
#include
#include "pitches.h"
這設(shè)置了所有的變量和音調(diào)數(shù)組
#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
};
這將設(shè)置 LCD 并啟動(dòng)超聲波傳感器
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);
}
這是每秒循環(huán)以檢查對象的內(nèi)容
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 秒結(jié)束時(shí)運(yùn)行
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);
}
當(dāng)超聲波傳感器檢測到一個(gè)物體時(shí),這段代碼就會(huì)運(yùn)行
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 文件
為了完全完成這個(gè)項(xiàng)目并在防水方面有所幫助,一臺(tái) 3d 打印機(jī)(或從 Protolabs 等網(wǎng)站訂購)。這弄亂了所有的接線,因此也弄亂了代碼,所以我更新了 Nano 上面的代碼和原理圖。如果您仍在使用 Pro Micro,這里有一個(gè)指南。
- Arduino的內(nèi)部定時(shí)器
- 基于Arduino的內(nèi)部定時(shí)器 0次下載
- 基于Arduino UNO的電動(dòng)洗手定時(shí)器 0次下載
- COVID-19非接觸式洗手定時(shí)器
- 非接觸式洗手定時(shí)器
- Arduino Nano上的自定義定時(shí)器功能
- 帶水聲檢測器的洗手定時(shí)器
- 可調(diào)定時(shí)器自動(dòng)洗手模塊
- 基于Arduino定時(shí)器控制器的繼電器
- labview定時(shí)器實(shí)現(xiàn)實(shí)例分享 30次下載
- STM32定時(shí)器-基本定時(shí)器
- 如何解析定時(shí)器產(chǎn)生的脈沖信號(hào)? 15次下載
- Arduino開發(fā)板定時(shí)器定時(shí)中斷的詳細(xì)資料免費(fèi)下載 29次下載
- TMS320C6474 DSP 64位定時(shí)器用戶指南 3次下載
- 555定時(shí)器 55次下載
- 使用Arduino的可變定時(shí)器繼電器設(shè)計(jì) 2.1k次閱讀
- 如何制作一個(gè)簡單的2步Arduino可編程定時(shí)器電路 3.8k次閱讀
- 倍福PLC中定時(shí)器的使用 7.2k次閱讀
- 如何制作一個(gè)簡單的2步Arduino可編程定時(shí)器電路 6.1k次閱讀
- 基礎(chǔ)定時(shí)器實(shí)驗(yàn) 2.3k次閱讀
- STM32的通用定時(shí)器 4.4k次閱讀
- freeRTOS軟件定時(shí)器的使用 3.8k次閱讀
- 軟件定時(shí)器簡介及程序配置 5k次閱讀
- 制作一個(gè)基于Arduino控制的定時(shí)器 8.8k次閱讀
- 圖文詳解:定時(shí)器實(shí)用電路的原理 3.8w次閱讀
- STM32定時(shí)器基本計(jì)數(shù)原理解析 1.9w次閱讀
- 低耗定時(shí)器電路 5.5k次閱讀
- 遙控定時(shí)器 2.8k次閱讀
- 來復(fù)式定時(shí)器 2.3k次閱讀
- 電子定時(shí)器 3.1k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測量模擬前端芯片技術(shù)手冊
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論