Daftar Isi:
- Langkah 1: Konfigurasi
- Langkah 2: Mengkonfigurasi Relay
- Langkah 3: Pengontrol Histeresis
- Langkah 4: Pengontrol PID
- Langkah 5: Pesan Bus
- Langkah 6: Lib
Video: Termostat Berbasis Arduino: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Kali ini kita akan membuat Thermostat berbasis Arduino, sensor suhu dan relay. Anda dapat menemukannya di github
Langkah 1: Konfigurasi
Seluruh konfigurasi disimpan di Config.h. Anda dapat mengubah PIN yang mengontrol relai, suhu pembacaan, ambang batas, atau pengaturan waktu.
Langkah 2: Mengkonfigurasi Relay
Mari kita asumsikan bahwa kita ingin memiliki 3 relay:
- ID:0, PIN: 1, Titik setel suhu: 20
- ID: 1, PIN: 10, Titik setel suhu: 30
- ID:2, PIN: 11, Titik setel suhu: 40
Pertama, Anda harus memastikan bahwa PIN pilihan Anda belum diambil. Semua pin dapat ditemukan di Config.h, mereka didefinisikan oleh variabel yang dimulai dengan DIG_PIN.
Anda harus mengedit Config.h dan mengonfigurasi PIN, ambang batas, dan jumlah relai. Jelas beberapa properti sudah ada, jadi Anda tinggal mengeditnya.
const static uint8_t DIG_PIN_RELAY_0 = 1;const static uint8_t DIG_PIN_RELAY_1 = 10; const static uint8_t DIG_PIN_RELAY_2 = 11;
const static uint8_t RELAYS_AMOUNT = 3;
const static int16_t RELAY_TEMP_SET_POINT_0 = 20;
const static int16_t RELAY_TEMP_SET_POINT_1 = 30; const static int16_t RELAY_TEMP_SET_POINT_2 = 40;
Sekarang kita harus mengatur relai dan pengontrol, ini terjadi di RelayDriver.cpp
initRelayHysteresisController(0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0);initRelayHysteresisController(1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController(2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
Langkah 3: Pengontrol Histeresis
Itu yang dipilih dalam contoh di atas, ia memiliki beberapa konfigurasi tambahan:
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 menitconst static uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS memberikan waktu tunggu untuk mengganti relai berikutnya. Bayangkan bahwa konfigurasi dari contoh kita akan mulai bekerja di lingkungan 40 derajat. Ini akan menghasilkan pengaktifan ketiga relai secara bersamaan. Ini pada akhirnya dapat menyebabkan konsumsi daya yang tinggi - tergantung pada apa yang Anda kendalikan, mesin listrik misalnya mengkonsumsi lebih banyak daya saat start. Dalam kasus kami, relai pensaklaran memiliki aliran berikut: relai pertama berjalan, tunggu 5 menit, kedua berjalan, tunggu 5 menit, ketiga berjalan.
RHC_RELAY_MIN_SWITCH_MS mendefinisikan histeresis, frekuensi minimum untuk relai tertentu untuk mengubah statusnya. Setelah aktif, itu akan tetap menyala setidaknya selama periode waktu ini, mengabaikan perubahan suhu. Ini sangat berguna jika Anda mengendalikan motor listrik, karena setiap sakelar memiliki dampak negatif pada waktu hidup.
Langkah 4: Pengontrol PID
Ini adalah topik lanjutan. Menerapkan pengontrol semacam itu adalah tugas yang sederhana, menemukan pengaturan amplitudo yang tepat adalah cerita yang berbeda.
Untuk menggunakan pengontrol PID, Anda harus mengubah initRelayHysteresisController(…..) menjadi initRelayPiDController(…) dan Anda perlu menemukan pengaturan yang tepat untuk itu. Seperti biasa Anda akan menemukannya di Config.h
Saya telah mengimplementasikan simulator sederhana di Java, sehingga memungkinkan untuk memvisualisasikan hasilnya. Ini dapat ditemukan di folder: pidsimulator. Di bawah ini Anda dapat melihat simulasi untuk dua pengontrol PID a P. PID tidak sepenuhnya stabil karena saya tidak menerapkan algoritma canggih untuk menemukan nilai yang benar.
Pada kedua plot suhu yang dibutuhkan diatur ke 30 (biru). Suhu saat ini menunjukkan garis baca. Relay memiliki dua keadaan ON dan OFF. Saat diaktifkan, suhu turun 1,5, saat dinonaktifkan, naik 0,5.
Langkah 5: Pesan Bus
Modul perangkat lunak yang berbeda harus berkomunikasi satu sama lain, semoga tidak dua arah;)
Sebagai contoh:
- modul statistik harus tahu kapan relai tertentu hidup dan mati,
- menekan tombol harus mengubah konten tampilan dan juga harus menangguhkan layanan yang akan menghabiskan banyak siklus CPU, misalnya pembacaan suhu dari sensor,
- setelah beberapa waktu pembacaan suhu harus diperbarui,
- dan seterusnya….
Setiap modul terhubung ke Bus Pesan dan dapat mendaftar untuk acara tertentu, dan dapat menghasilkan acara apa pun (diagram pertama).
Pada diagram kedua kita dapat melihat aliran acara dengan menekan tombol.
Beberapa komponen memiliki beberapa tugas yang perlu dijalankan secara berkala. Kami dapat memanggil metode yang sesuai dari loop utama, karena kami memiliki Bus Pesan, itu hanya perlu untuk menyebarkan acara yang tepat (diagram ketiga)
Langkah 6: Lib
- https://github.com/maciejmiklas/Termostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Direkomendasikan:
Web ?Berbasis Arduino Simulator Dari Wokwi-2020?: 5 Langkah
Web ?Berbasis Arduino Simulator Dari Wokwi-2020?: Wokwi Arduino Simulator berjalan pada platform AVR8js. Ini adalah Simulator Arduino berbasis web. Arduino Simulator berjalan di browser web. oleh karena itu, ini mendapatkan lebih banyak perhatian dan jujur, ini memiliki banyak poin positif dibandingkan dengan simulator lain yang tersedia
Remote Control Berbasis Browser Arduino (linux): 9 Langkah (dengan Gambar)
Remote Control Berbasis Browser Arduino (linux): Kami punya anak. Saya sangat menyukainya, tetapi mereka terus menyembunyikan remote control untuk satelit dan TV saat mereka menyalakan saluran anak-anak. Setelah ini terjadi setiap hari selama beberapa tahun, dan setelah istri tercinta mengizinkan saya untuk memiliki
Pengontrol Game DIY Berbasis Arduino - Pengontrol Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah
Pengontrol Game DIY Berbasis Arduino | Pengontrol Permainan Arduino PS2 | Bermain Tekken Dengan Gamepad Arduino DIY: Halo teman-teman, bermain game selalu menyenangkan tetapi bermain dengan Kontroler game kustom DIY Anda sendiri lebih menyenangkan. Jadi kami akan membuat Pengontrol game menggunakan arduino pro micro dalam instruksi ini
Termometer Inframerah Non Kontak Berbasis Arduino - Termometer Berbasis IR Menggunakan Arduino: 4 Langkah
Termometer Inframerah Non Kontak Berbasis Arduino | Termometer Berbasis IR Menggunakan Arduino: Hai teman-teman dalam instruksi ini kami akan membuat Termometer non-kontak menggunakan arduino. Karena terkadang suhu cairan / padat terlalu tinggi atau terlalu rendah dan kemudian sulit untuk melakukan kontak dengannya dan membacanya suhu kemudian dalam adegan itu
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)
Weather Based Music Generator (ESP8266 Based Midi Generator): Hai, hari ini saya akan menjelaskan cara membuat generator Musik berbasis Cuaca kecil Anda sendiri. Ini didasarkan pada ESP8266, yang mirip dengan Arduino, dan merespons suhu, hujan dan intensitas ringan. Jangan berharap untuk membuat seluruh lagu atau program akord