- Tworzenie graficznego interfejsu użytkownika MATLAB do tworzenia wykresów
- Kod MATLAB do tworzenia wykresu
- Wymagany materiał
- Schemat obwodu
- Wykreśl wykres za pomocą MATLAB
Wykresy są zawsze pomocne w wizualizacji danych i bardzo łatwo jest znaleźć trendy i wzorce, patrząc na nie. Dostępnych jest wiele programów do tworzenia wykresów na podstawie wartości wejściowych, dziś użyjemy MATLAB-a do wykreślenia wykresu na podstawie danych temperatury z czujnika LM35. W tym samouczku znajdziesz podstawowe informacje na temat tworzenia wykresów w czasie rzeczywistym za pomocą MATLAB-a. Arduino Uno służy tutaj do pobierania danych o temperaturze z czujnika temperatury LM35.
Zanim przejdziesz dalej, jeśli jesteś nowy w MATLAB, możesz sprawdzić nasze poprzednie samouczki MATLAB, aby lepiej zrozumieć:
- Pierwsze kroki z MATLAB: szybkie wprowadzenie
- Łączenie Arduino z MATLAB - migająca dioda LED
- Komunikacja szeregowa między MATLAB a Arduino
- Sterowanie silnikiem DC za pomocą MATLAB i Arduino
- Sterowanie silnikiem krokowym za pomocą MATLAB i Arduino
Tworzenie graficznego interfejsu użytkownika MATLAB do tworzenia wykresów
Najpierw musimy zbudować GUI (graficzny interfejs użytkownika), aby wykreślić wykres z danymi dotyczącymi temperatury. Aby uruchomić GUI, wpisz poniższe polecenie w oknie poleceń
przewodnik
Otworzy się wyskakujące okienko, a następnie wybierz nowy pusty GUI, jak pokazano na poniższym obrazku,
Teraz musimy wybrać jeden przycisk, dwie osie i jedno pole tekstowe dla interfejsu graficznego MATLAB . Przycisk zostanie użyty do uruchomienia pomiaru temperatury, dwie osie do wykreślenia wykresu i pole tekstowe do pokazania aktualnej wartości temperatury.
Aby zmienić rozmiar lub kształt przycisku, osi lub przycisku edycji tekstu, po prostu kliknij na niego, a będziesz mógł przeciągać rogi przycisku. Dwukrotne kliknięcie dowolnego z nich pozwoli zmienić kolor, ciąg i tag tego konkretnego przycisku. Po dostosowaniu będzie wyglądać tak
Możesz dostosować przyciski według własnego wyboru. Teraz, kiedy to zapiszesz, kod zostanie wygenerowany w oknie edytora MATLAB-a. Aby Twoje Arduino wykonywało określone zadanie związane z Twoim projektem, zawsze musisz edytować ten wygenerowany kod. Więc poniżej zmieniliśmy kod MATLAB. Możesz dowiedzieć się więcej o oknie poleceń, oknie edytora itp. W samouczku Pierwsze kroki z MATLABem.
Kod MATLAB do tworzenia wykresu
Kompletny kod MATLAB do projektowania termometru przy użyciu LM35 i Arduino jest podany na końcu tego projektu. Ponadto dołączamy plik GUI (.fig) i plik kodu (.m) tutaj do pobrania, za pomocą których można dostosować rozmiar przycisków lub osi zgodnie z wymaganiami. Zmodyfikowaliśmy wygenerowany kod, jak wyjaśniono poniżej.
Skopiuj i wklej poniższy kod w linii nr. 74, aby upewnić się, że Arduino rozmawia z MATLABem za każdym razem, gdy uruchamiasz m-file .
Wyczyść wszystko; globalny a; a = arduino ();
Kiedy przewiniesz w dół, zobaczysz, że istnieją dwie funkcje utworzone dla Pushbutton i Edit Text w GUI, żadna funkcja nie zostanie utworzona dla Axes. Teraz napisz kod w funkcji Pushbutton (przycisk start) zgodnie z zadaniem, które chcesz wykonać.
W funkcji przycisku Start skopiuj i wklej poniższy kod tuż przed zakończeniem funkcji, aby rozpocząć wykrywanie temperatury. Do ciągłego wykrywania, wyświetlania i graficznego wykreślania temperatury używamy pętli while . Zapewniliśmy pauzę 1 sekundy po każdej iteracji, więc wartość temperatury będzie aktualizowana co sekundę.
x = 0; go = true; globalny a; while go value = readVoltage (a, 'A1'); temp = (wartość * 100); disp (temp); x =; plot (handles.axes1, x); siatka włączona; xlabel ('Czas (sekundy)') ylabel ('Temperatura (° C)'); tytuł („Wykres temperatury w czasie rzeczywistym”); zestaw drawnow (handles.edit1, 'String', num2str (temp)); pauza (1); koniec
Zobaczmy teraz, jak działa kod. W trzy linie poniżej linii musimy ustawić wartość początkową „ x ” na zero, definiując „ iść ” za prawdziwe, aby rozpocząć while pętli i ogłoszony globalną a ' za wywołanie Arduino w funkcji.
x = 0; go = true; globalny a;
Poniższy wiersz kodu służy do wykrywania wartości napięcia z analogowego pinu A1 Arduino, który jest podłączony do pinu „OUT” czujnika temperatury LM35. Na wyjściu będzie wartość napięcia, a nie wartość analogowa.
value = readVoltage (a, 'A1');
Tutaj możemy bezpośrednio przeliczyć wartość napięcia na wartość temperatury (stopnie Celsjusza), mnożąc ją przez 10
temp = (wartość * 100);
Teraz do wykreślenia wykresu używana jest funkcja „plot (handles.axes1, x)” , gdzie osie1 to odniesienie lub nazwa obszaru wykresu. Więc jeśli rysujesz więcej niż jeden wykres, musisz po prostu zmienić nazwy osi, na przykład jeśli rysujesz inny wykres, możesz napisać wykres (handles.axes2, x) ''
„Siatka włączona” jest używana w widoku siatki wykresu , a „Xlabel”, „ylabel” i „ title ” są używane do nazywania osi x, osi y i tytułu.
plot (handles.axes1, x); siatka włączona; xlabel ('Czas (sekundy)') ylabel ('Temperatura (° C)'); tytuł („Wykres temperatury w czasie rzeczywistym”);
„ Drawnow” służy do aktualizacji reprezentacji graficznej w czasie rzeczywistym.
Drawnow
Aby wyświetlić wartość temperatury w polu edycyjnym co sekundę stosuje się poniższe polecenie, set (handles.edit1, 'String', num2str (temp));
Wymagany materiał
- Zainstalowany laptop MATLAB (preferencja: wersje R2016a lub nowsze)
- Arduino UNO
- LM35 - czujnik temperatury
- Podłączanie przewodów
- Płytka prototypowa
Schemat obwodu
Wykreśl wykres za pomocą MATLAB
Po ustawieniu sprzętu zgodnie ze schematem obwodu, wystarczy kliknąć przycisk Uruchom, aby uruchomić edytowany kod w pliku.m
MATLAB może odpowiedzieć kilka sekund, nie klikaj żadnych przycisków GUI, dopóki MATLAB nie wyświetli komunikatu o zajętości w lewym dolnym rogu, jak pokazano poniżej,
Kiedy wszystko będzie gotowe, kliknij przycisk Start, a zaczniesz pobierać dane temperatury w obszarze graficznym iw polu Edytuj tekst . Wartość będzie aktualizowana automatycznie co jedną sekundę. Ten interwał wynoszący jedną sekundę można odpowiednio zmienić w kodzie MATLAB.
Wynik będzie wyglądał jak na poniższym obrazku,
W ten sposób możesz wykreślić wykres dla dowolnej wartości przychodzącej z Arduino za pomocą MATLAB.
Sprawdź poniższy film demonstracyjny, aby dobrze zrozumieć.