norr@manorshi.com         +86-519-89185720
1
ສູນຂ່າວສານ

ວິທີການນໍາໃຊ້ເຊັນເຊີ ultrasonic ກັບ Arduino?

Views: 164     Author: Grace Publish Time: 2021-07-26 ຕົ້ນກຳເນີດ: ເວັບໄຊ

ປຸ່ມການແບ່ງປັນ facebook
ປຸ່ມການແບ່ງປັນ twitter
ປຸ່ມ​ແບ່ງ​ປັນ​ເສັ້ນ​
ປຸ່ມການແບ່ງປັນ wechat
linkedin ປຸ່ມການແບ່ງປັນ
ປຸ່ມການແບ່ງປັນ pinterest
ປຸ່ມການແບ່ງປັນ whatsapp
ປຸ່ມການແບ່ງປັນ kakao
ປຸ່ມການແບ່ງປັນ Snapchat
ປຸ່ມການແບ່ງປັນໂທລະເລກ
ແບ່ງປັນປຸ່ມແບ່ງປັນນີ້

ວິທີການນໍາໃຊ້ເຊັນເຊີ Ultrasonic ກັບ Arduino: HC-SR04 ຄູ່ມື

ໄດ້ ເຊັນເຊີ ultrasonic HC-SR04 ແມ່ນຫນຶ່ງໃນໂມດູນການວັດແທກໄລຍະຫ່າງທີ່ນິຍົມທີ່ສຸດສໍາລັບໂຄງການ Arduino. ມັນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນຫຸ່ນຍົນຫຼີກເວັ້ນອຸປະສັກ, ເຊັນເຊີບ່ອນຈອດລົດ, ການກວດສອບລະດັບ, ຖັງຂີ້ເຫຍື້ອອັດສະລິຍະ, ເຄື່ອງວັດແທກໄລຍະຫ່າງ, ແລະຄໍາຮ້ອງສະຫມັກອື່ນໆທີ່ບໍ່ມີການຮັບຮູ້ການຕິດຕໍ່.

ໂມດູນປ່ອຍຄື້ນ ultrasonic 40kHz ຜ່ານເຄື່ອງສົ່ງສັນຍານ. ເມື່ອຄື້ນສຽງພົບກັບວັດຖຸ, ມັນຈະສະທ້ອນກັບຄືນໄປຫາຜູ້ຮັບ. ໂດຍການວັດແທກເວລາຂອງສຽງສະທ້ອນແລະໃຊ້ຄວາມໄວຂອງສຽງ, Arduino ສາມາດຄິດໄລ່ໄລຍະຫ່າງລະຫວ່າງເຊັນເຊີແລະວັດຖຸ.

ໂມດູນເຊັນເຊີ ultrasonic HC-SR04 ສໍາລັບການວັດແທກໄລຍະຫ່າງ Arduino

HC-SR04 ຕົວກໍານົດການດ້ານວິຊາການຕົ້ນຕໍ

ພາລາມິເຕີ ມູນຄ່າ
ແຮງດັນທີ່ເຮັດວຽກປົກກະຕິ 5V DC
ປະຈຸບັນເຮັດວຽກຄົງທີ່ ໜ້ອຍກວ່າ 5mA ໃນບາງລຸ້ນໂມດູນ
ຄວາມຖີ່ຂອງການດໍາເນີນການ ຄື້ນ ultrasonic 40kHz
ໄລຍະຫ່າງຂອງການກວດຫາ ລະດັບທົ່ວໄປ: 2cm ຫາ 400cm; ບາງລຸ້ນທີ່ປັບຕົວເພີ່ມອາດຈະຮອງຮັບໄລຍະທີ່ຍາວກວ່າ.
ມຸມກວດຈັບ ປົກກະຕິແລ້ວພາຍໃນ 15 ອົງສາ; ບາງລຸ້ນທີ່ມີການເພີ່ມສູງຂຶ້ນອາດຈະສູງເຖິງ 30 ອົງສາ.
ຄວາມຊັດເຈນ ເຖິງປະມານ 0.3cm ພາຍໃຕ້ເງື່ອນໄຂການທົດສອບທີ່ເຫມາະສົມ
ເຂດຕາບອດ ໄລຍະຫ່າງການວັດແທກຕໍາ່ສຸດທີ່ປະມານ 2 ຊມ

HC-SR04 ລາຍລະອຽດ PIN

ໂມດູນ ultrasonic HC-SR04 ມີສີ່ເຂັມ: VCC, TRIG, ECHO, ແລະ GND. Arduino ສົ່ງກໍາມະຈອນກະຕຸ້ນສັ້ນໄປຫາ PIN TRIG, ຈາກນັ້ນອ່ານກໍາມະຈອນກັບຄືນຈາກ ECHO pin.

HC-SR04 Pin ການເຊື່ອມຕໍ່ Arduino ຟັງຊັນ
VCC 5V ການສະຫນອງພະລັງງານສໍາລັບໂມດູນ ultrasonic.
TRIG ດິຈິຕອລ pin 9 ກະຕຸ້ນການປ້ອນຂໍ້ມູນ. Arduino ນຳໃຊ້ກຳມະຈອນ 10us ເພື່ອເລີ່ມລະດັບ.
ແອັກໂກ້ ດິຈິຕອລ pin 10 ຜົນຜະລິດສຽງສະທ້ອນ. Arduino ອ່ານຄວາມກວ້າງຂອງກໍາມະຈອນເພື່ອຄິດໄລ່ໄລຍະທາງ.
GND GND ການເຊື່ອມຕໍ່ພື້ນດິນ.

HC-SR04 ເຊັນເຊີ ultrasonic pinout VCC TRIG ECHO GND

ຫຼັກການເຮັດວຽກຂອງເຊັນເຊີ Ultrasonic HC-SR04

HC-SR04 ເຮັດວຽກໂດຍການວັດແທກເວລາຂອງການບິນ. Arduino ສົ່ງສັນຍານ trigger ລະດັບສູງຢ່າງຫນ້ອຍ 10 microseconds ໄປຫາ pin TRIG. ໂມດູນຫຼັງຈາກນັ້ນອັດຕະໂນມັດສົ່ງແປດ 40kHz ultrasonic pulses ແລະລໍຖ້າສໍາລັບສຽງສະທ້ອນ.

ເມື່ອກວດພົບສັນຍານ ultrasonic ທີ່ສະທ້ອນອອກມາ, ເຂັມປັກໝຸດ ECHO ຈະສົ່ງກຳມະຈອນໃນລະດັບສູງ. ໄລຍະເວລາຂອງກໍາມະຈອນນີ້ແມ່ນໄລຍະເວລາການເດີນທາງຕະຫຼອດຂອງຄື້ນ ultrasonic.

ໄລ​ຍະ​ເວ​ລາ = Echo ລະ​ດັບ​ສູງ​ເວ​ລາ × ຄວາມ​ໄວ​ຂອງ​ສຽງ / 2​

ໃນລະຫັດ Arduino, ສູດທີ່ງ່າຍດາຍທົ່ວໄປແມ່ນ:

ໄລຍະຫ່າງໃນ cm = ໄລຍະເວລາ × 0.0343 / 2

HC-SR04 ໂມດູນ ultrasonic ເວລາຂອງຫຼັກການການເຮັດວຽກຂອງການບິນ

HC-SR04 Ultrasonic Module ແຜນວາດກໍານົດເວລາ

ຂະບວນການກໍານົດເວລາແມ່ນງ່າຍດາຍ: Arduino ຮັກສາ TRIG ຕ່ໍາໂດຍຫຍໍ້, ສົ່ງກໍາມະຈອນສູງ 10us, ຫຼັງຈາກນັ້ນກັບຄືນ TRIG ຕ່ໍາ. HC-SR04 ສົ່ງສຽງລະເບີດ ultrasonic ແລະຕັ້ງ ECHO ສູງຈົນກ່ວາສັນຍານສະທ້ອນກັບຄືນຫຼືເວລາການວັດແທກອອກ.

ເພື່ອຫຼີກເວັ້ນການອ່ານທີ່ບໍ່ຄົງທີ່, ປ່ອຍໃຫ້ຄວາມລ່າຊ້າລະຫວ່າງການວັດແທກ. ວົງຈອນການວັດແທກປະມານ 60ms ຖືກນໍາໃຊ້ໂດຍທົ່ວໄປເພື່ອໃຫ້ສຽງສະທ້ອນ ultrasonic ທີ່ຜ່ານມາມີເວລາທີ່ຈະຫາຍໄປກ່ອນທີ່ຈະກະຕຸ້ນຕໍ່ໄປ.

ພື້ນຖານການຂຽນໂປລແກລມ Arduino: pulseIn Function

ຟັງຊັນ Arduino pulseIn() ຖືກນໍາໃຊ້ເພື່ອວັດແທກໄລຍະເວລາຂອງ PIN ດິຈິຕອລຢູ່ທີ່ສູງຫຼືຕໍ່າ. ສໍາລັບ HC-SR04, Arduino ໃຊ້ pulseIn(echoPin, HIGH) ເພື່ອອ່ານຄວາມກວ້າງຂອງກໍາມະຈອນໃນລະດັບສູງຈາກ ECHO pin.

syntax ຄວາມຫມາຍ
PulseIn(pin, ຄ່າ) ອ່ານໄລຍະເວລາຂອງກຳມະຈອນສູງ ຫຼືຕ່ຳ.
PulseIn(pin, ຄ່າ, ໝົດເວລາ) ອ່ານກຳມະຈອນດ້ວຍຄ່າເວລາໝົດເວລາເປັນໄມໂຄວິນາທີ.

ແນະນຳໃຫ້ໃຊ້ເວລາໝົດເວລາ. ຖ້າບໍ່ມີສຽງສະທ້ອນຄືນ, ຟັງຊັນສາມາດຢຸດເຊົາການລໍຖ້າແລະກັບຄືນ 0 ແທນທີ່ຈະຂັດຂວາງໂຄງການດົນເກີນໄປ.

ກະດານ Arduino ທີ່ໃຊ້ກັບເຊັນເຊີໄລຍະໄກ ultrasonic HC-SR04

ວິທີການເຊື່ອມຕໍ່ HC-SR04 Ultrasonic Sensor ກັບ Arduino

ສາຍໄຟແມ່ນກົງໄປກົງມາ. ເຊື່ອມຕໍ່ VCC ກັບ 5V, GND ກັບ GND, TRIG ໄປຫາ pin ປ້ອນຂໍ້ມູນດິຈິຕອນ Arduino, ແລະ ECHO ກັບ pin ປ້ອນຂໍ້ມູນດິຈິຕອນ Arduino. ຕົວຢ່າງຕໍ່ໄປນີ້ໃຊ້ Arduino Uno, TRIG ໃນ pin 9, ແລະ ECHO ໃນ pin 10.

ແຜນວາດສາຍສາຍໄຟ Arduino Uno ສໍາລັບເຊັນເຊີ ultrasonic HC-SR04

HC-SR04 Ultrasonic Sensor Arduino ລະຫັດ

ໂປຣແກມ Arduino ປົກກະຕິຕໍ່ໄປນີ້ຈະສົ່ງກຳມະຈອນກະຕຸ້ນ 10us, ອ່ານຄວາມກວ້າງຂອງກຳມະຈອນ ECHO, ຄິດໄລ່ໄລຍະຫ່າງເປັນຊັງຕີແມັດ, ແລະພິມຜົນອອກມາໃນ Serial Monitor.

