- Oprettelse af MATLAB grafisk brugergrænseflade til tegning af graf
- MATLAB-kode til tegning af grafen
- Nødvendigt materiale
- Kredsløbsdiagram
- Plot grafen med MATLAB
Grafer er altid nyttige til at visualisere dataene, og det bliver meget let at finde tendenser og mønstre ved at se på dem. Der er mange software tilgængelige til at plotte grafer baseret på inputværdierne, i dag bruger vi MATLAB til at plotte graf baseret på temperaturdataene fra LM35-sensoren. Denne vejledning giver dig en grundlæggende idé om, hvordan man tegner realtidsgraf ved hjælp af MATLAB. Arduino Uno bruges her til at hente temperaturdata fra LM35 temperaturføler.
Inden du går videre, hvis du er ny hos MATLAB, kan du tjekke vores tidligere MATLAB-vejledninger for bedre undervisning:
- Kom godt i gang med MATLAB: En hurtig introduktion
- Interfacing Arduino med MATLAB - Blinkende LED
- Seriel kommunikation mellem MATLAB og Arduino
- DC-motorstyring ved hjælp af MATLAB og Arduino
- Stepper Motor Control ved hjælp af MATLAB og Arduino
Oprettelse af MATLAB grafisk brugergrænseflade til tegning af graf
Først skal vi bygge GUI (grafisk brugergrænseflade) til at plotte en graf med temperaturdataene. For at starte GUI skal du skrive nedenstående kommando i kommandovinduet
guide
Et popup-vindue åbnes, og vælg derefter en ny tom GUI som vist i billedet nedenfor,
Nu skal vi vælge en trykknap, to akser og en tekstboks til den grafiske MATLAB-grænseflade . Tryk på knappen bruges til at starte temperaturfølingen, to akser til at tegne grafen og tekstfeltet for at vise den aktuelle temperaturværdi.
For at ændre størrelse eller for at ændre formen på knappen, akserne eller rediger tekstknappen skal du blot klikke på den og du kan trække hjørnerne på knappen. Ved at dobbeltklikke på en af disse vil du kunne ændre farve, streng og tag på den pågældende knap. Efter tilpasning vil det se sådan ud
Du kan tilpasse knapperne efter eget valg. Når du nu gemmer dette, genereres en kode i Editor-vinduet i MATLAB. For at få din Arduino til at udføre en bestemt opgave relateret til dit projekt, skal du altid redigere denne genererede kode. Så nedenfor har vi redigeret MATLAB-koden. Du kan lære mere om kommandovindue, editorvindue osv. I Kom godt i gang med MATLAB-vejledning.
MATLAB-kode til tegning af grafen
Komplet MATLAB-kode til design af et termometer ved hjælp af LM35 og Arduino findes i slutningen af dette projekt. Yderligere inkluderer vi GUI-filen (.fig) og kodefilen (.m) her til download, ved hjælp af hvilken du kan tilpasse knapperne eller aksestørrelsen efter dine behov. Vi har redigeret den genererede kode som forklaret nedenfor.
Kopier og indsæt nedenstående kode på linjenr. 74 for at sikre, at Arduino taler med MATLAB, hver gang du kører m-filen .
Slet alt; global a; a = arduino ();
Når du ruller nedad, vil du se, at der er to funktioner oprettet til trykknap og rediger tekst i GUI, der oprettes ingen funktion for akser. Skriv nu koden i trykknappen (startknap) -funktionen i henhold til den opgave, du vil udføre.
I Start -knap funktion, kopiere og indsætte nedenstående kode lige før slutter af funktionen for at starte temperaturfølende. Til kontinuerlig registrering, visning og grafisk afbildning af temperaturen bruger vi mens sløjfe . Vi har givet pause på 1 sekund efter hver iteration, så temperaturværdien opdateres hvert sekund.
x = 0; gå = sandt; global a; mens go værdi = readVoltage (a, 'A1'); temp = (værdi * 100); disp (temp); x =; plot (håndtag. akser1, x); gitter på; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); titel ('Realtids temperaturgraf'); trukket sæt (handles.edit1 , 'String', num2str (temp)); pause (1); ende
Lad os nu se, hvordan koden fungerer. I nedenstående tre linjelinjer har vi sat den indledende værdi af ' x ' til nul, og defineret ' gå ' som sandt for at starte mens sløjfen og erklæret ' global' for at kalde Arduino i funktionen.
x = 0; gå = sandt; global a;
Nedenstående kodelinje bruges til at registrere spændingsværdien fra den analoge pin A1 på Arduino, som er forbundet til 'OUT' -stiften på LM35-temperatursensoren. Outputtet vil være spændingsværdien, ikke den analoge værdi.
værdi = readVoltage (a, 'A1');
Her kan vi konvertere spændingsværdien direkte til temperaturværdien (grad Celsius) ved at gange den med 10
temp = (værdi * 100);
For at tegne grafen bruges funktionen 'plot (handles.axes1, x)' , hvor akser1 er referencen eller navnet på Graph-området. Så hvis du tegner mere end en graf, skal du bare ændre navnet på akserne, som hvis du tegner en anden graf, kan du skrive plot (handles.axes2, x) '
'Gitter på' bruges til På gittervisningen i grafen bruges 'xlabel', 'ylabel' og ' title ' til navngivning af x-akse, y-akse og titel.
plot (håndtag. akser1, x); gitter på; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); titel ('Realtids temperaturgraf');
' Drawnow' bruges til at opdatere den grafiske repræsentation i realtid.
trukket
For at få vist værdien af temperaturen i redigeringsfeltet ved hvert sekund benyttes kommandoen, sæt (handles.edit1, 'String', num2str (temp));
Nødvendigt materiale
- MATLAB installeret bærbar computer (præference: R2016a eller nyere versioner)
- Arduino UNO
- LM35 - Temperatursensor
- Tilslutning af ledninger
- Brødbræt
Kredsløbsdiagram
Plot grafen med MATLAB
Efter at have indstillet hardwaren i henhold til kredsløbsdiagrammet, skal du blot klikke på knappen Kør for at køre den redigerede kode i.m-filen
MATLAB kan tage et par sekunder at svare, klik ikke på nogen GUI-knapper, før MATLAB viser beskæftiget besked i nederste venstre hjørne som vist nedenfor,
Når alt er klar, skal du klikke på startknappen og du vil begynde at få temperaturdataene på det grafiske område og i feltet Rediger tekst . Værdien opdateres automatisk hvert sekund. Dette interval på et sekund kan du ændre i MATLAB-koden i overensstemmelse hermed.
Outputtet ser ud som billedet vist nedenfor,
Sådan kan du tegne grafen for enhver indgående værdi fra Arduino ved hjælp af MATLAB.
Tjek demonstrationsvideoen nedenfor for korrekt forståelse.