ኮድ ይፈልጉ

አርዱኖ ኮድ እና ቪዲዮ፡ HC-SR04 አልትራሶኒክ ርቀት ዳሳሽ ከTP1637 ማሳያ ጋር

አርዱኖ ኮድ እና ቪዲዮ፡ HC-SR04 አልትራሶኒክ ርቀት ዳሳሽ ከTP1637 ማሳያ ጋር

በዚህ መማሪያ ውስጥ፣ የHC-SR04 አልትራሳውንድ ርቀት ዳሳሽ ከTP1637 ማሳያ ጋር በማጣመር የርቀት መለኪያዎችን በእይታ እንዴት ማሳየት እንደሚቻል እንመረምራለን። ይህ ፕሮጀክት እንደ ሮቦቲክ መኪናዎች እና ሌሎች የርቀት መለኪያ ተግባራት ላሉ አፕሊኬሽኖች በጣም ጠቃሚ ነው። በዚህ መመሪያ መጨረሻ ላይ፣ ርቀትን የሚለካ እና በማያ ገጹ ላይ የሚያሳይ የሚሰራ ዝግጅት ይኖርዎታል፣ ይህም የዳሳሹን ንባቦች በቀላሉ ለመከታተል ያስችላል።

How HC-SR04 ulrasonic sensor work

ሁለት ዋና ዋና ክፍሎችን እንጠቀማለን፡- የHC-SR04 አልትራሳውንድ ዳሳሽ እና የTP1637 ማሳያ ሞጁል። የHC-SR04 ዳሳሽ የአልትራሳውንድ ሞገዶችን ያመነጫል እና ወደ ኋላ ለመመለስ የሚፈጅበትን ጊዜ ይለካል፣ በዚያ ጊዜ ላይ በመመስረት ርቀቱን ያሰላል። የTP1637 ማሳያ የተለካውን ርቀት ለተጠቃሚ ምቹ በሆነ መልኩ ለማሳየት የI2C ግንኙነትን ይጠቀማል። ለተጨማሪ ግልጽነት፣ የክፍሎቹን ምስላዊ ማብራሪያ በ1:30 ላይ ያለውን ቪዲዮ መመልከት ይችላሉ።

ሃርድዌር ተብራርቷል

የHC-SR04 አልትራሳውንድ ዳሳሽ አራት ፒኖች አሉት፡- VCC፣ Trig፣ Echo እና GND። የVCC ፒን ከኃይል አቅርቦት ጋር ይገናኛል፣ የGND ፒን ደግሞ ከመሬት ጋር ይገናኛል። የTrig ፒን የአልትራሳውንድ ምትን ለማስነሳት ይጠቅማል፣ የEcho ፒን ደግሞ የተንጸባረቀውን ምት ይቀበላል። ይህ ዳሳሽ ከ2 ሴ.ሜ እስከ 400 ሴ.ሜ ያሉ ርቀቶችን መለካት ይችላል።

የTP1637 ማሳያ ሞጁል ለI2C ግንኙነት የሚያገለግሉ አራት ፒኖችን ያካትታል። እነዚህ ፒኖች VCC፣ GND፣ Clock (CLK) እና Data (DIO) ያካትታሉ። በዚህ ፕሮጀክት ውስጥ፣ የCLK ፒን በአርዱኖ ላይ ካለው ዲጂታል ፒን 2 ጋር ይገናኛል፣ የDIO ፒን ደግሞ ከዲጂታል ፒን 3 ጋር ይገናኛል። ይህ ማሳያ ከአልትራሳውንድ ዳሳሽ የሚመጡ የርቀት ንባቦችን በእይታ ለማየት ቀላል ያደርገዋል።

የዳታሼት ዝርዝሮች

አምራችTM1637
የክፍል ቁጥርTM1637
የሎጂክ/IO ቮልቴጅ3.3 ቮ እስከ 5.5 ቮ
የአቅርቦት ቮልቴጅ5 ቮ
የውጤት ጅረት (በአንድ ቻናል)~25 ሚሊአምፐር
ከፍተኛ ጅረት (በአንድ ቻናል)~50 ሚሊአምፐር
የPWM ድግግሞሽ መመሪያየለም
የግቤት ሎጂክ ገደቦች0.3VCC ከፍተኛ
የቮልቴጅ ጠብታ / RDS(on) / ሳቹሬሽንየለም
የሙቀት ገደቦች85 °ሴ
ፓኬጅDIP-16
ማስታወሻዎች / ልዩነቶችበተለምዶ በ7-ሴግመንት ማሳያዎች ውስጥ ጥቅም ላይ ይውላል

  • ጉዳትን ለማስቀረት ትክክለኛ ግንኙነቶችን ያረጋግጡ።
  • ለአስተማማኝ አሠራር ከፍተኛውን የ5 ቮ አቅርቦት ቮልቴጅ ይጠብቁ።
  • አስፈላጊ ከሆነ ለI2C ግንኙነት ተገቢ ፑል-አፕ ይጠቀሙ።
  • የርቀት መለኪያ ክልሉን በተጠቀሰው ገደብ ውስጥ ያቆዩ (2 ሴ.ሜ - 400 ሴ.ሜ)።
  • የኃይል እና የመሬት ፒኖችን አጭር ማድረግን ያስወግዱ።
  • ታይነትን ለማረጋገጥ የማሳያ ብሩህነት ቅንብሮችን ይሞክሩ።
  • ወደ ትክክለኛ ያልሆኑ ንባቦች ሊመሩ የሚችሉ ተንሳፋፊ ግቤቶችን ይፈትሹ።

