- Grafik Çizimi için MATLAB Grafik Kullanıcı Arayüzü Oluşturma
- Grafiği Çizmek için MATLAB Kodu
- Gerekli Malzeme
- Devre şeması
- MATLAB ile Grafiği Oluşturun
Grafikler her zaman verileri görselleştirmek için faydalıdır ve bunlara bakarak trendleri ve kalıpları bulmak çok kolay hale gelir. Giriş değerlerine göre grafikleri çizmek için birçok yazılım mevcuttur, bugün LM35 sensöründen gelen sıcaklık verilerine dayalı grafik çizmek için MATLAB kullanacağız. Bu eğitim, MATLAB kullanarak gerçek zamanlı grafiğin nasıl çizileceği hakkında size temel bir fikir verecektir. Arduino Uno burada LM35 sıcaklık sensöründen sıcaklık verilerini almak için kullanılır.
Daha fazla ilerlemeden önce, MATLAB'da yeniyseniz, daha iyi anlaşılması için önceki MATLAB eğitimlerimizi inceleyebilirsiniz:
- MATLAB ile Başlarken: Hızlı Bir Giriş
- MATLAB ile Arduino'nun Arayüzü - Yanıp Sönen LED
- MATLAB ve Arduino arasında Seri İletişim
- MATLAB ve Arduino Kullanarak DC Motor Kontrolü
- MATLAB ve Arduino kullanarak Step Motor Kontrolü
Grafik Çizimi için MATLAB Grafik Kullanıcı Arayüzü Oluşturma
Öncelikle sıcaklık verileriyle Grafik Çizmek için GUI (Grafik Kullanıcı Arayüzü) oluşturmalıyız. GUI'yi başlatmak için, komut penceresine aşağıdaki komutu yazın
kılavuz
Bir açılır pencere açılacak, ardından aşağıdaki resimde gösterildiği gibi yeni boş GUI seçin,
Şimdi MATLAB grafik arayüzü için bir düğme, iki eksen ve bir metin kutusu seçmemiz gerekiyor . Sıcaklık algılamayı başlatmak için basma düğmesi, grafiği çizmek için iki eksen ve mevcut sıcaklık değerini göstermek için Metin kutusu kullanılacaktır.
Düğmenin, Eksenlerin veya metin düzenleme düğmesinin şeklini yeniden boyutlandırmak veya değiştirmek için üzerine tıklamanız yeterlidir ve düğmenin köşelerini sürükleyebilirsiniz. Bunlardan herhangi birine çift tıklayarak, o belirli düğmenin rengini, dizesini ve etiketini değiştirebilirsiniz. Özelleştirmeden sonra şöyle görünecek
Düğmeleri tercihinize göre özelleştirebilirsiniz. Şimdi bunu kaydettiğinizde, MATLAB'ın Editör penceresinde bir kod üretilir. Arduino'nuzun projenizle ilgili belirli bir görevi yerine getirmesini sağlamak için, her zaman bu üretilen kodu düzenlemeniz gerekir. Bu yüzden aşağıda MATLAB kodunu düzenledik. MATLAB öğreticisine Başlarken bölümünde Komut penceresi, düzenleyici penceresi vb. Hakkında daha fazla bilgi edinebilirsiniz.
Grafiği Çizmek için MATLAB Kodu
LM35 ve Arduino kullanarak Termometre Tasarlamak için eksiksiz MATLAB kodu bu projenin sonunda verilmiştir. Ayrıca, indirilmek üzere GUI dosyasını (.fig) ve kod dosyasını (.m) buraya ekliyoruz, bunu kullanarak, düğmelerinizi veya Eksen boyutunu ihtiyacınıza göre özelleştirebilirsiniz. Oluşturulan kodu aşağıda açıklandığı gibi düzenledik.
Aşağıdaki kodu kopyalayıp satır no. 74. m dosyasını her çalıştırdığınızda Arduino'nun MATLAB ile konuştuğundan emin olmak için.
hepsini temizle; küresel a; a = arduino ();
Aşağı kaydırdığınızda , GUI'de Basma Düğmesi ve Metni Düzenle için iki işlevin oluşturulduğunu göreceksiniz, Eksenler için hiçbir işlev oluşturulmayacaktır. Şimdi, gerçekleştirmek istediğiniz göreve göre Basma düğmesi (başlat düğmesi) işlevine kodu yazın.
In Başlat düğmesinin işlevi, kopyalama ve sadece sıcaklık algılama başlatmak için fonksiyonun sonlandırmadan önce kodu altında yapıştırın. Sıcaklığın sürekli olarak algılanması, görüntülenmesi ve grafiksel olarak çizilmesi için döngü sırasında kullanıyoruz. Her yinelemeden sonra 1 saniyelik duraklama sağladık, böylece sıcaklık değeri her saniye güncellenecek.
x = 0; go = true; küresel a; go değeri = okumaVoltajı (a, 'A1'); temp = (değer * 100); disp (temp); x =; plot (handles.axes1, x); ızgara açık; xlabel ('Zaman (saniye)') ilabel ('Sıcaklık (° C)'); title ('Gerçek Zamanlı Sıcaklık Grafiği'); drawow set (handles.edit1, 'String', num2str (temp)); duraklat (1); son
Şimdi, kodun nasıl çalıştığını görelim. Aşağıda üç satır biz 'başlangıç değerini belirledik hat x ' tanımlayarak, sıfıra ' gitmek başlatmak için gerçek olarak' ise döngü ve 'ilan küresel a' işlevinde Arduino çağırmak için.
x = 0; go = true; küresel a;
Aşağıdaki kod satırı, LM35 Sıcaklık Sensörünün 'OUT' pinine bağlı olan Arduino'nun analog pin A1'den gelen voltaj değerini algılamak için kullanılır. Çıkış, analog değer değil, voltaj değeri olacaktır.
değer = okumaVoltajı (a, 'A1');
Burada voltaj değerini 10 ile çarparak doğrudan sıcaklık değerine (santigrat derece) dönüştürebiliriz.
temp = (değer * 100);
Şimdi, grafiğin grafiğini çizmek için 'plot (handles.axes1, x)' işlevi kullanılır; burada eksen1 , Grafik alanının referansı veya adıdır. Dolayısıyla, birden fazla grafiği çiziyorsanız, o zaman sadece eksenlerin adını değiştirmeniz gerekir, örneğin başka bir grafiğin grafiğini çizerseniz arsa yazabilirsiniz (handles.axes2, x) '
Grafiğin Izgara görünümünde 'Izgara açık' , x ekseni, y ekseni ve başlığı adlandırmak için 'xlabel', 'ylabel' ve ' title ' kullanılır.
plot (handles.axes1, x); ızgara açık; xlabel ('Zaman (saniye)') ilabel ('Sıcaklık (° C)'); title ('Gerçek Zamanlı Sıcaklık Grafiği');
' Drawnow' , grafik gösterimi gerçek zamanlı olarak güncellemek için kullanılır.
çizilmiş
To ısı değerini göstermek metin düzenleme kutusuna komutu altında her saniye kullanılır de, set (handles.edit1, 'Dize', num2str (geçici));
Gerekli Malzeme
- MATLAB yüklü Dizüstü Bilgisayar (Tercih: R2016a veya üzeri sürümler)
- Arduino UNO
- LM35 - Sıcaklık Sensörü
- Kabloların Bağlanması
- Breadboard
Devre şeması
MATLAB ile Grafiği Oluşturun
Donanımı devre şemasına göre ayarladıktan sonra, düzenlenen kodu.m dosyasında çalıştırmak için çalıştır düğmesine tıklamanız yeterlidir.
MATLAB'ın yanıt vermesi birkaç saniye sürebilir, MATLAB aşağıda gösterildiği gibi sol alt köşede meşgul mesajı gösterene kadar herhangi bir GUI düğmesine tıklamayın,
Her şey hazır olduğunda, başlat düğmesine tıklayın ve Grafik Alanında ve Metni Düzenle kutusunda sıcaklık verilerini almaya başlayacaksınız. Değer, her saniyede bir otomatik olarak güncellenecektir. Bu bir saniyelik aralığı MATLAB kodunda buna göre değiştirebilirsiniz.
Çıktı aşağıda gösterilen resme benzeyecektir,
MATLAB kullanarak Arduino'dan gelen herhangi bir değer için grafiği bu şekilde çizebilirsiniz.
Doğru anlayış için aşağıdaki tanıtım videosunu kontrol edin.