Isi kandungan:
- Langkah 1: Objektif Projek
- Langkah 2: Kelenturan Pengaturcaraan
- Langkah 3: Perkakasan
- Langkah 4: Pad kekunci terganggu
- Langkah 5: Menggunakan Pemasa
- Langkah 6: Tangkapan Skrin Menu
- Langkah 7: Reka Bentuk Sistem
- Langkah 8: Bekalan Kuasa
- Langkah 9: Papan CPU
- Langkah 10: Kesimpulan Kod Alir
- Langkah 11: Papan Relay I2C Pilihan
- Langkah 12: Pautan RF Pilihan
- Langkah 13: Produk Akhir
Video: Pemasa Boleh Diprogram 8 Saluran: 13 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Pengenalan
Saya telah menggunakan rangkaian mikrokontroler PIC Microchip untuk projek saya sejak tahun 1993, dan telah melakukan semua pengaturcaraan saya dalam bahasa assembler, dengan menggunakan Microchip MPLab IDE. Projek saya bermula dari lampu isyarat sederhana dan LED berkelip, ke antara muka joystick USB untuk model R / C, dan alat analisa suis yang digunakan dalam industri. Pembangunan memerlukan banyak hari, dan kadang-kadang beribu-ribu baris kod assembler.
Setelah menerima Matrix Multimedia Flowcode 4 Professional, saya agak skeptikal terhadap perisian tersebut. Ia kelihatan terlalu mudah dipercayai. Saya memutuskan untuk mencubanya, dan menguji semua Komponen Makro yang berbeza, semuanya dengan kejayaan besar. Bahagian terbaik menggunakan Flowcode adalah bahawa projek mudah dapat dikodkan dalam satu malam. Setelah bermain dengan jam nyata I²C dan DS1307, saya memutuskan untuk merancang Pemasa 8 Saluran menggunakan Flowcode. Tidak menjadi projek kecil dan mudah, saya percaya bahawa ini akan menjadi projek yang bagus untuk mengajar diri saya Flowcode.
Memilih mikropemproses dan komponen lain
Oleh kerana bilangan pin I / O diperlukan, jelas bahawa peranti 40 pin akan diperlukan. PIC 18F4520 dipilih, terutama untuk memori program 32K, dan memori data 1536 byte. Semua komponen yang digunakan, adalah peranti lubang melalui standard, memungkinkan untuk membina litar di papan Vero jika diperlukan. Ini juga membantu pengembangan papan roti.
Langkah 1: Objektif Projek
Objektif
- Menyimpan masa yang tepat, dengan sandaran bateri.
- Semua program dan data yang akan disimpan, walaupun setelah kehilangan kuasa.
- Antara muka pengguna yang sederhana.
- Fleksibiliti pengaturcaraan.
Penjagaan masa
Hidup di kawasan yang terdedah kepada gangguan bekalan elektrik, 50 / 60Hz standard dari talian kuasa tidak akan mencukupi untuk menyimpan masa yang tepat. Jam masa nyata adalah mustahak, dan setelah menguji beberapa cip RTC, saya memutuskan untuk menggunakan DS1307 kerana konfigurasi pengayun dan sandaran bateri yang ringkas. Penjimatan masa yang cukup tepat diperoleh dengan hanya menggunakan kristal 32.768 kHz yang disambungkan ke DS1307. Ketepatan berada dalam 2 saat dalam tempoh percubaan 2 bulan menggunakan 4 jenis kristal yang berbeza.
Pengekalan data
Semua data program pemasa mesti disimpan, walaupun semasa gangguan kuasa. Dengan 100 program yang berbeza dan pelbagai data konfigurasi, menjadi jelas bahawa 256 bait EEPROM on-board PIC tidak akan cukup besar. EEPROM 24LC256 I²C digunakan untuk menyimpan semua maklumat pengaturcaraan.
Antara muka pengguna yang sederhana
Antara muka pengguna hanya terdiri daripada 2 item, paparan LCD 16 x 4 baris dengan lampu latar LED, dan papan kekunci 4 x 3. Semua pengaturcaraan dapat dilakukan dengan hanya menekan beberapa butang. Tambahan pada antaramuka adalah buzzer piezo yang dapat didengar, dan lampu latar LCD berkelip visual.
Langkah 2: Kelenturan Pengaturcaraan
Untuk memastikan fleksibiliti program yang mencukupi, pemasa mempunyai 100 program yang dapat diatur secara individu. Untuk setiap program, Waktu On, Off Time, Output Channels, dan Day of Week dapat diatur. Setiap program mempunyai tiga mod:
- Auto: On Time, Off time, Output Channel dan Hari dalam seminggu ditetapkan.
- Mati: Program individu boleh dilumpuhkan, tanpa menghapus tetapan. Untuk mengaktifkan program sekali lagi, pilih mod lain.
- Siang / Malam: Pada Waktu, Waktu Mati, Saluran Keluaran dan Hari dalam seminggu ditetapkan. Berfungsi sama seperti mod Auto, tetapi akan
hanya hidupkan output antara waktu Hidup dan Mati semasa gelap. Ini juga membolehkan kawalan Siang / Malam penuh
sebagai fleksibiliti tambahan untuk menyalakan lampu ketika matahari terbenam, dan mati ketika matahari terbit.
Contoh 1: Akan menyalakan lampu selepas jam 20:00, dan mematikan cahaya pada waktu matahari terbit:
Pada: 20:00, Mati: 12:00, Contoh 2: Akan menyalakan lampu pada waktu matahari terbenam, dan mematikan lampu pada pukul 23:00.
Pada: 12:00
Mati: 23:00
Contoh 3: Akan menyalakan cahaya pada waktu matahari terbenam, dan mematikan cahaya pada waktu matahari terbit.
Pada: 12:01
Mati: 12:00
Terdapat pilihan tambahan, semuanya berfungsi secara bebas dari program 100 On / Off.
Saluran Program Aktif: Daripada mematikan beberapa program, saluran output individu boleh dilumpuhkan tanpa perlu mengubah program.
Input tambahan: Dua input digital tersedia, untuk membolehkan saluran output tertentu dihidupkan untuk waktu tertentu. Misalnya dapat digunakan untuk menyalakan lampu tertentu ketika tiba di rumah larut malam, ketika tombol pada alat kawalan jauh ditekan, atau untuk menyalakan lampu yang lain ketika alarm rumah dipicu.
Output tambahan: Terdapat dua output tambahan (selain daripada 8 saluran output). Mereka dapat diprogram untuk dihidupkan dengan saluran output tertentu, atau dengan input digital. Dalam pemasangan saya, saya mempunyai output 6-8 yang mengawal pengairan saya, yang berfungsi pada 24V. Saya menggunakan saluran 6-8 untuk menghidupkan salah satu output tambahan, untuk menghidupkan bekalan kuasa 24V untuk sistem pengairan.
Hidup Secara Manual: Ketika berada di layar utama, butang 1-8 dapat digunakan untuk menghidupkan atau mematikan saluran secara manual.
Langkah 3: Perkakasan
Bekalan Kuasa: Bekalan kuasa terdiri daripada penerus, kapasitor pelicin, dan sekering 1 Amp untuk perlindungan beban berlebihan. Bekalan ini kemudian diatur oleh pengatur 7812 dan 7805. Bekalan 12V digunakan untuk menggerakkan relai output, dan semua litar lain dikuasakan dari bekalan 5V. Oleh kerana pengatur 7805 disambungkan ke output pengatur 7812, arus keseluruhan mesti dihadkan kepada 1 amp melalui pengatur 7812. Sebaiknya pasang pengatur ini pada pendingin yang sesuai.
Bas I²C: Walaupun Flowcode membenarkan kawalan I²C perkakasan, saya memutuskan untuk menggunakan konfigurasi perisian I²C. Ini membolehkan lebih banyak fleksibiliti penugasan pin. Walaupun lebih perlahan (50 kHz), ia tetap berkinerja hebat berbanding dengan bas I²C perkakasan. Kedua-dua DS1307 dan 24LC256 disambungkan ke bas I²C ini.
Jam Masa Nyata (DS1307): Semasa permulaan, daftar RTC 0 dan 7 dibaca untuk menentukan sama ada ia mengandungi data masa dan konfigurasi yang sah. Setelah penyediaan betul, masa RTC dibaca dan masa dimuat dalam PIC. Ini adalah satu-satunya masa yang dibaca dari RTC. Selepas permulaan, nadi 1Hz akan hadir pada pin 7 RTC. Isyarat 1Hz ini disambungkan ke RB0 / INT0, dan melalui rutin perkhidmatan gangguan, waktu PIC dikemas kini setiap saat.
EEPROM Luaran: Semua data dan pilihan program disimpan di EEPROM luaran. Data EEPROM dimuat pada permulaan, dan salinan data disimpan dalam memori PIC. Data EEPROM hanya dikemas kini apabila tetapan program diubah.
Sensor Siang / Malam: Perintang bergantung cahaya standard (LDR) digunakan sebagai sensor Siang / Malam. Oleh kerana LDR terdapat dalam pelbagai bentuk dan varietas, semuanya dengan nilai rintangan yang berbeza dalam keadaan cahaya yang sama, saya menggunakan saluran input analog untuk membaca tahap cahaya. Tahap Siang dan Malam dapat disesuaikan, dan memberikan sedikit kelonggaran untuk sensor yang berbeza. Untuk menetapkan beberapa histeresis, nilai individu untuk Siang dan Malam dapat ditetapkan. Keadaan hanya akan berubah jika tahap cahaya berada di bawah Hari, atau di atas titik set Malam, lebih lama daripada 60 saat.
Paparan LCD: 4 baris, paparan 16 karakter digunakan, karena semua data tidak dapat ditampilkan pada paparan 2 baris. Projek ini merangkumi beberapa watak tersuai, yang ditentukan dalam makro LCD_Custom_Char.
Input Tambahan: Kedua-dua input disangga dengan transistor NPN. + 12v dan 0V juga tersedia pada penyambung, yang membolehkan sambungan yang lebih fleksibel ke sambungan luaran. Sebagai contoh, alat kawalan jauh boleh disambungkan ke bekalan.
Keluaran: Semua output diasingkan secara elektrik dari litar dengan menggunakan geganti 12V. Relay yang digunakan, dinilai untuk 250V AC, pada 10 amp. Kenalan yang biasanya terbuka dan tertutup dibawa keluar ke terminal.
Pad kekunci: Pad kekunci yang digunakan adalah papan kekunci matriks 3 x 4, dan disambungkan PORTB: 2..7.
Langkah 4: Pad kekunci terganggu
Saya ingin memanfaatkan gangguan PORTB Interrupt on Change pada sebarang tekan kekunci. Untuk ini, Interrupt Kustom harus dibuat dalam Flowcode, untuk memastikan arah dan data PORTB disiapkan dengan betul sebelum dan sesudah setiap kekunci terganggu. Gangguan dihasilkan setiap kali butang ditekan, atau dilepaskan. Rutin gangguan hanya bertindak balas apabila kekunci ditekan.
GANGGUAN KASTAM
Dayakan Kod
portb = 0b00001110; trisb = 0b11110001;
intcon. RBIE = 1;
intcon2. RBIP = 1;
intcon2. RBPU = 1;
rcon. IPEN = 0;
Kod pengendali
jika (intcon & (1 << RBIF))
{FCM_% n ();
portb = 0b00001110;
trisb = 0b11110001;
wreg = portb;
clear_bit (intcon, RBIF);
}
Masalah dijumpai
Semasa gangguan, rutin perkhidmatan gangguan mesti dalam keadaan TIDAK, memanggil makro lain yang mungkin digunakan di suatu tempat di program yang lain. Ini akhirnya akan menyebabkan masalah tumpukan tumpukan, kerana gangguan boleh berlaku pada masa yang sama bahawa program utama juga berada di subrutin yang sama. Ini juga dikenal pasti sebagai KESALAHAN SERIUS oleh Flowcode semasa kod tersebut disusun.
Dalam kod Custom Keypad di bawah GetKeyPadNumber, terdapat panggilan ke makro Delay_us, yang akan menyebabkan tumpukan tumpahan. Untuk mengatasinya, saya telah membuang perintah Delay_us (10), dan menggantinya dengan 25 baris “wreg = porta;” arahan. Perintah ini membaca PORTA, dan meletakkan nilainya ke dalam daftar W, hanya untuk sedikit kelewatan. Perintah ini akan disusun untuk satu arahan yang serupa dengan assembler movf porta, 0. Untuk jam 10MHz yang digunakan dalam projek, setiap arahan akan 400ns, dan untuk mendapatkan kelewatan 10us, saya memerlukan 25 arahan ini.
Perhatikan pada baris kedua Gambar 3: GetKeypadNumber Custom Code, bahawa arahan delay_us (10) asal telah dilumpuhkan dengan "//". Di bawah ini, saya telah menambahkan 25 "wreg = porta;" saya arahan untuk mendapatkan kelewatan 10us baru. Tanpa panggilan ke makro apa pun di dalam kod tersuai Keypad_ReadKeypadNumber, makro Keypad kini dapat digunakan dalam rutin perkhidmatan yang mengganggu.
Perlu diingatkan bahawa komponen Flowcode Keypad dan eBlocks tidak menggunakan resistor pull-up standard pada garis input. Sebaliknya, ia menggunakan perintang tarik 100K. Oleh kerana terdapat beberapa gangguan pada papan kekunci semasa pembangunan, perintang 100K semuanya diganti dengan 10K, dan semua perintang 10K diganti dengan 1K5. Pad kekunci diuji untuk berfungsi dengan betul dengan plumbum 200mm.
Langkah 5: Menggunakan Pemasa
Semua layar diatur untuk menunjukkan semua maklumat yang diperlukan bagi pengguna untuk membuat perubahan cepat pada pengaturan. Baris 4 digunakan untuk membantu navigasi melalui menu dan pilihan program. Sebanyak 22 skrin tersedia semasa operasi biasa.
BARIS 1: Masa dan Status
Menunjukkan hari dan waktu semasa, diikuti dengan ikon status:
A - Menunjukkan bahawa Aux Input A dicetuskan, dan pemasa Aux Input A sedang berjalan.
B - Menunjukkan bahawa Aux Input B telah dipicu, dan pemasa Aux Input B sedang berjalan.
C - Menunjukkan bahawa Output Aux C dihidupkan.
D - Menunjukkan bahawa Output Aux D dihidupkan.
} - Status sensor Siang / Malam. Sekiranya ada, menunjukkan bahawa ia adalah malam.
LINE 2: Hasil Program
Menunjukkan saluran yang telah dihidupkan oleh pelbagai program. Saluran ditampilkan dalam angka keluarannya, dan "-" menunjukkan bahawa output tertentu tidak dihidupkan. Saluran yang telah dinonaktifkan dalam "Program Output Aktif" masih akan ditunjukkan di sini, tetapi output Sebenar tidak akan ditetapkan.
BARIS 3: Keluaran Sebenar
Menunjukkan saluran mana yang dihidupkan oleh program yang berbeza, Aux Input A & B, atau output manual yang ditetapkan oleh pengguna. Menekan 0 akan mengembalikan semua output yang diaktifkan secara manual dan mematikan semula pemasa Aux Output A & B.
LINE 4: Menu dan pilihan utama (pada semua menu)
Menunjukkan fungsi kekunci "*" dan "#".
Bahagian tengah menunjukkan kunci angka mana (0-9) yang aktif untuk skrin yang dipilih.
Status input Aux Input A & B juga ditunjukkan melalui ikon suis Terbuka atau Tertutup.
Keluaran boleh dihidupkan / dimatikan secara manual dengan menekan kekunci yang sesuai pada papan kekunci.
Sepanjang menu, kekunci Bintang dan Hash digunakan untuk menavigasi pilihan program yang berbeza. Kekunci 0-9 digunakan untuk menetapkan pilihan. Di mana terdapat banyak pilihan pada satu skrin atau menu pengaturcaraan, kekunci Hash digunakan untuk menelusuri berbagai pilihan. Pilihan yang dipilih semasa akan selalu ditunjukkan oleh watak ">" di sebelah kiri skrin.
0-9 Masukkan nilai masa
1-8 Tukar pemilihan saluran
14 36 Melangkah melalui program, 1 langkah ke belakang, 4 langkah ke belakang 10 program, 3 langkah ke depan, 6 langkah ke hadapan 10
program
1-7 Tetapkan hari dalam seminggu. 1 = Ahad, 2 = Isnin, 3 = Selasa, 4 = Rabu, 5 = Khamis, 6 = Jumaat, 7 = Sabtu
0 Pada skrin utama, kosongkan semua penggantian manual dan pemasa Input A & Input B. Di menu lain, perubahan
pilihan yang dipilih
# Di layar utama, akan mematikan semua penggantian manual, timer Input A & Input B dan Output Program, hingga
acara seterusnya.
* dan 1 Nyalakan semula pemasa
* dan 2 Hapus semua program dan pilihan, kembalikan tetapan ke lalai.
* dan 3 Masukkan pemasa ke bersedia. Untuk menghidupkan semula pemasa, tekan sebarang kekunci.
Semasa penyisipan yang salah dengan nilai masa apa pun, lampu latar LCD akan berkelip 5 kali untuk menunjukkan kesalahan. Pada masa yang sama, bel akan berbunyi. Perintah Keluar dan Seterusnya hanya akan berfungsi apabila entri semasa betul.
Lampu Latar LCD
Pada permulaan awal, lampu latar LCD akan dihidupkan selama 3 minit, kecuali:
- Terdapat kegagalan perkakasan (EEPROM atau RTC tidak dijumpai)
- Masa tidak ditetapkan dalam RTC
Lampu latar LCD akan kembali menyala selama 3 minit pada sebarang input pengguna pada papan kekunci. Sekiranya lampu latar LCD mati, arahan keypad mana pun akan menghidupkan lampu latar LCD terlebih dahulu, dan mengabaikan kekunci yang ditekan. Ini memastikan pengguna dapat membaca paparan LCD sebelum menggunakan papan kekunci. Lampu latar LCD juga akan dihidupkan selama 5 saat jika Aux Input A atau Aux Input B diaktifkan.
Langkah 6: Tangkapan Skrin Menu
Dengan menggunakan papan kekunci, setiap pilihan dapat diprogram dengan mudah. Gambar memberikan beberapa maklumat mengenai apa yang dilakukan oleh setiap skrin.
Langkah 7: Reka Bentuk Sistem
Semua pembangunan dan pengujian dilakukan di papan roti. Melihat semua bahagian sistem, saya menguraikan sistem dalam tiga modul. Keputusan ini terutama disebabkan oleh batasan ukuran PCB (80 x 100mm) versi Eagle percuma.
Modul 1 - Bekalan Kuasa
Modul 2 - papan CPU
Modul 3 - Papan geganti
Saya memutuskan bahawa semua komponen mesti diperoleh dengan mudah, dan bahawa saya tidak mahu menggunakan komponen pelekap permukaan.
Mari kita teliti masing-masing.
Langkah 8: Bekalan Kuasa
Bekalan kuasa lurus ke hadapan, dan membekalkan CPU dan papan geganti dengan 12V dan 5V.
Saya memasang pengatur voltan pada sink haba yang baik, dan juga menggunakan kapasitor yang berlebihan untuk bekalannya.
Langkah 9: Papan CPU
Semua komponen, kecuali layar LCD, pad kekunci dan relay dipasang pada papan CPU.
Blok terminal ditambahkan untuk mempermudah hubungan antara bekalan, dua input digital, dan sensor cahaya.
Pin header / soket menyediakan sambungan mudah ke skrin LCD dan papan kekunci.
Untuk output ke relay, saya menggunakan ULN2803. Ini sudah mengandungi semua perintang memandu dan dioda flyback yang diperlukan. Ini memastikan bahawa papan CPU masih dapat dibuat menggunakan Eagle versi percuma. Relay disambungkan ke dua ULN2803s. ULN2803 bawah digunakan untuk 8 output, dan ULN2803 teratas untuk dua output tambahan. Setiap output tambahan mempunyai empat transistor. Sambungan ke relay juga melalui pin header / soket.
PIC 18F4520 dilengkapi dengan soket pengaturcaraan, untuk memungkinkan pengaturcaraan yang mudah melalui pengaturcara PicKit 3.
CATATAN:
Anda akan melihat bahawa papan mengandungi IC 8 pin tambahan. IC teratas adalah PIC 12F675, dan disambungkan ke input digital. Ini ditambahkan semasa reka bentuk PCB. Ini memudahkan proses pra-input input digital. Dalam aplikasi saya, salah satu input digital disambungkan ke sistem penggera saya. Sekiranya penggera berbunyi, lampu tertentu dihidupkan di rumah saya. Melengkapkan dan melucutkan senjata sistem penggera saya memberikan bunyi bip yang berbeza pada siren. Dengan menggunakan PIC 12F675, saya sekarang dapat membezakan antara lengan / pelucutan senjata dan penggera yang sebenar. 12F675 juga dilengkapi dengan soket pengaturcaraan.
Saya juga memperuntukkan port I2C melalui pin header / soket. Ini akan berguna kemudian dengan papan geganti.
Papan berisi beberapa jumper, yang harus disolder sebelum memasang soket IC.
Langkah 10: Kesimpulan Kod Alir
Oleh kerana saya biasa bekerja pada tahap pendaftaran dalam pemasangan, kadang-kadang sukar dan mengecewakan untuk menggunakan makro komponen. Ini disebabkan oleh kurangnya pengetahuan saya mengenai struktur pengaturcaraan Flowcode. Satu-satunya tempat yang saya gunakan blok C atau ASM, adalah untuk menghidupkan output di dalam rutin gangguan, dan dalam rutin Do_KeyPressed untuk mematikan / mengaktifkan kekunci terganggu. PIC juga diletakkan di SLEEP menggunakan blok ASM, apabila EEPROM atau RTC tidak dijumpai.
Bantuan mengenai penggunaan perintah I²C yang berlainan, semuanya diperoleh dari dalam fail Bantuan Flowcode. Diperlukan untuk mengetahui dengan tepat bagaimana peranti I²C berfungsi, sebelum perintah dapat digunakan dengan jayanya. Merancang litar memerlukan perancang untuk menyediakan semua lembar data yang relevan. Ini bukan kekurangan Flowcode.
Flowcode benar-benar sesuai dengan ujian, dan sangat disyorkan untuk orang yang ingin mula bekerja dengan rangkaian mikropemproses Microchip.
Pengaturcaraan dan konfigurasi aliran aliran untuk PIC ditetapkan seperti gambar
Langkah 11: Papan Relay I2C Pilihan
Papan CPU sudah mempunyai sambungan header untuk 16 relay. Output ini adalah transistor pemungut terbuka melalui dua cip ULN2803. Ini boleh digunakan untuk memberi kuasa kepada geganti secara langsung.
Selepas ujian pertama sistem, saya tidak menyukai semua wayar antara papan CPU dan geganti. Oleh kerana saya memasukkan port I2C pada papan CPU, saya memutuskan untuk merancang papan geganti untuk menyambung ke port I2C. Dengan menggunakan cip 16 saluran MCP23017 I / O Port Expander dan array transistor ULN2803, saya mengurangkan sambungan antara CPU dan geganti menjadi 4 wayar.
Oleh kerana saya tidak dapat memuatkan 16 geganti pada PCB 80 x 100mm, saya memutuskan untuk membuat dua papan. Setiap MCP23017 hanya menggunakan 8 dari 16 portnya. Papan 1 mengendalikan 8 output, dan papan 2 dua output tambahan. Satu-satunya perbezaan di papan adalah alamat setiap papan. Ini mudah dipasang dengan pelompat mini. Setiap papan mempunyai penyambung untuk membekalkan kuasa dan data I2C ke papan yang lain.
CATATAN:
Sekiranya diperlukan, perisian hanya menyediakan satu papan yang dapat menggunakan semua 16 port. Semua data relay output tersedia di papan pertama.
Oleh kerana litar adalah pilihan dan sangat mudah, saya tidak membuat skema. Sekiranya terdapat permintaan yang mencukupi, saya boleh menambahkannya kemudian.
Langkah 12: Pautan RF Pilihan
Setelah selesai projek, saya segera menyedari bahawa saya harus menarik banyak pendawaian 220V AC ke pemasa. Saya mengembangkan pautan RF menggunakan modul standard 315MHz yang membolehkan pemasa diletakkan di dalam almari, dan papan geganti di dalam bumbung, dekat dengan semua pendawaian 220V.
Pautan menggunakan AtMega328P berjalan pada 16MHz. Perisian untuk pemancar dan penerima sama, dan modnya dipilih oleh jumper mini.
Pemancar
Pemancar hanya dipasang ke port CPU I2C. Tidak diperlukan persediaan tambahan, kerana AtMega328P mendengar data yang sama dengan papan geganti I2C.
Data dikemas kini sekali per detik di port I2C, dan pemancar menghantar maklumat ini melalui pautan RF. Sekiranya pemancar tidak menerima data I2C selama kira-kira 30 saat, pemancar akan terus mengirimkan data untuk mematikan semua geganti ke unit penerima.
Kuasa ke modul pemancar dapat dipilih antara 12V dan 5V dengan pelompat mini di papan PC. Saya menghidupkan pemancar saya menggunakan 12V.
Penerima
Penerima mendengar data berkod dari pemancar, dan meletakkan data pada port I2C. Papan geganti hanya dipasang ke port ini, dan berfungsi sama seperti yang dipasang ke papan CPU.
Sekiranya penerima tidak menerima data yang sah selama 30 saat, penerima akan terus menghantar data pada port I2C untuk mematikan semua relay pada papan geganti.
Skematik
Suatu hari, jika ada permintaan untuknya. Lakaran Arduino mengandungi semua maklumat yang diperlukan untuk membina litar tanpa gambarajah litar.
Julat
Dalam pemasangan saya, pemancar dan penerima terletak kira-kira 10 meter. Pemasa berada di dalam almari, dan unit geganti di atas siling.
Langkah 13: Produk Akhir
Unit utama dipasang di kotak projek lama. Ia mengandungi perkara berikut:
- Transformer 220V / 12V
- Papan Bekalan Kuasa
- Papan CPU
- Paparan LCD
- Pad kekunci
- Pemancar Pautan RF
- Unit penerima jauh rumah tambahan untuk membolehkan saya menghidupkan / mematikan lampu melalui alat kawalan jauh
Unit geganti terdiri daripada yang berikut:
- Transformer 220V / 12V
- Papan Bekalan Kuasa
- Penerima Pautan RF
- 2 x Papan Relay I2C
Semua papan direka dengan dimensi yang sama, menjadikannya mudah untuk meletakkannya di atas satu sama lain dengan spacer 3mm.
Disyorkan:
Hoodie Boleh Diprogram Stranger Things: 9 Langkah (dengan Gambar)
Strood Things Yang Boleh Diprogram Hoodie: Anda mungkin tidak perlu meluangkan masa dalam dunia raksasa mimpi ngeri, tetapi kadang-kadang anda hanya mahu memakai baju yang mengatakan bahawa anda BOLEH tinggal di sana jika anda mahu. Oleh kerana baju seperti itu tidak ada di pasaran terbuka, kami memutuskan untuk membuat
Komputer Poket Kecil dan Murah Yang Boleh Diprogram Di Mana Saja .: 5 Langkah
Komputer Poket Kecil dan Murah Yang Boleh Diprogram Di Mana Saja: Anda boleh mengubah CardKB menjadi komputer saku! Komputer saku lengkap untuk CardKB menggunakan skrin ArduinoBaisc, CardKB, I2C OLED. Oleh kerana BASIC menggunakan ArduinoBasic (https://github.com/robinhedwards/ArduinoBASIC), ia menyokong hampir semua fungsi normal seperti
Jauh Tanpa Wayar Menggunakan Modul 2.4Ghz NRF24L01 Bersama Arduino - Nrf24l01 Penerima Pemancar 4 Saluran / 6 Saluran untuk Quadcopter - Helikopter Rc - Rc Plane Menggunakan Arduino: 5 Langkah (dengan Gambar)
Jauh Tanpa Wayar Menggunakan Modul 2.4Ghz NRF24L01 Bersama Arduino | Nrf24l01 Penerima Pemancar 4 Saluran / 6 Saluran untuk Quadcopter | Helikopter Rc | Rc Plane Menggunakan Arduino: Untuk mengendalikan kereta Rc | Quadcopter | Drone | Pesawat RC | Perahu RC, kita selalu memerlukan penerima dan pemancar, misalkan untuk RC QUADCOPTER kita memerlukan pemancar dan penerima 6 saluran dan jenis TX dan RX terlalu mahal, jadi kita akan membuatnya
Antena Dalaman BIQUAD, Terbuat dari Tembaga dan Kayu untuk Penerimaan Saluran HDTV di Jalur UHF (SALURAN 14-51): 7 Langkah
Antena Dalaman BIQUAD, Terbuat dari Tembaga dan Kayu untuk Penerimaan Saluran HDTV di Jalur UHF (SALURAN 14-51): Di pasar terdapat berbagai antena untuk televisyen. Yang paling popular mengikut kriteria saya adalah: UDA-YAGIS, Dipole, Dipole dengan reflektor, Patch dan antena Logaritmik. Bergantung pada keadaan, jarak dari pemancar
Mikrokontroler AVR. LED Flasher Menggunakan Pemasa. Gangguan Pemasa. Mod CTC Pemasa: 6 Langkah
Mikrokontroler AVR. LED Flasher Menggunakan Pemasa. Gangguan Pemasa. Mod CTC Pemasa: Halo semua! Pemasa adalah konsep penting dalam bidang elektronik. Setiap komponen elektronik berfungsi berdasarkan jangka masa. Pangkalan masa ini membantu memastikan semua kerja disegerakkan. Semua mikrokontroler berfungsi pada frekuensi jam yang ditentukan