Lambar Arduino da Bidiyo: Na'urar Auna Nisa ta Ultrasonic HC-SR04 tare da Nunin TP1637
A cikin wannan koyawa, za mu bincika yadda ake amfani da na'urar auna nisa ta ultrasonic HC-SR04 tare da nunin TP1637 don nuna ma'aunin nisa a gani. Wannan aikin yana da kyau ga aikace-aikace kamar motocin robot da sauran ayyukan auna nisa. A ƙarshen wannan jagorar, za ku sami tsarin aiki wanda ke auna nisa kuma ya nuna shi akan allo, yana ba da damar saukaka kula da karatun na'urar.

Za mu yi amfani da manyan abubuwa biyu: na'urar ultrasonic HC-SR04 da kuma na'urar nunin TP1637. Na'urar HC-SR04 tana fitar da raƙuman ultrasonic kuma tana auna lokacin da suke ɗauka don dawowa, tana ƙididdige nisa bisa wannan lokacin. Nunin TP1637 yana amfani da sadarwar I2C don nuna nisan da aka auna a cikin tsari mai sauƙin amfani. Don ƙarin haske, kuna iya koma ga bidiyon a 1:30 don bayanin gani na abubuwan.
Bayanin Kayan Aiki
Na'urar ultrasonic HC-SR04 tana da fil ɗin guda huɗu: VCC, Trig, Echo, da GND. Fil ɗin VCC yana haɗawa da tushen wutar lantarki, yayin da fil ɗin GND yana haɗawa da ƙasa. Fil ɗin Trig ana amfani da shi don kunna bugun ultrasonic, kuma fil ɗin Echo yana karɓar bugun da aka mayar. Wannan na'urar tana iya auna nisa daga 2 cm zuwa 400 cm.
Na'urar nunin TP1637 tana da fil guda huɗu kuma, waɗanda ake amfani da su don sadarwar I2C. Waɗannan fil ɗin sun haɗa da VCC, GND, Clock (CLK), da Data (DIO). A cikin wannan aikin, fil ɗin CLK an haɗa shi da fil ɗin dijital 2 akan Arduino, kuma fil ɗin DIO an haɗa shi da fil ɗin dijital 3. Wannan nunin yana sauƙaƙa ganin karatun nisa daga na'urar ultrasonic.
Cikakkun Bayanan Datasheet
| Mai ƙirƙira | TM1637 |
|---|---|
| Lambar sashi | TM1637 |
| Wutar Logic/IO | 3.3 V zuwa 5.5 V |
| Wutar samarwa | 5 V |
| Fitowar wutar (kowane tashoshi) | ~25 mA |
| Kololuwar wutar (kowane tashoshi) | ~50 mA |
| Jagorar mitar PWM | Babu |
| Matsakaicin shigarwar dabaru | 0.3VCC max |
| Rage wutar / RDS(on) / saturation | Babu |
| Iyakokin zafi | 85 °C |
| Kunshin | DIP-16 |
| Bayanan kula / bambance-bambance | Ana amfani da shi sosai a nunin 7-segment |
- Tabbatar da haɗin kai daidai don guje wa lalacewa.
- Kiyaye matsakaicin wutar samarwa na 5 V don aminci.
- Yi amfani da pull-ups masu dacewa don sadarwar I2C idan an buƙata.
- Kiyaye kewayon auna nisa a cikin iyakokin da aka ƙayyade (2 cm - 400 cm).
- Guji gajarta fil ɗin wutar da ƙasa.
- Gwada saitunan haske na nunin don tabbatar da gani.
- Duba don shigarwar da ke iyo wanda zai iya haifar da karatun da ba daidai ba.
CLK = agogo, DIO = fitowar bayanai
Umarnin Haɗin Waya

Don haɗa na'urar ultrasonic HC-SR04, haɗa fil ɗin VCC (jan waya) zuwa fil ɗin 5V akan Arduino, da fil ɗin GND (rawaya waya) zuwa ƙasa. Fil ɗin Trigger (shuɗi waya) ya kamata a haɗa shi da fil ɗin dijital 12, yayin da fil ɗin Echo (kore waya) ya kamata a haɗa shi da fil ɗin dijital 11. Tabbatar waɗannan haɗin suna da ƙarfi don tabbatar da aiki mai kyau.
Don nunin TP1637, haɗa fil ɗin VCC (jan waya) zuwa fil ɗin 5V akan Arduino da fil ɗin GND (rawaya waya) zuwa ƙasa. Fil ɗin Clock (shuɗi waya) ya kamata ya tafi fil ɗin dijital 2, kuma fil ɗin Data (fari waya) ya kamata ya haɗa da fil ɗin dijital 3. Wannan saitin yana ba da damar Arduino ya sadarwa da nunin kuma ya aika bayanan nisa don gani.
Misalan Lamba & Bayani
Wannan ɓangaren lamba mai zuwa yana fara na'urar ultrasonic da nunin:
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
TM1637Display display(CLK, DIO);
Anan, muna ayyana fil ɗin don trigger da echo na na'urar ultrasonic kuma mun saita matsakaicin nisa zuwa 200 cm. Ana amfani da ɗakin karatu na NewPing don sarrafa na'urar, yayin da abu na TM1637Display ke sarrafa nunin.
A cikin babban madauki, muna ci gaba da karanta nisa kuma mu nuna shi:
int distance = sonar.ping_cm(); // samun nisa
display.showNumberDec(distance, false, 3, 1);
Wannan ɓangaren lambar yana karɓar ma'aunin nisa daga na'urar kuma ya nuna shi akan nunin TP1637. Aikin showNumberDec yana tsara nisa don nunawa azaman lambar decimal.
Don cikakken lambar, da fatan za ku koma ga ɓangaren da ke ƙasa labarin.
Nunawa / Abin da za ku Yi Tsammani
Da zarar an saita komai kuma an ɗora lambar, ya kamata ku ga karatun nisa akan nunin TP1637. Karatun zai sabunta kusan kowane milisakan 50, yana ba da amsa kusan nan take akan nisan da na'urar ultrasonic ta auna. Idan kun lura da wasu ƙimomi marasa tsammani, tabbatar da cewa na'urar tana nuni daidai kuma babu shinge a hanyarta (a cikin bidiyo a 6:15).
Lokutan Bidiyo
- 00:00 - Gabatarwa
- 01:30 - Bayanin abubuwa
- 02:45 - Umarnin haɗin waya
- 04:00 - Bayanin lamba
- 06:15 - Nunawa
/*
* 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);
}
Abin da zaka iya bukata
-
eBay
Albarkatun da kuma shafukan da za a duba
-
WajeHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
Fayiloli📁
Sauran fayiloli
-
HC-SR04 na'urar ultrasonic sensor Arduino Library
robojax-HC-SR04-ultrasonic-Library.zip0.02 MB