const int trigPin = 9; const int echoPin = 10; ໄລຍະເວລາຍາວ; float distanceCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicrosconds(2);   digitalWrite(trigPin, HIGH);   delayMicrosconds(10);   digitalWrite(trigPin, ຕ່ຳ);   ໄລຍະເວລາ = pulseIn(echoPin, HIGH, 30000);   ຖ້າ (ໄລຍະເວລາ == 0) { Serial.println('ນອກຂອບເຂດ');   } else { distanceCm = ໄລຍະເວລາ * 0.0343 / 2;     Serial.print('ໄລຍະທາງ: ');     Serial.print(distanceCm);     Serial.println('ຊມ');   } delay(60); }

ຖ້າທ່ານເຫັນຄ່າໄລຍະຫ່າງໃນ Serial Monitor, ເຊັນເຊີ ultrasonic HC-SR04 ແລະສາຍໄຟ Arduino ເຮັດວຽກຢ່າງຖືກຕ້ອງ. ຫຼັງຈາກນັ້ນ, ທ່ານສາມາດນໍາໃຊ້ຂໍ້ມູນໄລຍະຫ່າງສໍາລັບການກວດພົບອຸປະສັກ, ການຄວບຄຸມການເຄື່ອນໄຫວຂອງຫຸ່ນຍົນ, ປະຕູອັດຕະໂນມັດ, ການແຈ້ງເຕືອນບ່ອນຈອດລົດ, ຫຼືໂຄງການລະດັບຂອງແຫຼວ.

ໂຄງ​ການ​ລະ​ດັບ​ເຊັນ​ເຊີ ultrasonic Arduino HC-SR04​

ວິທີການປັບປຸງຄວາມຖືກຕ້ອງຂອງການວັດແທກ HC-SR04

  • ຮັກສາວັດຖຸທີ່ວັດແທກໄດ້ພາຍໃນຂອບເຂດທີ່ແນະນໍາ ແລະຢູ່ນອກເຂດຕາບອດ 2 ຊມ.

  • ໃຊ້ພື້ນຜິວເປົ້າຫມາຍຮາບພຽງແລະແຂງສໍາລັບການສະທ້ອນ ultrasonic ທີ່ດີກວ່າ.

  • ຫຼີກເວັ້ນການວັດແທກອ່ອນ, ມຸມ, ຮູຂຸມຂົນ, ຫຼືວັດສະດຸດູດສຽງ.

  • ໃຊ້ການສະຫນອງພະລັງງານ 5V ທີ່ຫມັ້ນຄົງແລະຮັກສາສາຍໄຟສັ້ນແລະປອດໄພ.

  • ເພີ່ມການໝົດເວລາໃຫ້ກັບ pulseIn() ເພື່ອປ້ອງກັນການປິດກັ້ນດົນໆເມື່ອບໍ່ມີສຽງດັງກັບຄືນມາ.

  • ການອ່ານຫຼາຍຄັ້ງໂດຍສະເລ່ຍ ຫຼືປານກາງເພື່ອຫຼຸດຜ່ອນສິ່ງລົບກວນ.

  • ສໍາລັບຄວາມຖືກຕ້ອງທີ່ສູງຂຶ້ນ, ຊົດເຊີຍອຸນຫະພູມເນື່ອງຈາກວ່າຄວາມໄວສຽງມີການປ່ຽນແປງກັບອຸນຫະພູມອາກາດ.

ຄໍາຮ້ອງສະຫມັກທົ່ວໄປຂອງໂຄງການ Arduino Ultrasonic Sensor

ຄໍາຮ້ອງສະຫມັກ ວິທີການໃຊ້ HC-SR04
ຫຸ່ນຍົນຫຼີກເວັ້ນອຸປະສັກ ກວດພົບວັດຖຸທີ່ຢູ່ໃກ້ຄຽງ ແລະຊ່ວຍໃຫ້ຫຸ່ນຍົນປ່ຽນທິດທາງ.
ເຊັນເຊີໄລຍະຫ່າງບ່ອນຈອດລົດ ວັດແທກໄລຍະຫ່າງລະຫວ່າງຍານພາຫະນະແລະອຸປະສັກ.
ການກວດຫາລະດັບຂອງແຫຼວ ວັດແທກໄລຍະຫ່າງຈາກເຊັນເຊີໄປຫາພື້ນຜິວຂອງແຫຼວໂດຍບໍ່ມີການຕິດຕໍ່.
ຖັງຂີ້ເຫຍື້ອອັດສະລິຍະ ກວດພົບມື ຫຼືວັດຖຸທີ່ຢູ່ໃກ້ຄຽງ ແລະກະຕຸ້ນການເປີດຝາອັດໂນມັດ.

ສະຫຼຸບ

ເພື່ອໃຊ້ເຊັນເຊີ ultrasonic HC-SR04 ກັບ Arduino, ເຊື່ອມຕໍ່ VCC ກັບ 5V, GND ກັບ GND, TRIG ກັບ pin ຜົນຜະລິດດິຈິຕອນ, ແລະ ECHO ກັບ pin ປ້ອນດິຈິຕອນ. ສົ່ງກຳມະຈອນກະຕຸ້ນ 10us, ອ່ານໄລຍະເວລາຂອງສຽງສະທ້ອນດ້ວຍ pulseIn(), ແລະຄຳນວນໄລຍະທາງດ້ວຍສູດເວລາຂອງການບິນ.

HC-SR04 ມີລາຄາຖືກ, ໃຊ້ງ່າຍ, ແລະເຫມາະສົມສໍາລັບໂຄງການວັດແທກໄລຍະຫ່າງ Arduino ຫຼາຍ. ເພື່ອຜົນໄດ້ຮັບທີ່ດີທີ່ສຸດ, ໃຫ້ເອົາໃຈໃສ່ກັບພື້ນຜິວເປົ້າຫມາຍ, ມຸມວັດແທກ, ເຂດຕາບອດ, ພະລັງງານທີ່ຫມັ້ນຄົງ, ການຈັດການເວລາຫມົດເວລາ, ແລະຜົນກະທົບຂອງອຸນຫະພູມ.

ຄໍາຖາມທີ່ຖາມເລື້ອຍໆກ່ຽວກັບ HC-SR04 Arduino Ultrasonic Sensor

ເຊັນເຊີ ultrasonic HC-SR04 ເຮັດວຽກກັບ Arduino ແນວໃດ?

Arduino ສົ່ງກຳມະຈອນ 10us ໄປຫາ PIN TRIG. HC-SR04 ປ່ອຍແປດ 40kHz ultrasonic pulses ແລະຕັ້ງ ECHO pin ສູງຈົນກ່ວາສຽງສະທ້ອນກັບຄືນ. Arduino ວັດແທກເວລາກໍາມະຈອນນີ້ແລະຄິດໄລ່ໄລຍະທາງ.

ສູດໄລຍະຫ່າງສໍາລັບໂຄງການ HC-SR04 Arduino ແມ່ນຫຍັງ?

ສູດແມ່ນໄລຍະຫ່າງ = ໄລຍະເວລາ × ຄວາມໄວຂອງສຽງ / 2. ໃນຊັງຕີແມັດ, ສູດ Arduino ທົ່ວໄປແມ່ນ distanceCm = ໄລຍະເວລາ × 0.0343 / 2, ເຊິ່ງໄລຍະເວລາແມ່ນວັດແທກເປັນ microseconds.

ເປັນຫຍັງພວກເຮົາຈຶ່ງແບ່ງຜົນຂອງເຊັນເຊີ ultrasonic ໂດຍ 2?

ເວລາສຽງສະທ້ອນທີ່ວັດແທກໄດ້ແມ່ນເວລາໄປມາຈາກເຊັນເຊີໄປຫາວັດຖຸ ແລະກັບຄືນໄປຫາເຊັນເຊີ. ການແບ່ງດ້ວຍ 2 ໃຫ້ໄລຍະຫ່າງທາງດຽວລະຫວ່າງເຊັນເຊີກັບວັດຖຸ.

ຂ້ອຍຄວນໃຊ້ pin Arduino ໃດສໍາລັບ TRIG ແລະ ECHO?

