Daftar Isi:

8 Saluran Pengatur Waktu yang Dapat Diprogram: 13 Langkah
8 Saluran Pengatur Waktu yang Dapat Diprogram: 13 Langkah

Video: 8 Saluran Pengatur Waktu yang Dapat Diprogram: 13 Langkah

Video: 8 Saluran Pengatur Waktu yang Dapat Diprogram: 13 Langkah
Video: Siaran TV Digital Kalian Sedikit, padahal tetangga sudah banyak siarannya, cari tahu frekuensi dulu 2024, Juli
Anonim
8 Saluran Pengatur Waktu yang Dapat Diprogram
8 Saluran Pengatur Waktu yang Dapat Diprogram
8 Saluran Pengatur Waktu yang Dapat Diprogram
8 Saluran Pengatur Waktu yang Dapat Diprogram
8 Saluran Pengatur Waktu yang Dapat Diprogram
8 Saluran Pengatur Waktu yang Dapat Diprogram

pengantar

Saya telah menggunakan rangkaian mikrokontroler PIC Microchip untuk proyek saya sejak 1993, dan telah melakukan semua pemrograman saya dalam bahasa assembler, menggunakan Microchip MPLab IDE. Proyek saya berkisar dari lampu lalu lintas sederhana dan LED yang berkedip, hingga antarmuka joystick USB untuk model R/C, dan analis switchgear yang digunakan dalam industri. Pengembangan memakan waktu berhari-hari, dan terkadang ribuan baris kode assembler.

Setelah menerima Matrix Multimedia Flowcode 4 Professional, saya cukup skeptis dengan perangkat lunak tersebut. Tampaknya terlalu mudah untuk dipercaya. Saya memutuskan untuk mencobanya, dan menguji semua Makro Komponen yang berbeda, semuanya dengan sukses besar. Bagian terbaik dari menggunakan Flowcode adalah bahwa proyek sederhana dapat dikodekan dalam satu malam. Setelah bermain dengan I²C dan jam waktu nyata DS1307, saya memutuskan untuk mendesain 8 Channel Timer menggunakan Flowcode. Bukan proyek kecil dan mudah, saya percaya bahwa ini akan menjadi proyek yang bagus untuk mengajari diri saya Flowcode.

Memilih mikroprosesor dan komponen lainnya

Karena jumlah pin I/O yang diperlukan, jelas bahwa perangkat 40 pin akan dibutuhkan. PIC 18F4520 dipilih, terutama untuk memori program 32K, dan memori data 1536 byte. Semua komponen yang digunakan, adalah perangkat standar melalui lubang, sehingga memungkinkan untuk membangun sirkuit di papan Vero jika diperlukan. Ini juga membantu pengembangan papan tempat memotong roti.

Langkah 1: Tujuan Proyek

Tujuan proyek
Tujuan proyek

Tujuan

- Pencatatan waktu yang akurat, dengan cadangan baterai.

- Semua program dan data akan disimpan, bahkan setelah kehilangan daya.

- Antarmuka pengguna yang sederhana.

- Fleksibilitas pemrograman.

Menjaga waktu

Tinggal di daerah yang rawan mati listrik, standar 50/60Hz dari saluran listrik tidak akan cukup untuk menjaga waktu yang akurat. Jam waktu nyata sangat penting, dan setelah menguji beberapa chip RTC, saya memutuskan DS1307 karena konfigurasi osilator dan cadangan baterainya yang sederhana. Ketepatan waktu yang cukup akurat diperoleh hanya dengan menggunakan kristal 32,768 kHz yang terhubung ke DS1307. Akurasi dalam 2 detik selama masa percobaan 2 bulan menggunakan 4 merek kristal yang berbeda.

Retensi data

Semua data program pengatur waktu harus disimpan, bahkan selama listrik mati. Dengan hingga 100 program berbeda dan berbagai data konfigurasi, menjadi jelas bahwa 256 byte EEPROM on-board dari PIC tidak akan cukup besar. EEPROM 24LC256 I²C digunakan untuk menyimpan semua informasi pemrograman.

Antarmuka pengguna yang sederhana

Antarmuka pengguna hanya terdiri dari 2 item, layar LCD 16 x 4 baris dengan lampu latar LED, dan keypad 4 x 3. Semua pemrograman dapat dilakukan hanya dengan menekan beberapa tombol. Tambahan pada antarmuka adalah buzzer piezo yang dapat didengar, dan lampu latar LCD berkedip visual.

Langkah 2: Fleksibilitas Pemrograman

Fleksibilitas Pemrograman
Fleksibilitas Pemrograman

Untuk memastikan fleksibilitas program yang cukup, pengatur waktu memiliki 100 program yang dapat diatur secara individual. Untuk setiap program, On time, Off Time, Output Channels, dan Day of Week dapat diatur. Setiap program memiliki tiga mode:

- Otomatis: Waktu Aktif, Waktu Mati, Saluran Keluaran, dan Hari dalam seminggu telah diatur.

- Mati: Program individual dapat dinonaktifkan, tanpa menghapus pengaturan. Untuk mengaktifkan kembali program, cukup pilih mode yang berbeda.

- Siang/Malam: Waktu Aktif, Waktu Nonaktif, Saluran Keluaran, dan Hari dalam seminggu telah diatur. Bekerja sama dengan mode Otomatis, tetapi akan

hanya nyalakan output antara waktu On dan Off saat gelap. Ini juga mengaktifkan kontrol Siang/Malam penuh

sebagai fleksibilitas tambahan untuk menyalakan lampu saat matahari terbenam, dan mematikan saat matahari terbit.

Contoh 1: Akan menyalakan lampu setelah pukul 20:00, dan mematikan lampu saat matahari terbit.:

Pada: 20:00, Mati:12:00, Contoh 2: Akan menyalakan lampu saat matahari terbenam, dan mematikan lampu pada pukul 23:00.

Pada: 12:00

Mati: 23:00

Contoh 3: Akan menyalakan lampu saat matahari terbenam, dan mematikan lampu saat matahari terbit.

Pada: 12:01

Mati: 12:00

Opsi tambahan tersedia, semuanya bekerja secara independen dari 100 program Nyala/Mati.

Saluran Program Aktif: Alih-alih mematikan beberapa program, saluran keluaran individual dapat dinonaktifkan tanpa perlu mengubah program.

Input tambahan: Tersedia dua input digital, untuk memungkinkan saluran output tertentu dihidupkan untuk waktu tertentu. Misalnya dapat digunakan untuk menyalakan lampu tertentu ketika tiba di rumah larut malam, ketika tombol pada remote ditekan, atau untuk menyalakan serangkaian lampu yang berbeda ketika alarm rumah dipicu.

Output tambahan: Dua output tambahan (selain dari 8 saluran output) tersedia. Mereka dapat diprogram untuk menyala dengan saluran keluaran tertentu, atau dengan masukan digital. Dalam instalasi saya, saya memiliki output 6-8 yang mengontrol irigasi saya, yang bekerja pada 24V. Saya menggunakan saluran 6-8 untuk menyalakan salah satu keluaran tambahan, untuk menyalakan catu daya 24V untuk sistem irigasi.

Manual On: Saat berada di layar utama, tombol 1-8 dapat digunakan untuk menghidupkan atau mematikan saluran secara manual.

Langkah 3: Perangkat Keras

Perangkat keras
Perangkat keras

Catu Daya: Catu daya terdiri dari penyearah, kapasitor penghalus, dan sekering 1 Amp untuk perlindungan kelebihan beban. Suplai ini kemudian diatur oleh regulator 7812 dan 7805. Catu daya 12V digunakan untuk menggerakkan relai keluaran, dan semua sirkuit lainnya diberi daya dari catu 5V. Karena regulator 7805 terhubung ke output regulator 7812, arus total harus dibatasi hingga 1 amp melalui regulator 7812. Disarankan untuk memasang regulator ini pada heat sink yang sesuai.

I²C Bus: Meskipun Flowcode memungkinkan kontrol I²C perangkat keras, saya memutuskan untuk menggunakan konfigurasi I²C perangkat lunak. Hal ini memungkinkan lebih banyak fleksibilitas tugas pin. Meskipun lebih lambat (50 kHz), performanya tetap bagus dibandingkan dengan bus I²C perangkat keras. Baik DS1307 dan 24LC256 terhubung ke bus I²C ini.

Jam Waktu Nyata (DS1307): Selama start-up, register RTC 0 dan 7 dibaca untuk menentukan apakah berisi waktu dan data konfigurasi yang valid. Setelah pengaturan benar, waktu RTC dibaca dan waktu dimuat di PIC. Ini adalah satu-satunya waktu yang dibaca dari RTC. Setelah startup, pulsa 1Hz akan muncul di pin 7 RTC. Sinyal 1Hz ini terhubung ke RB0/INT0, dan melalui rutin layanan interupsi, waktu PIC diperbarui setiap detik.

EEPROM Eksternal: Semua data dan opsi program disimpan di EEPROM eksternal. Data EEPROM dimuat saat start-up, dan salinan data disimpan dalam memori PIC. Data EEPROM hanya diperbarui ketika pengaturan program diubah.

Sensor Siang/Malam: Sebuah resistor bergantung cahaya standar (LDR) digunakan sebagai sensor Siang/Malam. Karena LDR hadir dalam berbagai bentuk dan variasi, semuanya dengan nilai resistansi yang berbeda di bawah kondisi cahaya yang sama, saya menggunakan saluran input analog untuk membaca level cahaya. Level Siang dan Malam dapat disesuaikan, dan memungkinkan fleksibilitas untuk berbagai sensor. Untuk mengatur beberapa histeresis, nilai individual untuk Siang dan Malam dapat diatur. Status hanya akan berubah jika tingkat cahaya di bawah Siang, atau di atas titik setel Malam, selama lebih dari 60 detik.

Layar LCD: 4 baris, tampilan 16 karakter digunakan, karena semua data tidak dapat ditampilkan pada tampilan 2 baris. Proyek ini menyertakan beberapa karakter khusus, yang ditentukan dalam makro LCD_Custom_Char.

Input Tambahan: Kedua input disangga dengan transistor NPN. +12v dan 0V juga tersedia pada konektor, memungkinkan koneksi yang lebih fleksibel ke koneksi eksternal. Sebagai contoh, penerima remote control dapat dihubungkan ke suplai.

Keluaran: Semua keluaran diisolasi secara elektrik dari rangkaian melalui relai 12V. Relai yang digunakan, diberi peringkat untuk 250V AC, pada 10 amp. Kontak yang biasanya terbuka dan biasanya tertutup dibawa ke terminal.

Keypad: Keypad yang digunakan adalah keypad matriks 3 x 4, dan terhubung PORTB:2..7.

Langkah 4: Interupsi Keypad

Interupsi Keypad
Interupsi Keypad
Interupsi Keypad
Interupsi Keypad
Interupsi Keypad
Interupsi Keypad

Saya ingin memanfaatkan PORTB Interrupt on Change interrupt pada tombol apa saja yang ditekan. Untuk ini, Interupsi Kustom harus dibuat di Flowcode, untuk memastikan bahwa arah dan data PORTB diatur dengan benar sebelum dan sesudah setiap interupsi keypad. Interupsi dihasilkan setiap kali tombol ditekan, atau dilepaskan. Rutin interupsi hanya merespons ketika tombol ditekan.

GANGGUAN KUSTOM

Aktifkan Kode

portb = 0b00001110;trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Kode pengendali

jika (intcon & (1 << RBIF))

{ FCM_%n();

portb = 0b00001110;

trisb = 0b11110001;

wreg= portb;

clear_bit(intcon, RBIF);

}

Masalah ditemukan

Selama interupsi, rutin layanan interupsi harus dalam kondisi NO, memanggil makro lain yang mungkin digunakan di suatu tempat di sisa program. Ini pada akhirnya akan menyebabkan masalah stack overflow, karena interupsi dapat terjadi pada saat yang sama ketika program utama juga berada di subrutin yang sama. Ini juga diidentifikasi sebagai KESALAHAN SERIUS oleh Flowcode saat kode dikompilasi.

Dalam kode Kustom Keypad di bawah GetKeyPadNumber, ada panggilan seperti itu ke makro Delay_us, yang akan menyebabkan stack overflow. Untuk mengatasinya, saya telah menghapus perintah Delay_us(10), dan menggantinya dengan 25 baris “wreg = porta;” perintah. Perintah ini membaca PORTA, dan menempatkan nilainya ke dalam register W, hanya untuk mendapatkan penundaan. Perintah ini akan dikompilasi menjadi satu instruksi yang mirip dengan assembler movf porta, 0. Untuk jam 10MHz yang digunakan dalam proyek, setiap instruksi akan 400ns, dan untuk mendapatkan penundaan 10us, saya membutuhkan 25 instruksi ini.

Perhatikan pada baris kedua Gambar 3: Kode Kustom GetKeypadNumber, bahwa perintah delay_us(10) asli telah dinonaktifkan dengan “//”. Di bawah ini, saya telah menambahkan 25 “wreg = porta;” saya perintah untuk mendapatkan penundaan 10us baru. Tanpa panggilan ke makro apa pun di dalam kode kustom Keypad_ReadKeypadNumber, makro Keypad sekarang dapat digunakan di dalam rutin layanan interupsi.

Perlu dicatat bahwa komponen Flowcode Keypad dan eBlocks tidak menggunakan resistor pull-up standar pada jalur input. Sebagai gantinya, ia menggunakan resistor pull-down 100K. Karena beberapa gangguan yang ditemukan pada keypad selama pengembangan, semua resistor 100K diganti dengan 10K, dan semua resistor 10K diganti dengan 1K5. Keypad diuji untuk bekerja dengan benar dengan lead 200mm.

Langkah 5: Menggunakan Timer

Menggunakan Timer
Menggunakan Timer
Menggunakan Timer
Menggunakan Timer
Menggunakan Timer
Menggunakan Timer

Semua layar diatur untuk menunjukkan semua informasi yang diperlukan bagi pengguna untuk membuat perubahan cepat pada pengaturan. Baris 4 digunakan untuk membantu navigasi melalui menu dan pilihan program. Sebanyak 22 layar tersedia selama operasi normal.

GARIS 1: Waktu dan Status

Menunjukkan hari dan waktu saat ini, diikuti dengan ikon status:

A – Menunjukkan bahwa Aux Input A terpicu, dan Aux Input A timer sedang berjalan.

B – Menunjukkan bahwa Aux Input B terpicu, dan timer Aux Input B sedang berjalan.

C – Menunjukkan bahwa Aux Output C dihidupkan.

D – Menunjukkan bahwa Output Aux D dihidupkan.

} – Status sensor Siang/Malam. Jika ada, menunjukkan bahwa itu adalah malam.

LINE 2: Keluaran Program

Menunjukkan saluran yang telah diaktifkan oleh program yang berbeda. Saluran ditampilkan dalam nomor outputnya, dan "-" menunjukkan bahwa output tertentu tidak dihidupkan. Saluran yang telah dinonaktifkan di "Output Program Aktif" masih akan ditunjukkan di sini, tetapi output Nyata tidak akan disetel.

LINE 3: Output Nyata

Menunjukkan saluran mana yang diaktifkan oleh program yang berbeda, Aux Inputs A & B, atau output manual yang diatur oleh pengguna. Menekan 0 akan mengembalikan semua output yang diaktifkan secara manual ke off, dan mengatur ulang timer A & B Output Aux.

LINE 4: Menu dan pilihan tombol (pada semua menu)

Menunjukkan fungsi tombol “*” dan “#”.

Bagian tengah menunjukkan tombol angka (0-9) mana yang aktif untuk layar yang dipilih.

Status input A & B Input Aux juga ditampilkan melalui ikon sakelar Terbuka atau Tertutup.

Output dapat dihidupkan/dimatikan secara manual dengan menekan tombol yang sesuai pada keypad.

Di seluruh menu, tombol Star dan Hash digunakan untuk menavigasi melalui opsi program yang berbeda. Tombol 0-9 digunakan untuk mengatur opsi. Jika beberapa opsi tersedia pada satu layar atau menu pemrograman, tombol Hash digunakan untuk menelusuri opsi yang berbeda. Opsi yang dipilih saat ini akan selalu ditunjukkan oleh karakter ">" di sebelah kiri layar.

0-9 Masukkan nilai waktu

1-8 Ubah pilihan saluran

14 36 Langkah melalui program, 1 langkah mundur, 4 langkah mundur 10 program, 3 langkah maju, 6 langkah maju 10

program

1-7 Tetapkan hari dalam seminggu. 1=Minggu, 2=Senin, 3=Selasa, 4=Rabu, 5=Kamis, 6=Jumat, 7=Sabtu

0 Di layar utama, hapus semua penggantian manual dan penghitung waktu Input A & Input B. Di menu lain, perubahan

pilihan yang dipilih

# Di layar utama, akan menonaktifkan semua penggantian manual, penghitung waktu Input A & Input B dan Output Program, hingga

acara berikutnya.

* dan 1 Reboot timer

* dan 2 Hapus semua program dan opsi, kembalikan pengaturan ke default.

* dan 3 Pasang timer ke standby. Untuk mengaktifkan timer lagi, tekan tombol apa saja.

Selama entri nilai waktu yang salah, lampu latar LCD akan berkedip 5 kali untuk menunjukkan kesalahan. Pada saat yang sama, bel akan berbunyi. Perintah Keluar dan Berikutnya hanya akan berfungsi jika entri saat ini benar.

Lampu Latar LCD

Pada pengaktifan awal, lampu latar LCD akan menyala selama 3 menit, kecuali:

- Ada kegagalan perangkat keras (EEPROM atau RTC tidak ditemukan)

- Waktu tidak diatur dalam RTC

Lampu latar LCD akan menyala lagi selama 3 menit pada setiap input pengguna pada keypad. Jika lampu latar LCD mati, perintah keypad apa pun akan menyalakan lampu latar LCD terlebih dahulu, dan mengabaikan tombol yang ditekan. Ini memastikan bahwa pengguna akan dapat membaca layar LCD sebelum menggunakan keypad. Lampu latar LCD juga akan menyala selama 5 detik jika Aux Input A atau Aux Input B diaktifkan.

Langkah 6: Tangkapan Layar Menu

Tangkapan Layar Menu
Tangkapan Layar Menu
Tangkapan Layar Menu
Tangkapan Layar Menu
Tangkapan Layar Menu
Tangkapan Layar Menu

Dengan menggunakan keypad, setiap opsi dapat diprogram dengan mudah. Gambar memberikan beberapa informasi tentang apa yang dilakukan setiap layar.

Langkah 7: Desain Sistem

Desain Sistem
Desain Sistem

Semua pengembangan dan pengujian dilakukan di papan tempat memotong roti. Melihat semua bagian dari sistem, saya memecah sistem menjadi tiga modul. Keputusan ini terutama disebabkan oleh batasan ukuran PCB (80 x 100mm) dari versi gratis Eagle.

Modul 1 - Catu Daya

Modul 2 - papan CPU

Modul 3 - Papan estafet

Saya memutuskan bahwa semua komponen harus mudah diperoleh, dan saya tidak ingin menggunakan komponen pemasangan permukaan.

Mari kita pergi melalui masing-masing.

Langkah 8: Catu Daya

Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik
Sumber Daya listrik

Catu daya lurus ke depan, dan memasok CPU dan papan relai dengan 12V dan 5V.

Saya memasang regulator tegangan pada heat sink yang layak, dan juga menggunakan kapasitor yang dinilai terlalu tinggi untuk suplai.

Langkah 9: Papan CPU

Papan CPU
Papan CPU
Papan CPU
Papan CPU
Papan CPU
Papan CPU
Papan CPU
Papan CPU

Semua komponen, kecuali layar LCD, keypad, dan relai dipasang pada papan CPU.

Blok terminal ditambahkan untuk menyederhanakan koneksi antara suplai, dua input digital, dan sensor cahaya.

Pin/soket header menyediakan koneksi yang mudah ke layar LCD dan keypad.

Untuk output ke relay, saya menggunakan ULN2803. Ini sudah berisi semua resistor penggerak dan dioda flyback yang diperlukan. Ini memastikan bahwa papan CPU masih dapat dibuat menggunakan versi gratis dari Eagle. Relai terhubung ke dua ULN2803. ULN2803 bawah digunakan untuk 8 output, dan ULN2803 atas untuk dua output tambahan. Setiap output tambahan memiliki empat transistor. Koneksi ke relai juga melalui pin/soket header.

PIC 18F4520 dilengkapi dengan soket pemrograman, untuk memungkinkan pemrograman yang mudah melalui pemrogram PicKit 3.

CATATAN:

Anda akan melihat bahwa papan berisi 8 pin IC tambahan. IC atas adalah PIC 12F675, dan terhubung ke input digital. Ini ditambahkan selama desain PCB. Ini membuatnya lebih mudah untuk melakukan pra-proses input digital. Dalam aplikasi saya, salah satu input digital terhubung ke sistem alarm saya. Jika alarm berbunyi, lampu tertentu menyala di rumah saya. Mempersenjatai dan melucuti sistem alarm saya memberikan bunyi bip yang berbeda pada sirene. Dengan menggunakan PIC 12F675, sekarang saya dapat membedakan antara arm/disarm dan alarm yang sebenarnya. 12F675 juga dilengkapi dengan soket pemrograman.

Saya juga membuat ketentuan untuk port I2C melalui pin/soket header. Ini akan berguna nanti dengan papan relai.

Papan berisi beberapa jumper, yang harus disolder sebelum memasang soket IC.

Langkah 10: Kesimpulan Flowcode

Kesimpulan Flowcode
Kesimpulan Flowcode
Kesimpulan Flowcode
Kesimpulan Flowcode
Kesimpulan Flowcode
Kesimpulan Flowcode

Karena saya terbiasa bekerja pada tingkat register dalam perakitan, terkadang sulit dan membuat frustrasi untuk menggunakan makro komponen. Ini terutama karena kurangnya pengetahuan saya tentang struktur pemrograman Flowcode. Satu-satunya tempat saya telah menggunakan blok C atau ASM, adalah mengaktifkan output di dalam rutin interupsi, dan dalam rutinitas Do_KeyPressed untuk menonaktifkan/mengaktifkan interupsi keypad. PIC juga ditempatkan ke SLEEP menggunakan blok ASM, ketika EEPROM atau RTC tidak ditemukan.

Bantuan seputar penggunaan perintah I²C yang berbeda, semuanya diperoleh dari dalam file Bantuan Flowcode. Diperlukan untuk mengetahui dengan tepat cara kerja perangkat I²C yang berbeda, sebelum perintah dapat digunakan dengan sukses. Merancang sirkuit memang membutuhkan perancang untuk memiliki semua lembar data yang relevan tersedia. Ini bukan kekurangan Flowcode.

Flowcode benar-benar tahan uji, dan sangat direkomendasikan untuk orang yang ingin mulai bekerja dengan rangkaian mikroprosesor Microchip.

Pemrograman dan konfigurasi Flowcode untuk PIC ditetapkan sesuai gambar

Langkah 11: Papan Relai I2C Opsional

Papan Relay I2C opsional
Papan Relay I2C opsional
Papan Relay I2C opsional
Papan Relay I2C opsional
Papan Relay I2C opsional
Papan Relay I2C opsional

Papan CPU sudah memiliki koneksi header untuk 16 relai. Output ini adalah transistor kolektor terbuka melalui dua chip ULN2803. Ini dapat digunakan untuk menyalakan relai secara langsung.

Setelah pengujian pertama sistem, saya tidak menyukai semua kabel antara papan CPU dan relai. Karena saya menyertakan port I2C pada papan CPU, saya memutuskan untuk merancang papan relai untuk terhubung ke port I2C. Menggunakan chip 16 channel MCP23017 I/O Port Expander dan rangkaian transistor ULN2803, saya mengurangi koneksi antara CPU dan relai menjadi 4 kabel.

Karena saya tidak dapat memuat 16 relai pada PCB 80 x 100mm, saya memutuskan untuk membuat dua papan. Setiap MCP23017 hanya menggunakan 8 dari 16 portnya. Papan 1 menangani 8 keluaran, dan papan 2 menangani dua keluaran tambahan. Satu-satunya perbedaan di papan adalah alamat setiap papan. Ini mudah diatur dengan jumper mini. Setiap papan memiliki konektor untuk memasok daya dan data I2C ke papan lainnya.

CATATAN:

Jika diperlukan, perangkat lunak membuat ketentuan hanya untuk satu papan yang dapat menggunakan semua 16 port. Semua data relai keluaran tersedia di papan pertama.

Karena rangkaian ini opsional dan sangat sederhana, saya tidak membuat skema. Jika ada cukup permintaan, saya bisa menambahkannya nanti.

Langkah 12: Tautan RF Opsional

Tautan RF opsional
Tautan RF opsional
Tautan RF opsional
Tautan RF opsional
Tautan RF opsional
Tautan RF opsional

Setelah menyelesaikan proyek, saya segera menyadari bahwa saya harus menarik banyak kabel AC 220V ke timer. Saya mengembangkan tautan RF menggunakan modul standar 315MHz yang memungkinkan pengatur waktu ditempatkan di dalam lemari, dan papan relai di dalam atap, dekat dengan semua kabel 220V.

Tautan menggunakan AtMega328P yang berjalan pada 16MHz. Perangkat lunak untuk pemancar dan penerima sama, dan mode dipilih oleh jumper mini.

Pemancar

Pemancar cukup dicolokkan ke port I2C CPU. Tidak diperlukan pengaturan tambahan, karena AtMega328P mendengarkan data yang sama dengan papan relai I2C.

Data diperbarui sekali per detik pada port I2C, dan pemancar mengirimkan informasi ini melalui tautan RF. Jika pemancar tidak menerima data I2C selama sekitar 30 detik, pemancar akan terus mengirimkan data untuk mematikan semua relai ke unit penerima.

Daya ke modul pemancar dapat dipilih antara 12V dan 5V dengan jumper mini di papan PC. Saya menyalakan pemancar saya menggunakan 12V.

Penerima

Penerima mendengarkan kode data dari pemancar, dan menempatkan data pada port I2C. Papan relai cukup dicolokkan ke port ini, dan berfungsi sama seperti yang dicolokkan ke papan CPU.

Jika penerima tidak menerima data yang valid selama 30 detik, penerima akan terus mengirimkan data pada port I2C untuk mematikan semua relai pada papan relai.

skema

Suatu hari, jika ada permintaan untuk itu. Sketsa Arduino memang berisi semua informasi yang diperlukan untuk membangun sirkuit tanpa diagram sirkuit.

Jangkauan

Dalam instalasi saya, pemancar dan penerima berjarak sekitar 10 meter. Pengatur waktu ada di dalam lemari, dan unit relai di atas langit-langit.

Langkah 13: Produk Akhir

Produk akhir
Produk akhir
Produk akhir
Produk akhir
Produk akhir
Produk akhir

Unit utama dipasang di kotak proyek lama. Ini berisi sebagai berikut:

- Trafo 220V/12V

- Papan Catu Daya

- Papan CPU

- Layar LCD

- Papan tombol

- Pemancar Tautan RF

- Unit penerima jarak jauh rumah tambahan untuk memungkinkan saya menyalakan/mematikan lampu melalui remote

Unit relai terdiri dari:

- Trafo 220V/12V

- Papan Catu Daya

- Penerima Tautan RF

- 2 x Papan Relay I2C

Semua papan didesain dengan dimensi yang sama, sehingga mudah untuk ditumpuk satu sama lain dengan spacer 3mm.

Direkomendasikan: