Isi kandungan:
- Langkah 1: Konfigurasi
- Langkah 2: Mengkonfigurasi Relay
- Langkah 3: Pengawal Histeresis
- Langkah 4: Pengawal PID
- Langkah 5: Bas Mesej
- Langkah 6: Libs
Video: Termostat Berdasarkan Arduino: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Kali ini kami akan membina Thermostat berdasarkan Arduino, sensor suhu dan relay. Anda boleh dapatkan di github
Langkah 1: Konfigurasi
Seluruh konfigurasi disimpan di Config.h. Anda boleh menukar PIN yang mengawal geganti, suhu bacaan, ambang atau masa.
Langkah 2: Mengkonfigurasi Relay
Mari kita anggap bahawa kita ingin mempunyai 3 geganti:
- ID: 0, PIN: 1, Titik suhu: 20
- ID: 1, PIN: 10, Setpoint suhu: 30
- ID: 2, PIN: 11, Titik set suhu: 40
Mula-mula anda harus memastikan bahawa PIN pilihan anda belum diambil. Semua pin boleh didapati dalam Config.h, ia ditentukan oleh pemboleh ubah yang bermula dengan DIG_PIN.
Anda harus mengedit Config.h dan mengkonfigurasi PIN, ambang dan jumlah geganti. Sudah tentu beberapa sifat sudah ada, jadi anda hanya perlu 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 relay dan pengawal, ini berlaku 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: Pengawal Histeresis
Yang dipilih dalam contoh di atas, ia mempunyai beberapa konfigurasi tambahan:
stat statik uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minit statik uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS memberi masa menunggu untuk menukar geganti seterusnya. Bayangkan bahawa konfigurasi dari contoh kita akan mula berfungsi dalam lingkungan 40 darjah. Ini akan menyebabkan ketiga-tiga relai diaktifkan pada masa yang sama. Ini akhirnya boleh menyebabkan penggunaan tenaga yang tinggi - bergantung pada apa yang anda kendalikan, mesin elektrik misalnya menggunakan lebih banyak kuasa semasa memulakan. Dalam kes kami, relay beralih mempunyai aliran berikut: geganti pertama berjalan, tunggu 5 minit, kedua terus, tunggu 5 minit, ketiga terus.
RHC_RELAY_MIN_SWITCH_MS mentakrifkan histeresis, ini adalah frekuensi minimum untuk geganti tertentu untuk mengubah keadaannya. Setelah dihidupkan, ia akan tetap menyala sekurang-kurangnya dalam jangka masa ini, mengabaikan perubahan suhu. Ini tenang jika anda mengawal motor elektrik, kerana setiap suis mempunyai kesan negatif pada waktu hidup.
Langkah 4: Pengawal PID
Ini adalah topik lanjutan. Melaksanakan pengawal sedemikian adalah tugas yang mudah, mencari tetapan amplitud yang tepat adalah cerita yang berbeza.
Untuk menggunakan pengawal PID, anda harus menukar initRelayHysteresisController (…..) menjadi initRelayPiDController (….) Dan anda perlu mencari tetapan yang tepat untuknya. Seperti biasa anda akan menjumpainya di Config.h
Saya telah melaksanakan simulator sederhana di Java, sehingga dapat memvisualisasikan hasilnya. Ia boleh didapati dalam folder: pidsimulator. Di bawah ini anda dapat melihat simulasi untuk dua pengawal PID P. P. PID tidak stabil sepenuhnya kerana saya tidak menggunakan algoritma canggih untuk mencari nilai yang tepat.
Di kedua-dua petak, suhu yang diperlukan ditetapkan pada 30 (biru). Suhu semasa menunjukkan garis baca. Relay mempunyai dua keadaan ON dan OFF. Apabila diaktifkan suhu turun 1.5, apabila dinyahaktifkan ia meningkat 0.5.
Langkah 5: Bas Mesej
Modul perisian yang berbeza harus berkomunikasi antara satu sama lain, semoga tidak kedua-duanya;)
Sebagai contoh:
- modul statistik mesti mengetahui bila relay tertentu dihidupkan dan dimatikan,
- menekan butang harus mengubah kandungan paparan dan juga harus menangguhkan perkhidmatan yang akan memakan banyak siklus CPU, misalnya pembacaan suhu dari sensor,
- setelah beberapa lama bacaan suhu mesti diperbaharui,
- dan sebagainya….
Setiap modul disambungkan ke Bus Mesej dan boleh mendaftar untuk acara tertentu, dan dapat menghasilkan sebarang acara (rajah pertama).
Pada rajah kedua kita dapat melihat aliran peristiwa pada menekan butang.
Beberapa komponen mempunyai beberapa tugas daripada yang perlu dilaksanakan secara berkala. Kita boleh memanggil kaedah yang sesuai dari gelung utama, kerana kita mempunyai Mesej Bas, hanya perlu menyebarkan peristiwa yang betul (rajah ketiga)
Langkah 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Disyorkan:
Tata Letak Kereta Api Model Automatik yang Mengendalikan Dua Keretapi (V2.0) - Berdasarkan Arduino: 15 Langkah (dengan Gambar)
Tata Letak Kereta Api Model Automatik yang Mengendalikan Dua Keretapi (V2.0) | Berasaskan Arduino: Mengautomasikan susun atur kereta api model menggunakan mikrokontroler Arduino adalah cara terbaik untuk menggabungkan pengawal mikro, pengaturcaraan dan model kereta api menjadi satu hobi. Terdapat banyak projek yang tersedia untuk menjalankan kereta api secara autonomi pada model kereta api
Dirt-O-Meter Murah Dirt - $ 9 Altimeter Berdasarkan Arduino: 4 Langkah (dengan Gambar)
Dirt-O-Meter Murah Dirt - $ 9 Arduino Berdasarkan Audimeter Altimeter: Dytters (Altimeter Suara A.K.A) menyelamatkan nyawa skydivers selama bertahun-tahun. Sekarang, Audible Abby juga akan menjimatkan wang mereka. Dytter Asas mempunyai empat penggera, satu dalam perjalanan ke atas, dan tiga di bawah. Dalam menaiki kapal terbang, skydivers perlu tahu bila
Kereta Romote Pintar Berdasarkan Arduino: 5 Langkah
Kereta Romote Pintar Berdasarkan Arduino: Projek ini berdasarkan papan pengembangan UNO Arduino untuk membuat kereta pintar. Kereta ini mempunyai kawalan tanpa wayar Bluetooth, penghalang halangan, penggera buzzer dan fungsi lain, dan ia adalah kereta pacuan empat roda, mudah dipusingkan
Permainan Operasi Steampunk DIY Saya, Berdasarkan Arduino: 9 Langkah (dengan Gambar)
Permainan Pengendalian Steampunk DIY Saya, Berdasarkan Arduino: Projek ini agak luas. Ia tidak memerlukan banyak alat atau pengetahuan sebelumnya, tetapi ia akan mengajar banyak orang (termasuk saya) dalam banyak bidang pembuatan! Seperti Captive-sensing dengan Arduino, multitasking dengan Arduino
MQmax 0.7 Platform IoT WiFi Kos Rendah Berdasarkan Esp8266 dan Arduino Mini Pro: 6 Langkah
MQmax 0.7 Platform IoT WiFi Kos Rendah Berdasarkan Esp8266 dan Arduino Mini Pro: Hello Ini adalah Instruksiku yang kedua (mulai sekarang saya berhenti mengira). Saya membuat ini untuk mewujudkan platform yang mudah (paling tidak untuk saya), murah, senang dibuat dan cekap untuk aplikasi Real IoT yang merangkumi kerja M2M. Platform ini berfungsi dengan esp8266 dan