CLK = ሰዓት፣ DIO = የውሂብ ውጤት

የወልና መመሪያዎች

Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display
Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display

የHC-SR04 አልትራሳውንድ ዳሳሽን ለማገናኘት፣ የVCC ፒን (ቀይ ሽቦ) በአርዱኖ ላይ ካለው 5V ፒን ጋር፣ እና የGND ፒን (ቢጫ ሽቦ) ከመሬት ጋር ያገናኙ። የTrigger ፒን (ሰማያዊ ሽቦ) ከዲጂታል ፒን 12 ጋር መገናኘት አለበት፣ የEcho ፒን (አረንጓዴ ሽቦ) ደግሞ ከዲጂታል ፒን 11 ጋር መገናኘት አለበት። ትክክለኛ አሠራርን ለማረጋገጥ እነዚህ ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ።

ለTP1637 ማሳያ፣ የVCC ፒን (ቀይ ሽቦ) በአርዱኖ ላይ ካለው 5V ፒን ጋር እና የGND ፒን (ቢጫ ሽቦ) ከመሬት ጋር ያገናኙ። የClock ፒን (ሰማያዊ ሽቦ) ወደ ዲጂታል ፒን 2 መሄድ አለበት፣ የData ፒን (ነጭ ሽቦ) ደግሞ ከዲጂታል ፒን 3 ጋር መገናኘት አለበት። ይህ ዝግጅት አርዱኖ ከማሳያው ጋር እንዲገናኝ እና የርቀት ውሂብን ለእይታ እንዲልክ ያስችለዋል።

የኮድ ምሳሌዎች እና ማብራሪያ

የሚከተለው የኮድ ክፍል የአልትራሳውንድ ዳሳሽ እና ማሳያውን ያስነሳል፡-

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
TM1637Display display(CLK, DIO);

እዚህ፣ ለአልትራሳውንድ ዳሳሽ ትሪገር እና ኢኮ ፒኖችን እንገልጻለን እና ከፍተኛውን ርቀት ወደ 200 ሴ.ሜ እናዘጋጃለን። የNewPing ቤተ-መጻሕፍት ዳሳሹን ለማስተዳደር ይጠቅማል፣ የTM1637Display ነገር ደግሞ ማሳያውን ያስተዳድራል።

በዋናው ሉፕ ውስጥ፣ ርቀቱን በተከታታይ እናነባለን እና እናሳያለን፡-

int distance = sonar.ping_cm(); // ርቀት ያግኙ
display.showNumberDec(distance, false, 3, 1);

ይህ የኮድ ክፍል ከዳሳሹ የርቀት መለኪያውን ያመጣል እና በTP1637 ማሳያ ላይ ያሳያል። የshowNumberDec ተግባር ርቀቱን እንደ አስርዮሽ ቁጥር ለማሳየት ቅርጸት ያዘጋጃል።

ለሙሉ ኮድ፣ እባክዎ ከጽሑፉ በታች ያለውን ክፍል ይመልከቱ።

ማሳያ / ምን እንደሚጠበቅ

ሁሉም ነገር ከተዘጋጀ እና ኮዱ ከተጫነ በኋላ፣ የርቀት ንባቦች በTP1637 ማሳያ ላይ ሲታዩ ማየት ይኖርዎታል። ንባቦቹ በግምት በየ50 ሚሊሰከንድ ይዘምናሉ፣ ይህም በአልትራሳውንድ ዳሳሽ በተለካው ርቀት ላይ እውነተኛ ጊዜ የሚጠጋ ግብረ-መልስ ይሰጣል። ያልተጠበቁ እሴቶችን ካስተዋሉ፣ ዳሳሹ በትክክል መወጣቱን እና በመንገዱ ላይ ምንም እንቅፋት አለመኖሩን ያረጋግጡ (በቪዲዮው 6:15 ላይ)።

የቪዲዮ የጊዜ ምልክቶች

  • 00:00 - መግቢያ
  • 01:30 - የክፍሎች አጠቃላይ እይታ
  • 02:45 - የወልና መመሪያዎች
  • 04:00 - የኮድ ማብራሪያ
  • 06:15 - ማሳያ

ምስሎች

HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display
Arduino wiring for HC-SR04 Ultrasonic Sensor with TM1637 display
43-This is the Arduino code for the HC-SR04 ultrasonic distance sensor with a TP1637 display.
ቋንቋ: C++
/*
 * This is the Arduino code for the HC-SR04 Ultrasonic Distance Sensor with TP1637 Display
 * to measure the distance using Arduino for a robotic car and other applications
 * Watch the video https://youtu.be/SlgLj_T5GaY
 * 
 * Written by Ahmad Shamshiri for Robojax Video
 * Date: December 21, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */

/* Original Code 
   from https://github.com/avishorp/TM1637
// https://playground.arduino.cc/Code/NewPing
 * Modified for Robojax video on December 21, 2017
// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------
*/

#include <NewPing.h>

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.


////////////////////////////
#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY  500
TM1637Display display(CLK, DIO);
/////////////////////////

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
  display.setBrightness(0x0f);
  uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
  display.setSegments(data);
  int distance = sonar.ping_cm();// get the distance and store it in "distance" variable
                     // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
  display.showNumberDec(distance, false, 3,1);
  delay(50);  
}

እንደሚያስፈልግዎት ይችላል

ምንጮች እና ምንጮች

ፋይሎች📁

ሌላ ፋይሎች