Isi kandungan:

Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki: 6 Langkah (dengan Gambar)
Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki: 6 Langkah (dengan Gambar)

Video: Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki: 6 Langkah (dengan Gambar)

Video: Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki: 6 Langkah (dengan Gambar)
Video: Belajar PLC Omron - Traffic Light 2024, November
Anonim
Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki
Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki

Hai! Saya akan menunjukkan kepada anda cara memprogram lampu isyarat pejalan kaki untuk Arduino di C ++ dengan mesin keadaan terhingga dengan menggunakan YAKINDU Statechart Tools. Ini akan menunjukkan kehebatan mesin negara dan dapat digunakan sebagai cetak biru untuk projek selanjutnya.

Bekalan

Anda hanya memerlukan Arduino, beberapa butang tekan, LED, Jumper dan perintang.

Perkakasan

  • Butang Tekan 2x
  • Lampu isyarat 2x atau anda boleh menggunakan LED dengan 220 Ohm perintang
  • Perintang 2x 10k Ohm
  • Papan roti
  • Pelompat
  • Arduino Uno / Mega (atau yang lain, yang mendapat sekurang-kurangnya 8 GPIO)

Perisian

  • Alat Carta Negeri YAKINDU
  • Eclipse C ++ IDE untuk Arduino

Langkah 1: Tentukan Cara Berfungsi: Lampu Lalu Lintas Pejalan Kaki

Pada mulanya, kita perlu menentukan cara lampu isyarat pejalan kaki berfungsi. Saya telah mencuba untuk meringkaskan titik peluru:

  • Dua lampu isyarat digunakan - satu untuk kereta, yang lain untuk pejalan kaki
  • Lampu isyarat dapat dihidupkan dengan menggunakan butang
  • Pejalan kaki boleh meminta melintasi jalan dengan menekan butang
  • Lampu isyarat dimatikan ditunjukkan dengan mengedipkan kedua-dua LED kuning
  • Setelah menyala, lampu isyarat menunggu selama 10 saat dalam mod selamat
  • Selepas mod selamat, kereta selalu mempunyai fasa hijau sehingga pejalan kaki memulakan permintaan
  • Permintaan pejalan kaki untuk menyeberang ditunjukkan dengan menukar LED kuning

Selain itu, terdapat beberapa peristiwa waktu bergantung pada cara bagaimana lampu isyarat berfungsi.

Langkah 2: Bina Litar

Bina Litar
Bina Litar

Mari mulakan pemasangan litar. Dalam contoh saya, seperti yang anda lihat pada gambar pratonton, saya telah menggunakan Arduino Mega 2560, tetapi setiap Arduino lain dengan sekurang-kurangnya lapan GPIO semestinya baik-baik saja. Selain itu, saya telah membeli beberapa lampu isyarat 5V di Amazon. Cari sahaja Arduino Traffic Light. Jika tidak, anda boleh menggunakan enam LED yang berbeza. Tambahan pula, anda memerlukan dua butang tekan dan dua perintang 10k Ohm.

Tiga LED kiri digunakan untuk lalu lintas kereta dan tiga LED kanan untuk pejalan kaki, di mana yang kuning dapat menunjukkan permintaan.

Langkah 3: Membuat Mesin Negara

Membuat Mesin Negara
Membuat Mesin Negara

Oleh itu, seperti yang anda lihat terdapat dua keadaan utama dengan anggota gabungan - nyatakan dan matikan. Anda boleh beralih antara kedua-dua keadaan dengan menggunakan acara onOff, yang disambungkan ke butang ON / OFF. Dalam keadaan awal, keadaan mati, kedua-dua LED kuning mula berkelip setiap saat. Setelah lampu isyarat dihidupkan, lampu akan bermula di Safestate. Selepas 10 saat, tingkah laku lampu isyarat biasa akan dikendalikan. LED merah dan kuning akan dihidupkan dalam keadaan StreetPrepare dan lampu isyarat bertukar menjadi hijau setelah 2 saat lagi. Mulai sekarang, mesin negara sedang menunggu acara permintaan pejalan kaki, yang disambungkan ke butang kedua. Setelah mengirim acara, permintaan akan ditunjukkan dengan menukar LED kuning setiap saat dalam keadaan PedWating. 7 saat kemudian lampu isyarat akan bertukar menjadi kuning terlebih dahulu dan kemudian menjadi merah sehingga pejalan kaki mendapat isyarat untuk masuk dalam keadaan PedestrianGreen. Selepas ini, PedestrianRed diaktifkan dan kitaran berulang. Ini hanya boleh terganggu dengan mematikan lampu isyarat lagi.

Langkah 4: Menjalankan Contoh

Langkah 5: Kod C ++ yang dihasilkan

Kod C ++ yang dihasilkan adalah suis klasik untuk menangani logik mesin keadaan. Ini hanyalah coretan kod bagaimana rupanya:

batal TrafficLightCtrl:: runCycle () {clearOutEvents (); untuk (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_react (benar); rehat; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (benar); rehat; } lalai: rehat; } clearInEvents (); }

Langkah 6: Dapatkan Contohnya

Keseluruhan contoh siap untuk disusun & dijalankan. Ia dilengkapi dengan YAKINDU Statechart Tools, yang percuma untuk penggunaan bukan komersial. Selepas memuat turun, anda boleh mengimport contohnya secara langsung dalam alat:

Fail -> Baru -> Contoh -> Contoh Statechart YAKINDU -> Seterusnya -> Lampu Lalu Lintas (C ++) untuk Arduino

> DI SINI anda boleh memuat turun YAKINDU Statechart Tools <<

Anda boleh memulakan dengan percubaan 30 hari. Selepas itu, anda mesti mendapat lesen, yang percuma untuk penggunaan bukan komersial!

Disyorkan: