Arduino ultrasonik sensör: mesafeler nasıl ölçülür
Arduino ile ultrasonik bir sensör kullanarak mesafeleri kolayca ölçebilirsiniz. Bu pratik ipucunda size nasıl olduğunu göstereceğiz.
Arduino ultrasonik sensör: mesafeler nasıl ölçülür
Mesafeleri ölçmek için, Arduino'ya ek olarak bazı bağlantı kablolarına sahip bir breadboard'a ve bir HC-SR04 ultrasonik ölçüm modülüne ihtiyacınız vardır.
- Modülün "Tetik" pimini Pin 13'e ve "Echo" pimini Arduino'nun Pin 12'sine bağlayın. Ayrıca HC-SR04 ultrasonik ölçüm modülünü 5V ve şasiye bağlayın.
- Çıkış olarak "tetikleyici" ve giriş olarak "yankı" tanımlayın. Ayrıca "süre" ve "mesafe" uzun değişkenlerine de ihtiyacınız vardır.
- Önce tetiği kapatın (»digitalWrite (tetikleyici, DÜŞÜK);«) ve 2 mikrosaniye (»delayMicroseconds (2);«) bekleyin. Ardından tetiği açın (»digitalWrite (tetikleyici, YÜKSEK);«), 10 mikrosaniye (»delayMicroseconds (10);«) bekleyin ve tekrar kapatın (»digitalWrite (tetikleyici, DÜŞÜK);«). Süreyi (»süre = pulseIn (yankı, YÜKSEK);«) ve son olarak gerçek mesafeyi (»mesafe = (süre / 2) / 29.1;«) hesaplamak için bunu kullanın.
- Bu değişken ile istediğiniz gibi hesaplamaya devam edebilirsiniz.
Arduino: Ultrasonik sensör için örnek kod
Resimde, HC-SR04'ü profesyonel olarak kullanmak istiyorsanız kullanabileceğiniz kodu görürsünüz. Kodu buraya kopyalayabilirsiniz:
- #include #define trigger 13 #define echo 12 #define led_1 11 #define led_2 10 int value_tone; uzun süre, mesafe; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); void setup () {Serial.begin (9600); pinMode (tetikleyici, ÇIKIŞ); // HC-SR04 pinMode pimi (eko, INPUT); // HC-SR04 pinMode pimi (led_1, ÇIKIŞ); // LED pinMode (led_2, OUTPUT); // LED pinMode (9, ÇIKIŞ); // buzzer lcd. başlangıç (16, 2); } void loop () {digitalWrite (tetikleyici, DÜŞÜK); gecikme Mikrosaniye (2); digitalWrite (tetikleyici, YÜKSEK); gecikme Mikrosaniye (10); digitalWrite (tetikleyici, DÜŞÜK); süresi = pulseIn (yankı, YÜKSEK); mesafe = (süre / 2) / 29.1; if (distance = 200 || distance <= 0) {Serial.println ("Aralık dışı"); } başka {Seri.print (mesafe); Serial.println ("cm"); } lcd.clear (); lcd.setİmleç (1, 0); lcd.print ("Mesafe:"); lcd.print (mesafe); lcd.print ("cm"); eğer (mesafe 0) {value_tone = harita (mesafe, 0, 200, 0, 5000); ton (9, değer_tonu); } başka {} gecikme (500); }
Bir sonraki pratik ipucunda, Arduino'da nasıl bir GSM modülü kurulacağını göstereceğiz.