- Opprette MATLAB grafisk brukergrensesnitt for å plotte graf
- MATLAB-kode for å tegne grafen
- Nødvendig materiale
- Kretsdiagram
- Plott grafen med MATLAB
Grafer er alltid nyttige for å visualisere dataene, og det blir veldig enkelt å finne trender og mønstre ved å se på dem. Det er mange programvare tilgjengelig for å plotte grafer basert på inngangsverdiene, i dag vil vi bruke MATLAB til å plotte graf basert på temperaturdataene fra LM35-sensoren. Denne opplæringen vil gi deg en grunnleggende ide om hvordan du tegner sanntidsgraf ved hjelp av MATLAB. Arduino Uno brukes her for å få temperaturdata fra LM35 temperatursensor.
Før du fortsetter videre, hvis du er fersk i MATLAB, kan du sjekke våre tidligere MATLAB-opplæringsprogrammer for bedre å understreke:
- Komme i gang med MATLAB: En rask introduksjon
- Grensesnitt Arduino med MATLAB - Blinkende LED
- Seriekommunikasjon mellom MATLAB og Arduino
- DC-motorstyring ved bruk av MATLAB og Arduino
- Stepper Motor Control ved hjelp av MATLAB og Arduino
Opprette MATLAB grafisk brukergrensesnitt for å plotte graf
Først må vi bygge GUI (grafisk brukergrensesnitt) for å plotte en graf med temperaturdataene. For å starte GUI, skriv kommandoen nedenfor i kommandovinduet
guide
Et popup-vindu åpnes, og velg deretter nytt tomt GUI som vist i bildet nedenfor,
Nå må vi velge en trykknapp, to akser og en tekstboks for MATLAB grafisk grensesnitt . Trykknapp vil bli brukt til å starte temperaturfølingen, to akser for å tegne grafen og tekstboksen for å vise den nåværende verdien av temperaturen.
For å endre størrelse eller for å endre formen på knappen, aksene eller redigere tekstknappen, klikker du bare på den, så vil du kunne dra hjørnene på knappen. Ved å dobbeltklikke på noen av disse vil du kunne endre farge, streng og merke på den aktuelle knappen. Etter tilpasning vil det se slik ut
Du kan tilpasse knappene etter eget valg. Nå når du lagrer dette, genereres en kode i Editor-vinduet til MATLAB. For å få Arduino til å utføre en bestemt oppgave relatert til prosjektet ditt, må du alltid redigere denne genererte koden. Så nedenfor har vi redigert MATLAB-koden. Du kan lære mer om kommandovindu, redigeringsvindu osv. I Komme i gang med MATLAB-opplæringen.
MATLAB-kode for å tegne grafen
Komplett MATLAB-kode for å designe et termometer ved hjelp av LM35 og Arduino, er gitt på slutten av dette prosjektet. Videre inkluderer vi GUI-filen (.fig) og kodefilen (.m) her for nedlasting, ved hjelp av hvilken du kan tilpasse knappene eller aksestørrelsen etter behov. Vi har redigert den genererte koden som forklart nedenfor.
Kopier og lim inn koden nedenfor på linje nr. 74 for å sikre at Arduino snakker med MATLAB hver gang du kjører m-filen .
slett alt; global a; a = arduino ();
Når du blar nedover, vil du se at det er to funksjoner opprettet for trykknapp og rediger tekst i GUI, ingen funksjon blir opprettet for akser. Skriv nå koden i Trykknapp (startknapp) -funksjonen i henhold til oppgaven du vil utføre.
I funksjonen til Start- knappen, kopier og lim inn koden nedenfor like før avslutningen av funksjonen for å starte temperaturfølingen. For kontinuerlig registrering, visning og grafisk tegning av temperaturen bruker vi mens sløyfe . Vi har gitt en pause på 1 sekund etter hver iterasjon, slik at temperaturverdien oppdateres hvert sekund.
x = 0; gå = sant; global a; mens go verdi = readVoltage (a, 'A1'); temp = (verdi * 100); disp (temp); x =; tomt (håndtak.akser1, x); rutenett på; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); tittel ('sanntidstemperaturgraf'); tegnesett (håndtak.rediger1, 'String', num2str (temp)); pause (1); slutt
La oss nå se hvordan koden fungerer. Under linjen med tre linjer har vi satt startverdien til ' x ' til null, og definert ' gå ' som sant for å starte mens sløyfen og erklært ' global a' for å kalle Arduino i funksjonen.
x = 0; gå = sant; global a;
Under kodelinjen brukes til å registrere spenningsverdien fra den analoge pinnen A1 på Arduino som er koblet til 'OUT' -stiften til LM35-temperatursensoren. Utgangen vil være spenningsverdien, ikke den analoge verdien.
verdi = readVoltage (a, 'A1');
Her kan vi konvertere spenningsverdien direkte til temperaturverdien (grad Celsius), ved å multiplisere den med 10
temp = (verdi * 100);
For å tegne grafen brukes funksjonen 'plot (handles.axes1, x)' , der akser1 er referansen eller navnet på Graph-området. Så hvis du plotter mer enn en graf, er det bare å endre navnet på aksene, som om du plotter en annen graf, kan du skrive plott (handles.axes2, x) '
'Rutenett på' brukes til På rutenettvisningen i grafen brukes 'xlabel', 'ylabel' og ' title ' for å navngi x-aksen, y-aksen og tittelen.
tomt (håndtak.akser1, x); rutenett på; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); tittel ('sanntidstemperaturgraf');
' Drawnow' brukes til å oppdatere den grafiske representasjonen i sanntid.
tegnet
For å vise verdien av temperaturen i redigeringsboksen i hvert sekund under kommandoen, sett (handles.edit1, 'String', num2str (temp));
Nødvendig materiale
- MATLAB installert bærbar PC (preferanse: R2016a eller høyere versjoner)
- Arduino UNO
- LM35 - Temperatursensor
- Koble ledninger
- Brettbrett
Kretsdiagram
Plott grafen med MATLAB
Etter å ha satt maskinvaren i henhold til kretsskjemaet, er det bare å klikke på Run-knappen for å kjøre den redigerte koden i.m-filen
MATLAB kan ta noen sekunder å svare, ikke klikk på noen GUI-knapper før MATLAB viser opptatt melding i nedre venstre hjørne som vist nedenfor,
Når alt er klart, klikker du på startknappen, så begynner du å få temperaturdataene på det grafiske området og i boksen Rediger tekst . Verdien oppdateres automatisk hvert sekund. Dette intervallet på ett sekund kan du endre i MATLAB-koden tilsvarende.
Utgangen vil se ut som bildet nedenfor,
Slik kan du tegne grafen for innkommende verdier fra Arduino ved hjelp av MATLAB.
Sjekk demonstrasjonsvideoen nedenfor for riktig forståelse.