Daftar Isi:

Model Saklar Mati Universal: 10 Langkah
Model Saklar Mati Universal: 10 Langkah

Video: Model Saklar Mati Universal: 10 Langkah

Video: Model Saklar Mati Universal: 10 Langkah
Video: Pasang Saklar Bor Listrik ||Saklar Bolak-balik Universal || Ryu RDR10-3RE 2024, Juli
Anonim
Model Saklar Mati Universal
Model Saklar Mati Universal

Apakah Anda lelah memeriksa bahwa semua lampu di rumah Anda mati sebelum Anda pergi tidur? Apakah Anda berharap dapat mematikan setiap lampu sekaligus tanpa repot? Untuk menghemat daya dan waktu, kami memutuskan untuk membuat sistem yang secara teoritis dapat mematikan seluruh rumah sekaligus.

Kami memodelkan bukti konsep ini menggunakan beberapa LED dan papan sirkuit basys 3, dan membuat desain yang akan menonaktifkan semua LED dengan menekan sebuah tombol. Model ini dapat diterapkan pada sistem penerangan rumah yang sebenarnya juga, meskipun akan membutuhkan pengkabelan yang lebih rumit dan modifikasi pada file VHDL yang diberikan.

Langkah 1: Impor File VHDL yang Diberikan

Agar model kami berfungsi dengan benar, Anda perlu mengunduh perangkat lunak yang memberikan instruksi pada papan Basys 3.

Pertama, Anda perlu mengunduh alat sintesis untuk mengimplementasikan file vhdl ke perangkat keras. Jika Anda ingin memastikan bahwa semua kode akan sepenuhnya mereplikasi desain kami tanpa perlu modifikasi apa pun, kami sarankan Anda menggunakan Vivado 2016.2. Setelah Anda menginstal Vivado, Anda dapat membuat proyek dan mengunduh file sumber kami. Tambahkan mereka sebagai sumber ke proyek Anda, jangan lupa untuk menambahkan file kendala juga!

Selanjutnya kami akan menjelaskan apa yang dilakukan masing-masing file sumber. Lewati langkah 2 hingga 6 jika Anda hanya ingin sampai ke konstruksi fisik perangkat.

Langkah 2: Perincian Modul Atas VHDL

Perincian Modul Atas VHDL
Perincian Modul Atas VHDL
Perincian Modul Atas VHDL
Perincian Modul Atas VHDL

Modul teratas dari proyek ini adalah yang menghubungkan semua modul komponen individual ke perangkat keras yang digunakan. Seperti yang Anda lihat, kami memiliki modul killSwitch dan buzzerControl yang didefinisikan sebagai komponen di atas.

Bagian bawah menentukan bagaimana modul-modul ini terhubung bersama. Kami telah menghubungkan empat LED ke board dan menghubungkannya dengan modul killSwitch dev0 hingga dev3. Kami memiliki empat modul killSwitch yang ditentukan karena kami memerlukan satu untuk mengelola status setiap LED yang terhubung. Masing-masing modul ini menggunakan sinyal jam dan tombol yang kami buat di definisi modul teratas serta masing-masing sakelar input dan sinyal perangkat keluaran.

Modul kontrol buzzer di bagian bawah mengaktifkan buzzer ketika tombol universal off ditekan. Seperti yang Anda lihat, modul kontrol buzzer melewatkan sinyal jam dan tombol sebagai input. Itu juga melewati pin output buzzer fisik untuk mengontrolnya.

Langkah 3: Perincian Modul Saklar Pembunuh VHDL

Perincian Modul Saklar Pembunuh VHDL
Perincian Modul Saklar Pembunuh VHDL
Perincian Modul Saklar Pembunuh VHDL
Perincian Modul Saklar Pembunuh VHDL

Kill Switch adalah tombol mati universal, dan modul ini terutama berkaitan dengan menghubungkannya ke elemen sirkuit lain sehingga ketika ditekan semua lampu akan mati.

Sementara modul atas menangani menghubungkan perangkat keras fisik ke perangkat lunak, modul killSwitch menangani logika utama setiap perangkat. Modul menerima input untuk sinyal jam, tombol mati universal, dan sakelar sakelar perangkat. Sebagai gantinya, ia mengontrol status pin perangkat yang terhubung dengannya.

Di bagian arsitektur kode kita melihat bahwa ia memiliki ketergantungan pada modul dFlipFlop untuk menyimpan memori. Anda juga dapat melihat bahwa kami telah mendeklarasikan empat sinyal yang akan digunakan untuk menghubungkan flip flop serta mengimplementasikan pernyataan logika kami. Di dalam bagian perilaku kode, kami telah membuat instance modul dFlipFlop dan menetapkan sinyal I/O kami ke port.

Dari sini bagian utama dari logika kita terletak pada nilai sinyal untuk invertState dan isDevOn. Dasar logis kami untuk perangkat ini adalah sebagai berikut: "Setiap kali sakelar dilempar, lampu akan membalikkan status on/off. Setiap kali tombol ditekan, dan LED saat ini menyala, LED akan mengubah statusnya menjadi mati. " Dari dua pernyataan ini kita dapat memperkirakan bahwa status LED harus menjadi XOR dari sakelar dan elemen memori kita. Dengan cara itu, perubahan pada salah satu dari itu akan membalikkan LED. Ini dapat dilihat diimplementasikan dalam sinyal isDevOn. Kondisi LED pada elemen memori ditangani oleh sinyal invertState kami. Jika LED menyala dan tombol ditekan, elemen memori kita akan memperbarui dan membalikkan statusnya. Ini kemudian membalikkan status LED juga.

Langkah 4: Perincian Modul Flip Flop VHDL

Perincian Modul Flip Flop VHDL
Perincian Modul Flip Flop VHDL

Satu masalah dengan desain kami adalah kenyataan bahwa setelah menggunakan sakelar mati, lampu yang sebelumnya menyala mungkin perlu dibalik dua kali untuk kembali ke posisi hidup. Ini akan menjadi ketidaknyamanan bagi orang-orang dari waktu ke waktu. Kami berhasil menghindari ketidaknyamanan ini dengan memasukkan "Flip Flop," elemen sirkuit yang mampu menyimpan informasi, ke dalam desain kami. Sekarang, sistem mengingat apakah sakelar lampu sebelumnya menyala sehingga jika dibalik lagi, sakelar itu akan menyala terlepas dari posisi awalnya.

Kode VHDL menggunakan pernyataan if dan else untuk membuat Flip Flop sebagai komponen dalam desain sirkuit kami. Ini memastikan bahwa ketika sinyal clock bertransisi dari kondisi rendah ke tinggi, saat bola lampu menyala, dan saat sakelar mati ditekan, keluaran flip flop menimpa masukannya. Ketika input ditimpa flip flop terbalik.

Langkah 5: Perincian Modul VHDL Piezo Buzzer

Perincian Modul Buzzer Piezo VHDL
Perincian Modul Buzzer Piezo VHDL
Perincian Modul Buzzer Piezo VHDL
Perincian Modul Buzzer Piezo VHDL

File ini agak berlebihan sejauh menyangkut desain perangkat keras, tetapi penting untuk membuat modul teratas dan file kendala berjalan dengan lancar. Jika Anda memilih untuk tidak menggunakan buzzer Piezo, unduh file ini, tetapi jangan pasang buzzer ke papan Basys 3.

Buzzer Piezo akan, setelah menekan tombol nonaktifkan, memainkan nada dua nada yang akan memberi pengguna umpan balik pendengaran bahwa tombol telah ditekan. Kami menerapkan ini secara perilaku di VHDL melalui serangkaian pernyataan if dalam struktur proses. Kami mulai dengan membuat nilai integer untuk melacak berapa banyak perubahan jam yang terjadi. Setelah proses dimulai, program menghabiskan setengah detik pertama (0 hingga 50 juta detak jam) mengeluarkan nada A pada 440 hertz. Hal ini dicapai dengan membalikkan sinyal buzzer piezo setiap kelipatan genap dari 227272 clock ticks dengan fungsi modulo. Angka ini adalah hasil pembagian sinyal clock board (100 MHz) dengan frekuensi yang diinginkan (400 Hz). Selama setengah detik kedua (50 hingga 100 juta detak jam) papan mengeluarkan nada F pada 349,2 hertz melalui metode yang sama seperti sebelumnya. Setelah satu detik, program tidak menaikkan variabel jam lebih jauh dan berhenti mengeluarkan apa pun dari buzzer piezo. Menekan tombol mati universal lagi akan mengatur ulang nomor ini ke 0, memulai kembali siklus kebisingan.

Langkah 6: Perincian File Kendala VHDL

File kendala memberi tahu Vivado perangkat apa di papan Basys 3 yang kami gunakan. Ini juga memberi Vivado nama yang kami berikan ke perangkat dalam kode kami. Vivado membutuhkan informasi ini sehingga ia tahu bagaimana menghubungkan elemen logika kita ke perangkat keras fisik. File kendala menyertakan sejumlah besar kode yang dikomentari (tidak digunakan). Baris kode ini merujuk pada perangkat di papan yang tidak kita gunakan.

Perangkat yang kami gunakan termasuk empat sakelar input berlabel V17, V16, W16, dan W1 di papan tulis. Kami juga menggunakan tombol mati universal, berlabel U18. Pin output untuk empat LED terhubung kami adalah JB4, JB10, JC4, dan JC10. Untuk buzzer piezzo kami menggunakan pin keluaran JA9.

Seperti yang kami nyatakan di bagian atas modul, jika Anda ingin menambahkan LED tambahan atau perangkat lain ke papan, Anda perlu meningkatkan cakupan sinyal sw dan dev, menambahkan lebih banyak modul killSwitch, dan menghubungkannya bersama-sama. Anda kemudian perlu menautkan nama variabel tersebut ke perangkat keras perangkat melalui file kendala. Ini dapat dilakukan dengan menghapus komentar (mengaktifkan kembali) baris kode yang terkait dengan pin yang ingin Anda gunakan kemudian menambahkan nama variabel terkaitnya di modul atas. Sintaks yang tepat untuk ini dapat disalin dari perangkat yang kita gunakan. Untuk mengetahui nama pin yang ingin Anda gunakan di papan, lihat panduan referensi Baasys 3 di sini.

Langkah 7: Membangun Basys 3

Membangun Basys 3
Membangun Basys 3
Membangun Basys 3
Membangun Basys 3

Anda perlu mencolokkan LED Anda ke port I/O yang benar di Basys 3. Ikuti gambar yang disediakan untuk menentukan port yang benar, karena jika Anda mencolokkan LED ke port yang salah, LED tidak akan menyala. Jika Anda telah memilih untuk memasang buzzer piezo, Anda juga harus menghubungkannya ke port I/O yang benar.

Saat papan sudah siap, colokkan ke komputer Anda melalui kabel USB.

Langkah 8: Menerapkan File VHDL ke Basys 3

Menerapkan File VHDL ke Basys 3
Menerapkan File VHDL ke Basys 3
Menerapkan File VHDL ke Basys 3
Menerapkan File VHDL ke Basys 3

Sekarang setelah papan Anda siap dan kode Anda selesai, Anda akhirnya dapat menyatukan modelnya.

Setelah proyek Anda di Vivado diatur, Anda harus mengklik tombol "Generate Bitstream" untuk mengkompilasi kode sebelum diunggah ke board. Jika Anda menerima pesan kesalahan saat ini, Anda harus memeriksa ulang apakah kode Anda sama persis dengan kode kami. Ketika saya mengatakan dengan tepat, maksud saya bahkan hingga titik koma atau jenis tanda kurung yang digunakan. Setelah bitstream Anda berhasil ditulis, buka pengelola perangkat keras di dalam Vivado dan klik tombol "Open Target", lalu klik "Program Device" segera setelahnya. Papan Basys 3 Anda sekarang harus berfungsi penuh.

Langkah 9: Menggunakan Papan Basys 3

Menggunakan Papan Basys 3
Menggunakan Papan Basys 3

Sekarang setelah Basys 3 Board beroperasi dan telah diprogram untuk mewakili model kami, Anda harus tahu cara menggunakannya.

Masing-masing dari empat sakelar terjauh ke kanan mengontrol salah satu LED, menjentikkannya akan menyebabkan LED menyala atau mati. Jika LED tidak aktif, periksa apakah Anda terhubung ke port I/O yang benar, dan LED Anda berfungsi sejak awal.

Saat Anda ingin menonaktifkan semua LED sekaligus, Anda harus menekan tombol tengah di kumpulan lima tombol yang ditampilkan di atas.

Langkah 10: Pamer

Modelnya berfungsi sebagai hal baru yang rapi yang dapat Anda tunjukkan di depan teman dan keluarga Anda. Secara teoritis juga dapat digunakan untuk menerapkan sakelar mati universal ke sistem kelistrikan rumah Anda, jika Anda mengganti LED dengan kabel yang mengarah ke lampu Anda. Meskipun mungkin, kami masih harus menyarankan untuk tidak melakukannya. Ada potensi untuk membahayakan diri sendiri atau rumah Anda jika Anda mencoba memasang kembali kabel tanpa bantuan ahli listrik.

Direkomendasikan: