HC SR04 ultrasonik diapazonini bitta pin bilan ulashga misol
HC-SR04-ni Arduino-ga ulash bitta pin yordamida amalga oshirilishi mumkin. Agar siz katta loyiha bilan ishlayotgan bo'lsangiz va sizda etarli bo'sh pinlar bo'lmasa, bu variant foydalidir. Ulanish uchun siz TRIG va ECHO pinlari orasiga 2.2K rezistorni o'rnatishingiz va TRIG pinini arduino -ga ulashingiz kifoya.
#include
#define PIN_PING 12 // Arduino pimi masofa sensori tetik va aks -sado pinlariga ulangan#define MAX_DISTANCE 200
#define MAX_DISTANCE 200 // Biz boshqaradigan maksimal masofa (400-500 sm).
NewPing sonar(PIN_PING, PIN_PING, MAX_DISTANCE); // Pim va maksimal masofani sozlash
Qisqa xulosalar
Ultrasonik masofali datchiklar ko'p qirrali va aniq bo'lib, ko'pchilik sevimli mashg'ulotlari loyihalarida qo'llaniladi. Maqolada arduino kartasiga osongina ulanishi mumkin bo'lgan juda mashhur HC SR04 sensori muhokama qilinadi (buning uchun siz darhol ikkita bo'sh pinni ulashingiz kerak, lekin bitta pinli ulanish imkoniyati mavjud). Sensor bilan ishlash uchun bir nechta bepul kutubxonalar mavjud (ulardan faqat bittasi, NewPing, maqolada ko'rib chiqilgan), lekin siz ularsiz qilishingiz mumkin - sensorning ichki boshqaruvchisi bilan o'zaro aloqa qilish algoritmi juda oddiy, biz buni ko'rsatdik. maqola.
O'z tajribamizga asoslanib, HC-SR04 sensori 10 santimetrdan 2 metrgacha bo'lgan masofada bir santimetr ichida aniqlikni ko'rsatadi, deb aytish mumkin. Qisqa va uzoqroq masofalarda kuchli shovqin paydo bo'lishi mumkin, bu atrofdagi narsalarga va foydalanish usuli. Ammo ko'p hollarda HC-SR04 juda yaxshi ish qildi.
Ultrasonik sensirni ishlatish kodi
#define echoPin 2
#define trigPin 3
long vaqt;
int masofa;
void setup() {
// put your setup code here, to run once:
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.begin(9600);
Serial.println("UltraSonic Sensor: ");
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin, LOW);
delay(200);
digitalWrite(trigPin, HIGH);
delay(100);
digitalWrite(trigPin, LOW);
vaqt = pulseIn(echoPin, HIGH);
masofa = vaqt * 0.034/2;
Serial.print("Masofa:");
Serial.print(masofa);
Serial.println("cm");
}
Do'stlaringiz bilan baham: |