Light Following and Avoiding Robot Based on Arduino: 5 Steps

Light Following and Avoiding Robot Based on Arduino: 5 Steps

Isi kandungan:

Anonim

Ini adalah projek mudah yang mengikuti atau Menghindari Cahaya.

Saya Membuat Simulasi ini dalam Proteus 8.6 pro.

Komponen yang diperlukan: -

1) Arduino uno.

2) 3 LDR.

3) 2 Dc Gear Motors.

4) One Servo.

5) Tiga Resistor 1k.

6) satu l290D H-Bridge

7) One on & Off Switch untuk mengubah keadaan Program

8) 9v dan 5v Battry

Bekalan:

Langkah 1: Kod Ardunio

Improvements: _

Kod Arduino diubahsuai tarikh litte -bit 23 Februari 2016

Kod ini sangat mengulas saya tidak mahu menjelaskan tetapi jika anda memerlukan bantuan, saya boleh menghubungi anda di ([email protected])

Catatan:-

Saya menggunakan dua syarat dalam program ini

1 untuk Light Following.

2 untuk Cahaya mengelakkan.

Setakat Syarat ini berpuas hati Robot akan Ikut atau Mengelakkan Cahaya.

Ini adalah Nilai Minimum LDR yang saya pilih. Dalam cahaya Normal itu Range adalah 80 hingga 95 tetapi sebagai Intensity meningkatkan lebih banyak dan lebih banyak voltan teraruh accros itu kerana ia bekerja pada Prinsip Voltage Divider

int a = 400; / / Nilai Toltan

Langkah 2: Fail Proteus

Untuk Arduino Library unduh dari pautan itu

Langkah 3: Bagaimana Kerja H-bridge anda

L293NE / SN754410 adalah jambatan H yang sangat asas. Ia mempunyai dua jambatan, satu di sebelah kiri cip dan satu di sebelah kanan, dan boleh mengawal 2 motor. Ia boleh memandu sehingga 1 amp semasa, dan beroperasi antara 4.5V dan 36V. Motor DC kecil yang anda gunakan di makmal ini boleh berjalan dengan selamat dari voltan yang rendah supaya jambatan H ini berfungsi dengan baik. Jambatan H mempunyai pin dan ciri-ciri berikut: Pin 1 (1,2EN) membolehkan dan melumpuhkan motor kami sama ada ia memberikan TINGGI atau LOWPin 2 (1A) adalah pin logik untuk motor kami (input adalah TINGGI atau LOW) Pin 3 (1Y) adalah untuk salah satu terminal motorPin 4-5 adalah untuk groundPin 6 (2Y) adalah untuk terminal motor lainPin 7 (2A) adalah pin logik untuk motor kami (input adalah TINGGI atau LOW) Pin 8 (VCC2) adalah bekalan kuasa untuk motor kami, ini harus diberikan voltan undian motorPin 9-11 anda tidak berkaitan kerana anda hanya menggunakan satu motor dalam labPin 12-13 ini untuk groundPin 14-15 adalah unconnectedPin 16 (VCC1) adalah disambungkan ke 5V. Di bahagian atas adalah gambarajah jambatan H dan pin yang melakukan apa yang ada dalam contoh kami. Termasuk dengan gambar rajah adalah jadual kebenaran yang menunjukkan bagaimana motor akan berfungsi mengikut keadaan pin logik (yang ditetapkan oleh Arduino kami).

Dalam Projek ini, membolehkan pin disambungkan ke pin digital pada Arduino anda supaya anda boleh menghantarnya sama ada TINGGI atau LOW dan putar motor ON atau OFF. PIN logik motor juga disambungkan ke pin digital yang ditetapkan pada Arduino anda supaya anda boleh menghantarnya TINGGI dan RENDAH untuk mempunyai giliran motor dalam satu arah, atau LOW dan TINGGI agar ia berpaling ke arah yang lain. Voltan bekalan motor menghubungkan kepada sumber voltan untuk motor, yang biasanya merupakan bekalan kuasa luaran. Sekiranya motor anda boleh berjalan pada 5V dan kurang daripada 500mA, anda boleh menggunakan output 5V Arduino. Kebanyakan motors memerlukan voltan yang lebih tinggi dan tarikan semasa yang lebih tinggi daripada ini, jadi anda memerlukan bekalan kuasa luaran.

Sambungkan motor ke jambatan H Hubungkan motor ke jambatan H seperti ditunjukkan dalam gambar ke-2.

Atau, jika anda menggunakan bekalan kuasa luaran untuk Arduino, anda boleh menggunakan pin Vin.

Langkah 4: Bagaimana LDR berfungsi

Kini perkara pertama yang mungkin memerlukan penjelasan lanjut ialah penggunaan Resistor Terang Cahaya. Resistor Bergantung Cahaya (atau LDR) adalah resistor yang nilai berubah bergantung kepada jumlah cahaya ambien, tetapi bagaimana kita dapat mengesan rintangan dengan Arduino? Nah, anda tidak boleh benar-benar, namun anda boleh mengesan paras voltan menggunakan pin analog, yang dapat mengukur (dalam kegunaan asas) antara 0-5V. Kini anda mungkin bertanya "Nah bagaimana kita menukar nilai rintangan ke dalam perubahan voltan?", Ia mudah, kita membuat pembahagi voltan. Pembahagi voltan mengambil voltan dan kemudian menghasilkan sebahagian kecil daripada voltan yang berkadar dengan voltan masukan dan nisbah dua nilai perintang yang digunakan. Persamaan yang mana:

Voltan Output = Voltan Input * (R2 / (R1 + R2)) Di mana R1 adalah nilai perintang pertama dan R2 adalah nilai kedua.

Sekarang ini masih menimbulkan persoalan "Tetapi apa nilai rintangan yang LDR ada?", Soalan yang baik.

Lebih kurang cahaya ambien semakin tinggi rintangan, cahaya ambien lebih bermakna rintangan yang lebih rendah. Sekarang untuk LDR tertentu saya menggunakan rintangan mereka adalah dari 200 - 10 kilo ohm, tetapi perubahan ini untuk yang berbeza jadi pastikan untuk mencari di mana anda membelinya dari dan cuba untuk mencari datasheet atau sesuatu jenis.Now dalam ini kes R1 sebenarnya LDR kami, jadi mari kita bawa semula persamaan itu dan lakukan beberapa matematik-e-sih (sihir elektrik matematik). Sekarang pertama kita perlu menukar nilai ohm kilo ke ohm:

200 kilo-ohms = 200,000 ohm 10 kilo-ohms = 10,000 ohms

Jadi untuk mencari apa voltan keluaran adalah apabila kita berada di padang hitam kita pasangkan nombor-nombor berikut:

5 * (10000 / (200000 + 10000))

Inputnya adalah 5V kerana itulah yang kita dapatkan dari Arduino.

Di atas memberikan 0.24V (bulat). Sekarang kita dapati apa voltan keluaran berada di puncak kecerahan dengan menggunakan nombor berikut: 5 * (10000 / (10000 + 10000)) Dan ini memberikan kita 2.5V tepat.

Jadi ini adalah nilai voltan yang kita akan masuk ke dalam pin analog Arduino, tetapi ini bukan nilai yang akan dilihat dalam program, "Tetapi kenapa?" Anda boleh bertanya.

Arduino menggunakan Analog ke Digital Chip yang menukarkan voltan analog ke dalam data digital yang boleh digunakan. Tidak seperti pin digital pada Arduino yang hanya boleh membaca keadaan TINGGI atau LOW yang 0 dan 5V pin analog boleh dibaca dari 0-5V dan menukarkannya ke dalam julat nombor 0-1023. Kini dengan beberapa lagi math-e-magic.

kita sebenarnya dapat mengira nilai-nilai yang sebenarnya akan dibaca Arduino.

Kerana ini akan menjadi fungsi linear kita boleh menggunakan formula berikut: Y = mX + C

Di mana; Y = ValueWhere Digital; m = cerun, (naik / berlari), (nilai digital / nilai analog) Di mana; C = Y interceptThe intercept Y adalah 0 sehingga memberi kita: Y = mXm = 1023/5 = 204.6Oleh itu: Nilai digital = 204.6 * Nilai analog Jadi dalam pitch hitam nilai digital akan: 204.6 * 0.24

Yang memberikan kira-kira 49. Dan dalam kecerahan puncak akan menjadi: 204.6 * 2.5

Yang memberi kira-kira 511.

Sekarang dengan dua daripada ini ditubuhkan pada dua pin analog kita boleh membuat dua pembolehubah integer untuk menyimpan nilai mereka dua dan melakukan pengendali perbandingan untuk melihat mana yang mempunyai nilai terendah, memutar robot ke arah itu.

Langkah 5: