Daftar Isi:

Model AC Arduino: 6 Langkah
Model AC Arduino: 6 Langkah

Video: Model AC Arduino: 6 Langkah

Video: Model AC Arduino: 6 Langkah
Video: Amazing technology 6A peltier module 2024, Juli
Anonim
Model AC Arduino
Model AC Arduino

Sebagai bagian dari demonstrasi kemampuan tim kami untuk membuat model perangkat kereta pintar untuk tujuan pemasaran, tujuannya adalah untuk membuat sistem di mana sensor suhu membaca data dari sirkuit dan mengubah informasi menjadi nilai suhu yang ditampilkan pada layar yang menyala dan terfokus pada apakah kipas menyala atau mati. Tujuannya adalah untuk membantu mengakomodasi kondisi berkendara penumpang menggunakan sistem otomatis yang juga berfungsi untuk menampilkan suhu di sekitarnya.

Dengan menggunakan kit mikrokontroler Arduino dan MATLAB versi 2016b dan 2017b, kami dapat menunjukkan hasil ini dengan relatif berhasil.

Langkah 1: Peralatan

Peralatan
Peralatan

Kit Mikrokontroler dengan sebagai berikut:

-Papan Merah Sparkfun

-Sparkfun Breadboard

-Papan LCD

-potensiometer

-Sensor temperatur

-Servo

-Adaptor USB/Arduino

-Kabel Jumper (minimal 25)

Laptop (Windows 10) dengan input USB

Objek Cetak 3D (opsional)

Langkah 2: Pengaturan Mikrokontroler

Pengaturan Mikrokontroler
Pengaturan Mikrokontroler
Pengaturan Mikrokontroler
Pengaturan Mikrokontroler
Pengaturan Mikrokontroler
Pengaturan Mikrokontroler
Pengaturan Mikrokontroler
Pengaturan Mikrokontroler

Pertimbangkan ini: seluruh sistem terdiri dari unit tunggal yang masing-masing menerapkan faktor signifikan terhadap hasil akhir. Untuk alasan ini, sangat disarankan untuk mengatur gambar sirkuit sebelum memasang kabel dalam kekacauan yang berbelit-belit.

Gambar masing-masing model dapat ditemukan di manual kit alat Mikrokontroler atau di situs webnya di

Mulailah dengan memasang sensor suhu, potensiometer, konektor servo, dan LCD ke papan. Direkomendasikan bahwa karena ukuran LCD dan persyaratan untuk jumlah kabel untuk itu, itu harus ditempatkan di setengah sendiri dari papan tempat memotong roti dengan potongan lainnya di setengah lainnya dan untuk potensiometer berada di area untuk seseorang untuk dengan mudah memutar kenopnya.

Sebagai referensi:

LCD: c1-16

Servo: i1-3 (GND + -)

Sensor Suhu: i13-15 (- GND +)

Potensiometer: g24-26 (- GND +)

Selanjutnya, mulailah menghubungkan kabel jumper ke setiap pin unit mikrokontroler; meskipun sewenang-wenang dalam keseluruhan skema besar, desain dibuat dengan koneksi penting ini:

Menghubungkan Potensiometer ke LCD: f25 -- e3

Kabel servo GND: j1 -- Input Digital 9

Sensor Suhu GND: j14 -- Input Analog 0

Input LCD: e11-e15 -- Input Digital 2-5

e4 -- Masukan Digital 7

e6 -- Masukan Digital 6

(Catatan: Jika berhasil, kedua lampu di tepi LCD akan menyala dan potensiometer dapat membantu menyesuaikan kecerahannya setelah diberi daya dari adaptor.)

Opsional: Objek cetak 3D digunakan sebagai bagian dari persyaratan. Untuk menghindari potensi kerusakan pada bagian yang lebih rapuh, casing yang diperpanjang ditempatkan sebagai pelindung di sekitar LCD. Pengukuran layar LCD terbukti sekitar 2-13/16" x 1-1/16" x 1/4", dan dengan demikian hanya tingginya yang berubah secara signifikan. Jika printer 3D sudah tersedia, pertimbangkan untuk menambahkan objek pribadi, meskipun tidak perlu. Perlu diketahui juga bahwa pengukuran mungkin berbeda.

Langkah 3: Pengaturan MATLAB

Pengaturan MATLAB
Pengaturan MATLAB
Pengaturan MATLAB
Pengaturan MATLAB

Instal versi MATLAB yang lebih baru (2016a dan seterusnya), tersedia di situs web MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Setelah dibuka, buka Add-Ons pada tab Beranda dan unduh "Paket Dukungan MATLAB untuk Perangkat Keras Arduino" agar perintah mikrokontroler dapat diakses.

Setelah selesai, tes dapat dilakukan untuk menemukan konektivitas mikrokontroler ke komputer/laptop seseorang. Setelah menghubungkannya dengan adaptor USB dari tool kit, masukkan perintah "fopen(serial('nada'))."

Pesan kesalahan akan muncul yang menyatakan konektor sebagai "COM#", yang akan diperlukan untuk membuat objek arduino selama itu adalah input yang sama setiap saat.

Karena LCD tidak memiliki koneksi langsung ke perpustakaan Arduino, perpustakaan baru harus dibuat untuk menampilkan pesan. Rekomendasi adalah membuat file LCDAddon.m dari contoh LCD yang ditemukan di jendela bantuan MATLAB setelah mencari "Arduino LCD" dan menempatkannya di folder +arduinoioaddons, atau gunakan folder terkompresi yang dilampirkan dan salin semua kontennya ke dalam folder yang disebutkan di atas map.

Jika berhasil, maka kode untuk membuat objek Arduino di MATLAB adalah seperti gambar di bawah ini.

a=arduino('com#', 'uno', 'Perpustakaan', 'ContohLCD/LCDAddon');

Langkah 4: Fungsi

Fungsi
Fungsi
Fungsi
Fungsi

Buat fungsi MATLAB. Untuk input, kami menggunakan variabel "eff" dan "T_min"; untuk keluaran, meskipun tidak diperlukan dalam desain keseluruhan, kami menggunakan variabel "B" sebagai cara untuk memuat data dari hasil. Input "eff" memungkinkan untuk mengatur kecepatan maksimum servo, dan input "T_min" mengontrol suhu minimum yang diinginkan. Nilai "B" seharusnya menghasilkan matriks yang berisi tiga kolom untuk waktu, suhu, dan efisiensi kipas. Selain itu, sebagai bonus untuk detail, kode yang tercantum di bawah ini juga memiliki pernyataan if sehingga kecepatan kipas akan berkurang lima puluh persen saat mendekati suhu minimum yang diinginkan.

Jika semua kabel input dan jumper ditempatkan dengan tepat dan dengan asumsi port koneksi arduino adalah COM4 dan nama fungsinya adalah "fanread", kode berikut sudah cukup:

fungsi [B] = fanread(Tmin, eff)

jelas a; clear lcd;a=arduino('com4', 'uno', 'Libraries', 'ContohLCD/LCDAddon');

t=0; t_maks=15; % waktu dalam detik

lcd=addon(a, 'ContohLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

initializeLCD(lcd, 'Baris', 2, 'Kolom', 2);

jika eff>=1 || e<0

error('Kipas tidak akan aktif kecuali eff disetel antara 0 dan 1.')

akhir

untuk t=1:10 % jumlah loop/interval

jelas c; % mencegah kesalahan berulang

v=readVoltage(a, 'A0');

TempC=(v-0.5)*100; % estimasi untuk rentang tegangan 2,7-5,5 V

jika TempC>Tmin jika TempC

c=['Suhu ', num2str(Suhu, 3), 'C Aktif'];

writePWMDutyCycle(a, 'D9', eff/2); % nyalakan servo dengan setengah kecepatan

spd=50;

lain

c=['Temp ', num2str(TempC, 3), 'C Aktif'];

writePWMDutyCycle(a, 'D9', eff); % nyalakan servo dengan kecepatan yang diberikan

spd=100;

akhir

lain

c=['Suhu ', num2str(Suhu, 3), 'C Mati'];

writePWMDutyCycle(a, 'D9', 0); % matikan jika sudah aktif

spd=0;

akhir

printLCD(lcd, c);

jeda (3); % tiga detik berlalu per putaran

waktu(t)=t.*3;

tempplot(t)=TempC;

tindakan(t)=spd;

subplot(2, 1, 1)

plot(waktu, tempplot, 'b-o') % grafik garis

sumbu([0 33 0 40])

xlabel('Waktu (detik)')

ylabel('Suhu (C)')

tunggu

plot([0 33], [Tmin Tmin], 'r-')

tunggu

plot([0 33], [Tmin+2 Tmin+2], 'g-')

subplot(2, 1, 2)

batang(waktu, tindakan) % grafik batang

xlabel('Waktu (detik)')

ylabel('Efisiensi (%)')

akhir

B=transpose([waktu;tempplot;bertindak]);

akhir

Sekarang fungsinya sudah selesai, sekarang saatnya untuk menguji.

Langkah 5: Pengujian

Pengujian
Pengujian
Pengujian
Pengujian

Sekarang uji fungsi di jendela perintah dengan memasukkan "function_name(input_value_1, input_value_2)" dan tonton. Pastikan tidak ada objek Arduino yang sudah ada; jika demikian, gunakan perintah "clear a" untuk menghapusnya. Jika terjadi kesalahan, periksa dan lihat apakah ada konektor di tempat yang salah atau jika input digital atau analog yang digunakan salah. Hasil diperkirakan akan bervariasi, meskipun hal ini mungkin disebabkan oleh penempatan kabel jumper tertentu dan sensor suhu.

Harapan dari hasil harus menghasilkan perubahan kinerja servo dan data pada LCD. Dengan setiap interval tiga detik, sebaris teks akan menampilkan suhu dalam Celcius dan apakah kipas aktif atau tidak saat kipas berjalan dengan kecepatan penuh, setengah kecepatan atau tidak. Data kemungkinan besar tidak konsisten, meskipun jika menginginkan hasil yang lebih beragam, tempatkan nilai "Tmin" dekat dengan suhu rata-rata yang dihasilkan oleh rangkaian.

Langkah 6: Kesimpulan

Kesimpulan
Kesimpulan

Meskipun tugas yang sulit untuk diselesaikan dengan coba-coba, hasil akhirnya terbukti cukup menarik dan memuaskan. Sistem seperti itu membantu untuk menggambarkan berapa banyak mesin yang rumit, atau bahkan beberapa bagiannya, dapat dilihat sebagai kumpulan bagian-bagian independen yang ditempatkan bersama untuk mencapai tujuan tertentu.

Karena desain tugas akhir yang agak sederhana, mereka yang tertarik untuk meningkatkan kinerjanya dapat melakukan tweak dan perubahan pada produk akhir yang dapat membuat proyek lebih baik dan lebih rumit. Namun, itu mengungkapkan kelemahan dalam rangkaian seperti aktivasi servo yang mengakibatkan fluktuasi sporadis dalam pembacaan tegangan rangkaian, yang dapat menyebabkan sistem tidak pernah menghasilkan hasil yang identik. Juga, ada masalah dengan melihat perubahan kecepatan servo ketika "eff" disetel 0,4 dan lebih tinggi. Seandainya sensor suhu dan kelembaban digunakan, model akhir akan lebih rumit namun menyajikan nilai yang lebih konsisten. Namun demikian, ini adalah pengalaman yang menunjukkan bahwa mesin yang kompleks dapat berfungsi sebagai kombinasi dari bagian-bagiannya yang sederhana.

Direkomendasikan: