İçindekiler:

Arduino Tabanlı Işık Takip Eden ve Kaçınan Robot: 5 Adım
Arduino Tabanlı Işık Takip Eden ve Kaçınan Robot: 5 Adım

Video: Arduino Tabanlı Işık Takip Eden ve Kaçınan Robot: 5 Adım

Video: Arduino Tabanlı Işık Takip Eden ve Kaçınan Robot: 5 Adım
Video: Üşendiğim İşleri Halletmesi İçin Bu Cihazı Tasarladım - ( Tam Bir Mühendislik İsrafı ) 2024, Kasım
Anonim
Arduino Tabanlı Işığı Takip Eden ve Kaçınan Robot
Arduino Tabanlı Işığı Takip Eden ve Kaçınan Robot

Bu, Işığı takip eden veya Önleyen basit bir projedir.

Bu Simülasyonu Proteus 8.6 pro'da Yaptım. Gerekli Bileşenler:-1) Arduino uno.

2) 3 LDR.

3) 2 DC Dişli Motor.4) Bir Servo.5) Üç 1k Direnç.6) bir H-Bridge l290D7) Bir Açma & Kapatma Anahtarı [Programın durumunu değiştirmek için]

8) 9v ve 5v Pil

Adım 1: Arduino Kodu

Arduino Kodu biraz değiştirildi 23 Şubat 2016]

Bu Kod Çok Yorumlandı Açıklamak istemiyorum ama yardıma ihtiyacınız olursa ([email protected]) adresinden benimle iletişime geçmekten çekinmeyin.

Not:-Bu programda iki koşul kullanıyorum 1. Işık Takibi için.2. Işıktan kaçınma için.

Bu Koşullar sağlandığı sürece, Robot Işığı Takip Edecek veya Kaçınacaktır. [Bu benim seçtiğim Minimum LDR Değeridir. Normal Işıkta Menzili 80 ila 95'tir, ancak Yoğunluğu arttıkça, Voltaj Bölücü Prensibi üzerinde çalıştığı için indüklenen voltajlar arttıkça int a = 400; // Tolerans Değeri]

2. Adım: Proteus Dosyaları

Arduino Kütüphanesi için bu bağlantıdan indirin

3. Adım: H-köprünüz Nasıl Çalışır?

H-köprünüz Nasıl Çalışır?
H-köprünüz Nasıl Çalışır?
H-köprünüz Nasıl Çalışır?
H-köprünüz Nasıl Çalışır?

L293NE/SN754410 çok basit bir H köprüsüdür. Çipin sol tarafında ve sağ tarafında olmak üzere iki köprüsü vardır ve 2 motoru kontrol edebilir. 1 amp'e kadar akım sürebilir ve 4.5V ile 36V arasında çalışabilir. Bu laboratuvarda kullandığınız küçük DC motor, düşük voltajda güvenle çalışabilir, bu nedenle bu H köprüsü gayet iyi çalışır. H-köprüsü aşağıdaki pinlere ve özelliklere sahiptir: Pin 1 (1, 2EN) ister YÜKSEK ister DÜŞÜK olsun motorumuzu etkinleştirir ve devre dışı bırakırPin 2 (1A) motorumuz için bir mantık pinidir (giriş YÜKSEK veya DÜŞÜK)Pin 3 (1Y) motor terminallerinden biri içindirPin 4-5 topraklama içindirPin 6 (2Y) diğer motor terminali içindirPin 7 (2A) motorumuz için bir mantık pinidir (giriş YÜKSEK veya DÜŞÜK)Pin 8 (VCC2)) motorumuz için güç kaynağıdır, buna motorunuzun anma gerilimi verilmelidir, bu laboratuvarda sadece bir motor kullandığınız için Pin 9-11 bağlı değilPin 12-13 toprak içindirPin 14-15 bağlı değilPin 16 (VCC1) 5V'a bağlı. Yukarıda H köprüsünün bir diyagramı ve örneğimizde hangi pinlerin ne yaptığı görülmektedir. Şemaya dahil edilen, motorun mantık pinlerinin (Arduino tarafından ayarlanan) durumuna göre nasıl çalışacağını gösteren bir doğruluk tablosudur.

Bu Projede, etkinleştirme pimi Arduino'nuzdaki dijital bir pime bağlanır, böylece YÜKSEK veya DÜŞÜK gönderebilir ve motoru AÇIK veya KAPALI duruma getirebilirsiniz. Motor mantık pinleri ayrıca Arduino'nuzdaki belirlenmiş dijital pinlere bağlanır, böylece motorun bir yönde dönmesi için YÜKSEK ve DÜŞÜK veya diğer yönde dönmesi için DÜŞÜK ve YÜKSEK gönderebilirsiniz. Motor besleme gerilimi, genellikle harici bir güç kaynağı olan motorun gerilim kaynağına bağlanır. Eğer motorunuz 5V ile ve 500mA altında çalışabiliyorsa Arduino'nun 5V çıkışını kullanabilirsiniz. Çoğu motor bundan daha yüksek voltaj ve daha yüksek akım çekişi gerektirir, bu nedenle harici bir güç kaynağına ihtiyacınız olacaktır.

Motoru H köprüsüne bağlayın Motoru 2. resimde gösterildiği gibi H köprüsüne bağlayın.

Veya Arduino için harici bir güç kaynağı kullanıyorsanız Vin pinini kullanabilirsiniz.

4. Adım: LDR Nasıl Çalışır?

Şimdi daha fazla açıklamaya ihtiyaç duyabilecek ilk şey, Işığa Bağlı Dirençlerin kullanılmasıdır. Işığa Bağlı Dirençler (veya LDR'ler), ortam ışığının miktarına bağlı olarak değeri değişen dirençlerdir, ancak Arduino ile direnci nasıl tespit edebiliriz? Gerçekten yapamazsınız, ancak 0-5V arasında (temel kullanımda) ölçebilen analog pinleri kullanarak voltaj seviyelerini tespit edebilirsiniz. Şimdi “Peki direnç değerlerini voltaj değişimlerine nasıl çevireceğiz?” diye soruyor olabilirsiniz, çok basit, voltaj bölücü yapıyoruz. Bir voltaj bölücü bir voltajı alır ve daha sonra giriş voltajına ve kullanılan iki direnç değerinin oranına orantılı olarak bu voltajın bir kısmını verir. Bunun için denklem:

Çıkış Voltajı = Giriş Voltajı * (R2 / (R1 + R2)) Burada R1 birinci direncin değeri ve R2 ikinci direncin değeridir.

Şimdi bu hala “LDR'nin hangi direnç değerlerine sahip?” Sorusunu soruyor, iyi soru. Ortam ışığı ne kadar az olursa direnç o kadar yüksek olur, daha fazla ortam ışığı daha düşük direnç anlamına gelir. Şimdi belirli LDR'ler için direnç aralığını 200 – 10 kilo ohm arasında kullandım, ancak bu farklı olanlar için değişir, bu yüzden onları nereden satın aldığınıza bakın ve bir veri sayfası veya buna benzer bir şey bulmaya çalışın. durum R1 aslında bizim LDR'mizdir, bu yüzden bu denklemi geri getirelim ve biraz matematik-e-sihir yapalım (matematiksel elektrik büyüsü). Şimdi önce bu kilo ohm değerlerini ohm'a dönüştürmemiz gerekiyor:200 kilo-ohms = 200.000 ohm 10 kilo-ohm = 10.000 ohmBöylece zifiri karanlıktayken çıkış voltajının ne olduğunu bulmak için aşağıdaki sayıları giriyoruz: 5 * (10000 / (200000 + 10000))Giriş 5V, elde ettiğimiz şey bu Arduino'dan. Yukarıdaki 0.24V (yuvarlanmış) verir. Şimdi aşağıdaki sayıları kullanarak tepe parlaklıkta çıkış voltajının ne olduğunu buluyoruz:5 * (10000 / (10000 + 10000))Ve bu bize tam olarak 2.5V veriyor. Yani Arduino'nun analog pinlerine gireceğimiz voltaj değerleri bunlar ama bunlar programda görülecek değerler değil, "Ama neden?" sorabilirsin. Arduino, analog voltajı kullanılabilir dijital verilere dönüştüren bir Analogdan Dijitale Çip kullanır. Arduino'daki 0 ve 5V olan YÜKSEK veya DÜŞÜK durumunu okuyabilen dijital pinlerin aksine, analog pinler 0-5V arasında okuyabilir ve bunu 0-1023 sayı aralığına dönüştürebilir. Şimdi biraz daha matematik-e-sihir ile. Arduino'nun gerçekte hangi değerleri okuyacağını gerçekten hesaplayabiliriz.

Bu doğrusal bir fonksiyon olacağı için aşağıdaki formülü kullanabiliriz: Y = mX + C Burada; Y = Dijital DeğerNerede; m = eğim, (yükselme / koşma), (dijital değer / analog değer)Nerede; C = Y kesişimiY kesişimi 0'dır, yani bize şunu verir:Y = mXm = 1023 / 5 = 204.6Bu nedenle:Dijital değer = 204.6 * Analog değer Yani zifiri karanlıkta dijital değer:204.6 * 0.24 olur ve bu da yaklaşık 49 verir. tepe parlaklıkta şu olacaktır: 204.6 * 2.5 Bu da yaklaşık olarak 511 verir. Şimdi bunlardan iki tanesini iki analog pin üzerine kurarak, iki değerlerini depolamak için iki tamsayı değişkeni oluşturabilir ve hangisinin en düşük değere sahip olduğunu görmek için karşılaştırma operatörleri yapabiliriz, robotu o yöne çevir.

Önerilen: