FLProg + nooLite (lanjutan)
Dalam posting sebelumnya , saya berbicara tentang menerapkan dukungan untuk peralatan nooLite dalam program FLProg. Kelalaian saya bukanlah berbicara tentang satu fungsi yang sangat nyaman dari peralatan ini, yang memungkinkan Anda untuk menghubungkan beberapa transceiver ke port UART yang sama dan menanganinya secara independen. Saya memutuskan untuk memperbaiki kekurangan ini.Skema untuk menghubungkan beberapa transceiver ke satu port UART (diambil dari dokumentasi transceiver) terlihat seperti ini:
Fitur inklusi ini adalah penggunaan input transceiver SE. Jika 0 V diberikan ke input ini, transceiver tidak akan menanggapi perintah yang dikirimkan melalui UART, dan jika 3-5 V diterapkan, maka perintah akan dieksekusi.Dalam pelajaran ini kita akan menghidupkan dan mematikan beberapa beban menggunakan transceiver yang berbeda.Skema bangku tes:
Kami membuat proyek baru, dan di dalamnya kami mengkonfigurasi input - output controller.Pertama, kami membuat tiga input untuk tombol:
Karena kami memiliki tombol yang terhubung antara GND dan input, kami mengaktifkan pull-up resistor, baik, untuk operasi yang jelas, kami mengaktifkan perlindungan obrolan.
Lalu kami membuat tiga output untuk mengendalikan transceiver.
Kemudian kita membuat enam variabel untuk perintah kontrol.
Sekarang seret input pertama ke sirkuit, dua blok R-flip-flop (Perpustakaan blok - folder "Pemicu"), serta dua variabel - "Perintah untuk menghidupkan beban 1" dan "Perintah untuk mematikan beban 1". Kemudian kami menghubungkannya sesuai dengan skema:
Bagaimana cara kerjanya? Karena kita memiliki tombol yang dihidupkan antara GND dan input, dan resistor pull-up juga dihidupkan, ketika tombol dilepaskan, output dari blok input akan menjadi 1, dan ketika tombol ditekan, itu akan menjadi 0. R-Trigger atas memilih tepi depan (transisi dari 0 ke 1) - kemudian ada saat melepaskan tombol dan membuat impuls pendek untuk memutuskan sambungan dalam variabel "Load shedding command 1". R-Trigger yang lebih rendah, karena inputnya terbalik, menghasilkan trailing edge (transisi dari 1 ke 0) - yaitu, saat tombol ditekan. Dan itu juga membentuk impuls pendek dalam variabel "Perintah untuk menghidupkan muatan 1".Sekarang ulangi sirkuit ini untuk sisa input.
Kami akan menyebut papan ini "Sorotan Depan" dan membuat yang lain. Anda dapat langsung menyebutnya - "Manajemen Transceiver". Seret dan letakkan variabel "Perintah untuk menghidupkan beban 1" dan "Perintah untuk mematikan beban 1", blok OR (Pustaka elemen - folder "Elemen dasar") dan output "Nyalakan transceiver 1". Kemudian kami menghubungkannya sesuai dengan skema:
Bagaimana cara kerjanya? Jika ada 1 dalam variabel "Perintah untuk menghidupkan beban 1" ATAU dalam variabel "Perintah untuk mematikan beban 1", log 1 akan muncul pada output "Nyalakan transceiver 1" (yaitu, transceiver 1 akan mengerjakan perintah yang dikirim kepadanya). Ulangi sirkuit ini untuk sisa transceiver.
Mari kita membuat papan "Mengirim tim" baru., , , , . , , . .
Seret semua variabel perintah yang diaktifkan ke papan bawah, blok OR (Elemen Perpustakaan - folder Elemen Dasar), dan unit kontrol transceiver nooLite (Perpustakaan Elemen - folder Lain-lain). Hubungkan mereka.
Sesuai dengan skema, ketika log.1 muncul di salah satu variabel, perintah akan dikirim untuk menghidupkan beban. Konfigurasikan unit kontrol transceiver nooLite untuk mengirimkan perintah ini.
Ulangi sirkuit ini untuk mengirim perintah mematikan.
Siapkan blokir.
Yah, itu dia. Terima kasih atas perhatian andaSource: https://habr.com/ru/post/id391837/
All Articles