- การสร้าง MATLAB Graphical User Interface สำหรับการพล็อตกราฟ
- MATLAB รหัสสำหรับการพล็อตกราฟ
- วัสดุที่จำเป็น
- แผนภูมิวงจรรวม
- พล็อตกราฟด้วย MATLAB
กราฟมีประโยชน์เสมอในการแสดงภาพข้อมูลและการค้นหาแนวโน้มและรูปแบบจะเป็นเรื่องง่ายมากโดยดูจากข้อมูลเหล่านั้น มีซอฟต์แวร์จำนวนมากสามารถใช้ได้กับพล็อตกราฟขึ้นอยู่กับค่าการป้อนข้อมูลในวันนี้เราจะใช้เป็นMATLAB เพื่อกราฟพล็อตขึ้นอยู่กับข้อมูลอุณหภูมิจากเซ็นเซอร์ กวดวิชานี้จะทำให้คุณมีความคิดพื้นฐานเกี่ยวกับวิธีการพล็อตกราฟเวลาจริงโดยใช้ MATLAB Arduino Uno ใช้ที่นี่เพื่อรับข้อมูลอุณหภูมิจากเซ็นเซอร์อุณหภูมิ LM35
ก่อนที่จะดำเนินการต่อไปหากคุณยังใหม่กับ MATLAB คุณสามารถตรวจสอบบทช่วยสอน MATLAB ก่อนหน้าของเราเพื่อให้เข้าใจได้ดีขึ้น:
- เริ่มต้นใช้งาน MATLAB: บทนำโดยย่อ
- การเชื่อมต่อ Arduino กับ MATLAB - LED กะพริบ
- การสื่อสารแบบอนุกรมระหว่าง MATLAB และ Arduino
- การควบคุมมอเตอร์ DC โดยใช้ MATLAB และ Arduino
- Stepper Motor Control โดยใช้ MATLAB และ Arduino
การสร้าง MATLAB Graphical User Interface สำหรับการพล็อตกราฟ
ก่อนอื่นเราต้องสร้าง GUI (Graphical User Interface) สำหรับ Plot a Graph ด้วยข้อมูลอุณหภูมิ ในการเปิดใช้งาน GUI ให้พิมพ์คำสั่งด้านล่างใน หน้าต่างคำสั่ง
คู่มือ
หน้าต่างป๊อปอัปจะเปิดขึ้นจากนั้นเลือก GUI เปล่า ใหม่ดังที่แสดงในภาพด้านล่าง
ตอนนี้เราต้องเลือกอย่างใดอย่างหนึ่งกดปุ่มสองแกนและกล่องข้อความหนึ่งสำหรับอินเตอร์เฟซแบบกราฟิก MATLAB ปุ่มกดจะใช้สำหรับเริ่มการตรวจจับอุณหภูมิแกนสองแกนสำหรับการพล็อตกราฟและกล่องข้อความเพื่อแสดงค่าปัจจุบันของอุณหภูมิ
หากต้องการปรับขนาดหรือเปลี่ยนรูปร่างของปุ่มแกนหรือปุ่มแก้ไขข้อความเพียงแค่คลิกที่ปุ่มแล้วคุณจะสามารถลากมุมของปุ่มได้ เมื่อดับเบิลคลิกที่สิ่งเหล่านี้คุณจะสามารถเปลี่ยนสีสตริงและแท็กของปุ่มนั้น ๆ ได้ หลังจากปรับแต่งแล้วจะมีลักษณะดังนี้
คุณสามารถปรับแต่งปุ่มตามที่คุณเลือก ตอนนี้เมื่อคุณบันทึกรหัสจะถูกสร้างขึ้นใน หน้าต่างแก้ไข ของ MATLAB เพื่อให้ Arduino ของคุณทำงานใด ๆ ที่เกี่ยวข้องกับโครงการของคุณคุณต้องแก้ไขโค้ดที่สร้างขึ้นนี้เสมอ ด้านล่างเราได้แก้ไขโค้ด MATLAB คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับหน้าต่างคำสั่งหน้าต่างตัวแก้ไขและอื่น ๆ ในการเริ่มต้นใช้งานบทช่วยสอน MATLAB
MATLAB รหัสสำหรับการพล็อตกราฟ
กรอกรหัส MATLAB สำหรับการออกแบบเครื่องวัดอุณหภูมิโดยใช้ LM35 และ Arduino ที่ระบุไว้ในตอนท้ายของโครงการนี้ นอกจากนี้เรายังรวมไฟล์ GUI (.fig) และไฟล์โค้ด (.m) ไว้ที่นี่เพื่อดาวน์โหลดซึ่งคุณสามารถปรับแต่งปุ่มหรือขนาดแกนได้ตามความต้องการของคุณ เราได้แก้ไขโค้ดที่สร้างขึ้นตามคำอธิบายด้านล่าง
คัดลอกและวางโค้ดด้านล่างในบรรทัดที่ 74 เพื่อให้แน่ใจว่า Arduino มีการพูดคุยกับ MATLAB ทุกครั้งที่คุณเรียกใช้M-ไฟล์
ลบทั้งหมด; ทั่วโลกก; a = arduino ();
เมื่อคุณเลื่อนลงคุณจะเห็นว่ามีสองฟังก์ชันที่สร้างขึ้นสำหรับ ปุ่มกด และ แก้ไขข้อความ ใน GUI โดยจะไม่มีการสร้างฟังก์ชันสำหรับแกน ตอนนี้เขียนโค้ดในฟังก์ชัน Pushbutton (ปุ่ม start) ตามงานที่คุณต้องการดำเนินการ
ในฟังก์ชันของปุ่ม เริ่ม ให้คัดลอกและวางโค้ดด้านล่างก่อนสิ้นสุดฟังก์ชันเพื่อเริ่มการตรวจจับอุณหภูมิ สำหรับการตรวจวัดอย่างต่อเนื่อง, การแสดงและการวางแผนกราฟิกของอุณหภูมิที่เราจะใช้ในขณะที่ห่วง เราได้จัดให้มีการ หยุดชั่วคราว 1 วินาทีหลังจากการทำซ้ำทุกครั้งดังนั้นค่าอุณหภูมิจะได้รับการอัปเดตทุกวินาที
x = 0; ไป = จริง; ทั่วโลกก; ในขณะที่ไปค่า = readVoltage (a, 'A1'); temp = (ค่า * 100); Disp (อุณหภูมิ); x =; พล็อต (handles.axes1, x); กริดบน; xlabel ('เวลา (วินาที)') ylabel ('อุณหภูมิ (° C)'); ชื่อเรื่อง ('กราฟอุณหภูมิแบบเรียลไทม์'); ชุดdrawow (handles.edit1, 'String', num2str (temp)); หยุดชั่วคราว (1); จบ
ตอนนี้มาดูว่าโค้ดทำงานอย่างไร ในบรรทัดด้านล่างสามบรรทัดเราได้ตั้งค่าเริ่มต้นของ ' x ' เป็นศูนย์โดยกำหนดให้ ' go ' เป็นจริงเพื่อเริ่มลูป while และประกาศ ' global a' สำหรับการเรียก Arduino ในฟังก์ชัน
x = 0; ไป = จริง; ทั่วโลกก;
บรรทัดด้านล่างของรหัสใช้เพื่อตรวจจับค่าแรงดันไฟฟ้าจากขาอะนาล็อก A1 ของ Arduinoซึ่งเชื่อมต่อกับขา 'OUT' ของเซ็นเซอร์อุณหภูมิ LM35 เอาต์พุตจะเป็นค่าแรงดันไฟฟ้าไม่ใช่ค่าอนาล็อก
ค่า = readVoltage (a, 'A1');
ที่นี่เราสามารถแปลงค่าแรงดันไฟฟ้าเป็นค่าอุณหภูมิ (องศาเซลเซียส) ได้โดยตรงโดยการคูณด้วย 10
temp = (ค่า * 100);
ตอนนี้ในการพล็อตกราฟ 'plot (handles.axes1, x)' จะถูกใช้โดยที่ axes1 คือการอ้างอิงหรือชื่อของพื้นที่กราฟ ดังนั้นหากคุณกำลังพล็อตมากกว่าหนึ่งกราฟคุณก็ต้องเปลี่ยนชื่อของแกนเช่นถ้าคุณพล็อตกราฟอื่นคุณสามารถเขียน พล็อตได้ (handles.axes2, x) '
"Grid on" ใช้ในมุมมอง Grid ของกราฟ "xlabel" "ylabel" และ " title " ใช้สำหรับการตั้งชื่อแกน x แกน y และหัวเรื่อง
พล็อต (handles.axes1, x); กริดบน; xlabel ('เวลา (วินาที)') ylabel ('อุณหภูมิ (° C)'); ชื่อเรื่อง ('กราฟอุณหภูมิแบบเรียลไทม์');
' Drawnow' ใช้เพื่ออัปเดตการแสดงกราฟิกแบบเรียลไทม์
วาดไว้
หากต้องการแสดงค่าของอุณหภูมิใน กล่องข้อความแก้ไข ทุก ๆ วินาทีด้านล่างจะใช้คำสั่ง
ชุด (handles.edit1, 'String', num2str (temp));
วัสดุที่จำเป็น
- MATLAB ติดตั้งแล็ปท็อป (ค่ากำหนด: R2016a ขึ้นไป)
- Arduino UNO
- LM35 - เซ็นเซอร์อุณหภูมิ
- การเชื่อมต่อสายไฟ
- เขียงหั่นขนม
แผนภูมิวงจรรวม
พล็อตกราฟด้วย MATLAB
หลังจากตั้งค่าฮาร์ดแวร์ตามแผนภาพวงจรแล้วเพียงคลิกที่ปุ่มเรียกใช้เพื่อเรียกใช้โค้ดที่แก้ไขในไฟล์. m
MATLAB อาจใช้เวลาไม่กี่วินาทีในการตอบสนองอย่าคลิกที่ปุ่ม GUI ใด ๆ จนกว่า MATLAB จะแสดงข้อความไม่ว่างที่มุมล่างซ้ายดังที่แสดงด้านล่าง
เมื่อทุกอย่างพร้อมแล้วคลิกที่ปุ่มเริ่มต้นและคุณจะเริ่มได้รับข้อมูลที่อุณหภูมิในพื้นที่กราฟิกและในกล่องแก้ไขข้อความ ค่านี้จะอัปเดตโดยอัตโนมัติในทุก ๆ หนึ่งวินาที ช่วงเวลาหนึ่งวินาทีนี้คุณสามารถเปลี่ยนรหัส MATLAB ได้
ผลลัพธ์จะมีลักษณะเหมือนภาพที่แสดงด้านล่าง
นี่คือวิธีที่คุณสามารถพล็อตกราฟสำหรับค่าขาเข้าจาก Arduino โดยใช้ MATLAB
ตรวจสอบวิดีโอสาธิตด้านล่างเพื่อความเข้าใจที่ถูกต้อง