- Membuat Muka Pengguna Grafik MATLAB untuk Memplotkan Grafik
- Kod MATLAB untuk Memplot Grafik
- Bahan Diperlukan
- Rajah Litar
- Petak Grafik dengan MATLAB
Grafik selalu berguna untuk memvisualisasikan data dan menjadi sangat mudah untuk mencari arah aliran dan corak dengan melihatnya. Terdapat banyak perisian yang tersedia untuk memplot grafik berdasarkan nilai input, hari ini kita akan menggunakan MATLAB untuk memplot grafik berdasarkan data suhu dari sensor LM35. Tutorial ini akan memberi anda idea asas tentang cara membuat grafik masa nyata menggunakan MATLAB. Arduino Uno digunakan di sini untuk mendapatkan data suhu dari sensor suhu LM35.
Sebelum melangkah lebih jauh, jika anda baru menggunakan MATLAB, anda boleh melihat tutorial MATLAB kami sebelumnya untuk memahami dengan lebih baik:
- Bermula dengan MATLAB: Pengenalan Pantas
- Memadan Arduino dengan MATLAB - LED Berkelip
- Komunikasi Bersiri antara MATLAB dan Arduino
- Kawalan Motor DC Menggunakan MATLAB dan Arduino
- Stepper Motor Control menggunakan MATLAB dan Arduino
Membuat Muka Pengguna Grafik MATLAB untuk Memplotkan Grafik
Mula-mula kita harus membina GUI (Graphical User Interface) untuk Plot a Graph dengan data suhu. Untuk melancarkan GUI, ketik perintah di bawah ini di tetingkap arahan
panduan
Tetingkap pop timbul akan terbuka, kemudian pilih GUI kosong baru seperti yang ditunjukkan dalam gambar di bawah,
Sekarang kita harus memilih satu butang tekan, dua paksi dan satu kotak teks untuk antara muka grafik MATLAB . Butang tekan akan digunakan untuk memulakan penginderaan suhu, dua paksi untuk memplot grafik dan kotak Teks untuk menunjukkan nilai suhu semasa.
Untuk mengubah saiz atau mengubah bentuk butang, Paksi atau butang edit teks, cukup klik padanya dan anda akan dapat menyeret sudut butang. Dengan mengklik dua kali pada salah satu dari ini, anda akan dapat mengubah warna, tali dan tanda butang tersebut. Selepas penyesuaian akan kelihatan seperti ini
Anda boleh menyesuaikan butang mengikut pilihan anda. Sekarang apabila anda menyimpan ini, kod dihasilkan di tetingkap Editor MATLAB. Untuk menjadikan Arduino anda melakukan tugas tertentu yang berkaitan dengan projek anda, anda harus selalu mengedit kod yang dihasilkan ini. Jadi di bawah ini kami telah mengedit kod MATLAB. Anda boleh mengetahui lebih lanjut mengenai tetingkap Perintah, tetingkap editor dan lain-lain dalam Bermula dengan tutorial MATLAB.
Kod MATLAB untuk Memplot Grafik
Kod MATLAB yang lengkap untuk Merancang Termometer menggunakan LM35 dan Arduino, diberikan pada akhir projek ini. Selanjutnya kami menyertakan file GUI (.fig) dan fail kod (.m) di sini untuk dimuat, dengan menggunakan mana Anda dapat menyesuaikan butang atau ukuran sumbu sesuai dengan keperluan anda. Kami telah mengedit kod yang dihasilkan seperti yang dijelaskan di bawah.
Salin dan tampal kod di bawah pada baris no. 74 untuk memastikan bahawa Arduino bercakap dengan MATLAB setiap kali anda menjalankan m-file .
kosongkan semua; global a; a = arduino ();
Semasa anda menatal ke bawah, anda akan melihat bahawa terdapat dua fungsi yang dibuat untuk Pushbutton dan Edit Text di GUI, tidak ada fungsi yang akan dibuat untuk Axes. Sekarang tulis kod dalam fungsi Tombol Tekan (butang mula) mengikut tugas yang ingin anda laksanakan.
Dalam fungsi butang Mula , salin dan tampal kod di bawah sebelum berakhirnya fungsi untuk memulakan penginderaan suhu. Untuk penginderaan, paparan dan grafik suhu yang berterusan, kami menggunakan while loop . Kami telah memberikan jeda 1 saat selepas setiap lelaran sehingga nilai suhu akan dikemas kini setiap saat.
x = 0; pergi = benar; global a; sementara nilai go = readVoltage (a, 'A1'); temp = (nilai * 100); disp (temp); x =; plot (menangani.axes1, x); grid dihidupkan; xlabel ('Masa (saat)') ylabel ('Suhu (° C)'); tajuk ('Graf Suhu Masa Nyata'); set drawow (handles.edit1, 'String', num2str (temp)); berhenti seketika (1); akhir
Sekarang, mari lihat bagaimana kod tersebut berfungsi. Di bawah garis tiga garis, kami telah menetapkan nilai awal ' x ' ke sifar, mendefinisikan ' go ' sebagai benar untuk memulakan gelung sementara dan menyatakan ' global a' untuk memanggil Arduino dalam fungsi.
x = 0; pergi = benar; global a;
Garis kod di bawah digunakan untuk mengetahui nilai voltan dari pin analog A1 Arduino yang disambungkan ke pin 'OUT' dari Sensor Suhu LM35. Keluaran akan menjadi nilai voltan bukan nilai analog.
nilai = readVoltage (a, 'A1');
Di sini kita secara langsung dapat menukar nilai voltan menjadi nilai suhu (darjah Celsius), dengan mengalikannya dengan 10
temp = (nilai * 100);
Sekarang, untuk merangka grafik 'plot (handles.axes1, x)' fungsi digunakan, di mana paksi1 adalah rujukan atau nama kawasan Grafik. Oleh itu, jika anda merancang lebih daripada satu graf maka anda hanya perlu menukar nama paksi, seperti jika anda membuat graf lain, anda boleh menulis plot (pegangan.axes2, x) '
'Grid on' digunakan untuk tampilan Grid pada grafik , 'xlabel', 'ylabel' dan ' title ' digunakan untuk penamaan paksi-x, paksi-y dan tajuk.
plot (menangani.axes1, x); grid dihidupkan; xlabel ('Masa (saat)') ylabel ('Suhu (° C)'); tajuk ('Graf Suhu Masa Nyata');
' Drawnow' digunakan untuk mengemas kini representasi grafik dalam masa nyata.
penarikan
Untuk memaparkan nilai suhu di kotak teks edit pada setiap detik di bawah arahan digunakan, set (handles.edit1, 'String', num2str (temp));
Bahan Diperlukan
- Laptop terpasang MATLAB (Keutamaan: R2016a atau versi di atas)
- Arduino UNO
- LM35 - Sensor Suhu
- Wayar Penyambung
- Papan roti
Rajah Litar
Petak Grafik dengan MATLAB
Setelah menetapkan perkakasan mengikut gambarajah litar, klik pada butang jalankan untuk menjalankan kod yang diedit dalam fail.m
MATLAB mungkin mengambil masa beberapa saat untuk bertindak balas, jangan mengklik butang GUI sehingga MATLAB menunjukkan pesanan sibuk di sudut kiri bawah seperti gambar di bawah,
Apabila semuanya sudah siap, klik pada butang mula dan anda akan mula mendapatkan data suhu di Kawasan Grafik dan di kotak Edit Teks . Nilai akan dikemas kini secara automatik dalam setiap saat. Selang satu saat ini anda boleh menukar kod MATLAB dengan sewajarnya.
Keluarannya akan seperti gambar yang ditunjukkan di bawah ini,
Ini adalah bagaimana anda dapat memplot grafik untuk sebarang nilai masuk dari Arduino menggunakan MATLAB.
Lihat video demonstrasi di bawah untuk pemahaman yang betul.