- Tạo giao diện người dùng đồ họa MATLAB để vẽ đồ thị
- Mã MATLAB để vẽ biểu đồ
- Vật liệu cần thiết
- Sơ đồ mạch
- Vẽ đồ thị bằng MATLAB
Biểu đồ luôn hữu ích để trực quan hóa dữ liệu và rất dễ dàng tìm thấy các xu hướng và mẫu bằng cách nhìn vào chúng. Có rất nhiều phần mềm để vẽ đồ thị dựa trên các giá trị đầu vào, hôm nay chúng ta sẽ sử dụng MATLAB để vẽ đồ thị dựa trên dữ liệu nhiệt độ từ cảm biến LM35. Hướng dẫn này sẽ cung cấp cho bạn ý tưởng cơ bản về cách vẽ biểu đồ thời gian thực bằng MATLAB. Arduino Uno được sử dụng ở đây để lấy dữ liệu nhiệt độ từ cảm biến nhiệt độ LM35.
Trước khi tiếp tục, nếu bạn chưa quen với MATLAB, bạn có thể xem các hướng dẫn về MATLAB trước đây của chúng tôi để hiểu rõ hơn:
- Bắt đầu với MATLAB: Giới thiệu nhanh
- Giao diện Arduino với MATLAB - Đèn LED nhấp nháy
- Giao tiếp nối tiếp giữa MATLAB và Arduino
- Điều khiển động cơ DC bằng MATLAB và Arduino
- Điều khiển động cơ bước bằng MATLAB và Arduino
Tạo giao diện người dùng đồ họa MATLAB để vẽ đồ thị
Đầu tiên chúng ta phải xây dựng GUI (Giao diện người dùng đồ họa) cho Vẽ đồ thị với dữ liệu nhiệt độ. Để khởi chạy GUI, hãy nhập lệnh dưới đây vào cửa sổ lệnh
hướng dẫn
Một cửa sổ bật lên sẽ mở ra, sau đó chọn GUI trống mới như được hiển thị trong hình ảnh bên dưới,
Bây giờ chúng ta phải chọn một nút nhấn, hai trục và một hộp văn bản cho giao diện đồ họa MATLAB . Nút ấn sẽ được sử dụng để bắt đầu cảm biến nhiệt độ, hai trục để vẽ biểu đồ và hộp Văn bản để hiển thị giá trị hiện tại của nhiệt độ.
Để thay đổi kích thước hoặc thay đổi hình dạng của nút, Trục hoặc nút chỉnh sửa văn bản, chỉ cần nhấp vào nó và bạn sẽ có thể kéo các góc của nút. Bằng cách nhấp đúp vào bất kỳ nút nào trong số này, bạn sẽ có thể thay đổi màu, chuỗi và thẻ của nút cụ thể đó. Sau khi tùy chỉnh nó sẽ như thế này
Bạn có thể tùy chỉnh các nút theo sự lựa chọn của mình. Bây giờ khi bạn lưu nó, một mã sẽ được tạo trong cửa sổ Editor của MATLAB. Để làm cho Arduino của bạn thực hiện bất kỳ tác vụ cụ thể nào liên quan đến dự án của bạn, bạn luôn phải chỉnh sửa mã được tạo này. Vì vậy, dưới đây chúng tôi đã chỉnh sửa mã MATLAB. Bạn có thể tìm hiểu thêm về Cửa sổ lệnh, cửa sổ trình soạn thảo, v.v. trong hướng dẫn Bắt đầu với MATLAB.
Mã MATLAB để vẽ biểu đồ
Mã MATLAB hoàn chỉnh để thiết kế nhiệt kế sử dụng LM35 và Arduino, được đưa ra ở phần cuối của dự án này. Hơn nữa, chúng tôi bao gồm tệp GUI (.fig) và tệp mã (.m) tại đây để tải xuống, sử dụng tệp này bạn có thể tùy chỉnh các nút hoặc kích thước Axes theo yêu cầu của bạn. Chúng tôi đã chỉnh sửa mã được tạo như được giải thích bên dưới.
Sao chép và dán đoạn mã dưới đây vào dòng số. 74 để đảm bảo rằng Arduino đang nói chuyện với MATLAB mỗi khi bạn chạy m-file .
Làm sạch tất cả; toàn cầu a; a = arduino ();
Khi cuộn xuống, bạn sẽ thấy có hai chức năng được tạo cho Nút nhấn và Chỉnh sửa văn bản trong GUI, không có chức năng nào được tạo cho Axes. Bây giờ viết mã trong chức năng Pushbutton (nút bắt đầu) theo tác vụ bạn muốn thực hiện.
Trong chức năng của nút Bắt đầu , sao chép và dán đoạn mã dưới đây ngay trước khi kết thúc chức năng để bắt đầu cảm biến nhiệt độ. Để liên tục cảm nhận, hiển thị và vẽ biểu đồ nhiệt độ, chúng tôi đang sử dụng vòng lặp while . Chúng tôi đã cung cấp thời gian tạm dừng 1 giây sau mỗi lần lặp để giá trị nhiệt độ sẽ được cập nhật mỗi giây.
x = 0; go = true; toàn cầu a; giá trị trong khi go = readVoltage (a, 'A1'); temp = (giá trị * 100); disp (tạm thời); x =; plot (handle.axes1, x); lưới điện trên; xlabel ('Thời gian (giây)') ylabel ('Nhiệt độ (° C)'); title ('Đồ thị nhiệt độ thời gian thực'); drawnow set (handle.edit1, 'String', num2str (temp)); tạm dừng (1); kết thúc
Bây giờ, hãy xem mã hoạt động như thế nào. Trong dưới ba dòng dòng, chúng tôi đã thiết lập các giá trị ban đầu của ' x ' để không, xác định ' đi ' như thật để bắt đầu trong khi vòng lặp và tuyên bố ' một thế giới' để gọi các Arduino trong hàm.
x = 0; go = true; toàn cầu a;
Dòng mã bên dưới được sử dụng để cảm nhận giá trị điện áp từ chân tương tự A1 của Arduino được kết nối với chân 'OUT' của Cảm biến nhiệt độ LM35. Đầu ra sẽ là giá trị điện áp không phải là giá trị tương tự.
value = readVoltage (a, 'A1');
Ở đây chúng ta có thể chuyển đổi trực tiếp giá trị điện áp thành giá trị nhiệt độ (độ C), bằng cách nhân nó với 10
temp = (giá trị * 100);
Bây giờ, để vẽ đồ thị , người ta sử dụng hàm 'plot (handle.axes1, x)' của biểu đồ, trong đó axis1 là tham chiếu hoặc tên của vùng Đồ thị. Vì vậy, nếu bạn đang vẽ nhiều hơn một biểu đồ thì bạn chỉ cần thay đổi tên của các trục, giống như nếu bạn vẽ một biểu đồ khác, bạn có thể viết biểu đồ (handle.axes2, x) '
'Grid on' được sử dụng để Trên chế độ xem Grid của biểu đồ , 'xlabel', 'ylabel' và ' title ' được sử dụng để đặt tên cho trục x, trục y và tiêu đề.
plot (handle.axes1, x); lưới điện trên; xlabel ('Thời gian (giây)') ylabel ('Nhiệt độ (° C)'); title ('Đồ thị nhiệt độ thời gian thực');
' Drawnow' được sử dụng để cập nhật biểu diễn đồ họa trong thời gian thực.
drawnow
Để hiển thị giá trị của nhiệt độ trong hộp văn bản chỉnh sửa ở mỗi giây, lệnh dưới đây được sử dụng, set (handle.edit1, 'String', num2str (temp));
Vật liệu cần thiết
- Máy tính xách tay đã cài đặt MATLAB (Tùy chọn: phiên bản R2016a trở lên)
- Arduino UNO
- LM35 - Cảm biến nhiệt độ
- Kết nối dây
- Breadboard
Sơ đồ mạch
Vẽ đồ thị bằng MATLAB
Sau khi thiết lập phần cứng theo sơ đồ mạch, chỉ cần nhấp vào nút chạy để chạy mã đã chỉnh sửa trong tệp.m
MATLAB có thể mất vài giây để phản hồi, không nhấp vào bất kỳ nút GUI nào cho đến khi MATLAB hiển thị thông báo bận ở góc dưới bên trái như hình dưới đây,
Khi mọi thứ đã sẵn sàng, hãy nhấp vào nút bắt đầu và bạn sẽ bắt đầu nhận được dữ liệu nhiệt độ trên Vùng đồ họa và trong hộp Chỉnh sửa Văn bản . Giá trị sẽ tự động cập nhật sau mỗi giây. Khoảng thời gian một giây này, bạn có thể thay đổi mã MATLAB cho phù hợp.
Đầu ra sẽ giống như hình bên dưới,
Đây là cách bạn có thể vẽ biểu đồ cho bất kỳ giá trị nào đến từ Arduino bằng MATLAB.
Kiểm tra video trình diễn dưới đây để hiểu đúng.