- Skapa MATLAB grafiskt användargränssnitt för att plotta diagram
- MATLAB-kod för ritning av diagrammet
- Material krävs
- Kretsschema
- Plotta diagrammet med MATLAB
Grafer är alltid till hjälp för att visualisera data och det blir väldigt enkelt att hitta trender och mönster genom att titta på dem. Det finns många program som är tillgängliga för att plotta diagram baserat på inmatningsvärdena, idag använder vi MATLAB för att plotta diagram baserat på temperaturdata från LM35-sensorn. Denna handledning ger dig en grundläggande uppfattning om hur man ritar diagram i realtid med hjälp av MATLAB. Arduino Uno används här för att få temperaturdata från LM35 temperatursensor.
Innan du fortsätter, om du är ny på MATLAB kan du kolla in våra tidigare MATLAB-självstudier för bättre underdrift:
- Komma igång med MATLAB: En snabb introduktion
- Gränssnitt Arduino med MATLAB - Blinkande LED
- Seriekommunikation mellan MATLAB och Arduino
- DC-motorstyrning med MATLAB och Arduino
- Stegmotorstyrning med MATLAB och Arduino
Skapa MATLAB grafiskt användargränssnitt för att plotta diagram
Först måste vi bygga GUI (grafiskt användargränssnitt) för att plotta en graf med temperaturdata. För att starta GUI, skriv kommandot nedan i kommandofönstret
guide
Ett popup-fönster öppnas och välj sedan nytt tomt GUI som visas i bilden nedan.
Nu måste vi välja en tryckknapp, två axlar och en textruta för MATLAB grafiska gränssnitt . Tryckknappen används för att starta temperaturavkänningen, två axlar för att plotta grafen och textrutan för att visa det aktuella temperaturvärdet.
För att ändra storlek eller ändra formen på knappen, axlarna eller redigera textknappen, klicka bara på den så kan du dra hörnen på knappen. Genom att dubbelklicka på någon av dessa kommer du att kunna ändra färg, sträng och tagg för just den knappen. Efter anpassning kommer det att se ut så här
Du kan anpassa knapparna enligt ditt val. Nu när du sparar detta genereras en kod i MATLABs redigeringsfönster. För att få din Arduino att utföra en viss uppgift relaterad till ditt projekt måste du alltid redigera den genererade koden. Så nedan har vi redigerat MATLAB-koden. Du kan lära dig mer om kommandofönster, redigeringsfönster etc i Komma igång med MATLAB-handledning.
MATLAB-kod för ritning av diagrammet
Komplett MATLAB-kod för design av en termometer med LM35 och Arduino ges i slutet av detta projekt. Vidare inkluderar vi GUI-filen (.fig) och kodfilen (.m) här för nedladdning, med vilken du kan anpassa knapparna eller axelstorleken enligt dina behov. Vi har redigerat den genererade koden enligt nedan.
Kopiera och klistra in koden nedan på rad nr. 74 för att se till att Arduino pratar med MATLAB varje gång du kör m-filen .
Rensa alla; global a; a = arduino ();
När du rullar ner ser du att det finns två funktioner skapade för tryckknapp och redigera text i GUI, ingen funktion skapas för axlar. Skriv nu koden i tryckknappen (startknappen) enligt den uppgift du vill utföra.
I Start- knappens funktion, kopiera och klistra in koden nedan strax före slutet av funktionen för att starta temperaturavkänningen. För kontinuerlig avkänning, visning och grafisk ritning av temperaturen använder vi en loop . Vi har tillhandahållit en paus på 1 sekund efter varje iteration så att temperaturvärdet uppdateras varje sekund.
x = 0; gå = sant; global a; while go value = readVoltage (a, 'A1'); temp = (värde * 100); disp (temp); x =; plot (handtag. axlar1, x); rutnät på; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); titel ('Diagram i realtidstemperatur'); drawow set (handles.edit1, 'String', num2str (temp)); pausa (1); slutet
Nu kan vi se hur koden fungerar. I under tre rader linje vi har satt det ursprungliga värdet av ' x ' till noll, som definierar ' gå ' som sant att starta medan slingan och förklarade ' global a' för att ringa Arduino i funktion.
x = 0; gå = sant; global a;
Nedanstående kod används för att känna av spänningsvärdet från den analoga stift A1 på Arduino som är ansluten till 'OUT' -stiften på LM35-temperatursensorn. Utgången kommer att vara spänningsvärdet, inte det analoga värdet.
värde = readVoltage (a, 'A1');
Här kan vi direkt konvertera spänningsvärdet till temperaturvärdet (grad Celsius) genom att multiplicera det med 10
temp = (värde * 100);
För att plotta grafen används funktionen 'plot (handles.axes1, x)' , där axlar1 är referensen eller namnet på Graph-området. Så om du planerar mer än ett diagram måste du bara ändra axelns namn, som om du plottar ett annat diagram kan du skriva plot (handles.axes2, x) '
'Rutnät på' används för att I rutnätet i diagrammet används 'xlabel', 'ylabel' och ' title ' för att namnge x-axeln, y-axeln och titeln.
plot (handtag. axlar1, x); rutnät på; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); titel ('Diagram i realtidstemperatur');
' Drawnow' används för att uppdatera den grafiska representationen i realtid.
dras
För att visa temperaturvärdet i redigeringstextrutan vid varje sekund nedan används kommandot, set (handles.edit1, 'String', num2str (temp));
Material krävs
- MATLAB installerad bärbar dator (preferens: R2016a eller högre versioner)
- Arduino UNO
- LM35 - Temperatursensor
- Anslutande ledningar
- Bakbord
Kretsschema
Plotta diagrammet med MATLAB
Efter att ha ställt in hårdvaran enligt kretsschemat, klicka bara på kör-knappen för att köra den redigerade koden i.m-filen
MATLAB kan ta några sekunder att svara, klicka inte på några GUI-knappar förrän MATLAB visar upptaget meddelande i det nedre vänstra hörnet som visas nedan,
När allt är klart klickar du på startknappen så börjar du få temperaturdata i det grafiska området och i rutan Redigera text . Värdet uppdateras automatiskt varannan sekund. Detta intervall på en sekund kan du ändra i MATLAB-koden i enlighet med detta.
Utgången ser ut som bilden nedan,
Så här kan du plotta diagrammet för alla inkommande värden från Arduino med MATLAB.
Kontrollera demonstrationsvideon nedan för korrekt förståelse.