ທ່ານສາມາດໃຊ້ pins ດິຈິຕອລ Arduino ສ່ວນໃຫຍ່. ໃນຕົວຢ່າງຈໍານວນຫຼາຍ, TRIG ແມ່ນເຊື່ອມຕໍ່ກັບ pins ດິຈິຕອນ 9 ແລະ ECHO ແມ່ນເຊື່ອມຕໍ່ກັບ pin ດິຈິຕອນ 10. ລະຫັດຕ້ອງກົງກັບ pins ທີ່ໃຊ້ໃນສາຍໄຟຂອງທ່ານ.

ເປັນຫຍັງເຊັນເຊີ ultrasonic HC-SR04 ຂອງຂ້ອຍກັບຄືນຄ່າສູນຫຼືຄ່າສຸ່ມ?

ສາເຫດທົ່ວໄປລວມມີສາຍໄຟວ່າງ, ໄຟ 5V ບໍ່ສະຖຽນ, ເລກ PIN TRIG ຫຼື ECHO ຜິດ, ບໍ່ມີວັດຖຸຢູ່ໃນຂອບເຂດ, ພື້ນຜິວທີ່ເປັນມຸມ, ວັດສະດຸອ່ອນ, ຫົວເຊັນເຊີທີ່ຖືກບລັອກ, ຫຼືບໍ່ມີເວລາໝົດເວລາໃນຟັງຊັນ pulseIn().

ເຂດຕາບອດຂອງເຊັນເຊີ ultrasonic HC-SR04 ແມ່ນຫຍັງ?

ເຂດຕາບອດແມ່ນໄລຍະຫ່າງຕໍາ່ສຸດທີ່ໂມດູນບໍ່ສາມາດວັດແທກຄວາມຫນ້າເຊື່ອຖືໄດ້. ສໍາລັບ HC-SR04, ເຂດຕາບອດປົກກະຕິແມ່ນປະມານ 2 ຊມ. ວັດຖຸທີ່ຢູ່ໃກ້ກວ່ານີ້ອາດຈະເຮັດໃຫ້ການອ່ານທີ່ບໍ່ຫມັ້ນຄົງ.

HC-SR04 ສາມາດວັດແທກລະດັບນ້ໍາດ້ວຍ Arduino ໄດ້ບໍ?

ແມ່ນແລ້ວ, HC-SR04 ສາມາດນໍາໃຊ້ໄດ້ສໍາລັບໂຄງການລະດັບນ້ໍາທີ່ບໍ່ຕິດຕໍ່ແບບງ່າຍດາຍຖ້າເຊັນເຊີຖືກປ້ອງກັນຈາກຄວາມຊຸ່ມຊື່ນແລະຕິດຕັ້ງຢູ່ເທິງພື້ນຜິວຂອງແຫຼວ. ສໍາລັບຖັງທີ່ມີຄວາມຊຸ່ມຊື່ນ, ກາງແຈ້ງ, ຫຼືຖັງອຸດສາຫະກໍາ, ເຊັນເຊີ ultrasonic ກັນນ້ໍາແມ່ນແນະນໍາ.

ຂ້ອຍສາມາດເຮັດໃຫ້ການອ່ານເຊັນເຊີ ultrasonic Arduino ມີຄວາມຫມັ້ນຄົງຫຼາຍໄດ້ແນວໃດ?

ໃຊ້ການສະຫນອງພະລັງງານທີ່ຫມັ້ນຄົງ, ຮັກສາເຊັນເຊີຕັ້ງຂວາງກັບເປົ້າຫມາຍ, ຫຼີກເວັ້ນການດ້ານອ່ອນຫຼືມຸມ, ເພີ່ມ pulseIn timeout, ໃຊ້ເວລາອ່ານຫຼາຍ, ໃຊ້ການກັ່ນຕອງປານກາງ, ແລະອະນຸຍາດໃຫ້ປະມານ 60ms ລະຫວ່າງການວັດແທກ.

ຕາຕະລາງເນື້ອໃນ