Hiển thị Led 7 thanh trên GUI Matlab

May 28, 2008

Chào các bạn.

Mình cũng đang làm cái giao diện cho đồ án tốt nghiệp và có tìm kiếm source Matlab cho Led7 thanh và tìm được một project rất hay. Từ đó, có thể nhúng vào trong GUI của mình.

Các bạn có thể xem Project đó tại đây.

Demo cái hình trông cho hoành tráng he he.

Khi các bạn download file mã nguồn về thì copy các file và thư mục sau vào Project GUI của bạn: led7.m và thư mục @led.

Để sử dụng, các bạn có thể xem và chạy file demo_led7.m, tuy nhiên mình sẽ hướng dẫn luôn vậy.

Để tạo ra đối tượng LED7 thì có 2 cách:

1. Cách tạo với các giá trị mặc định của nó, còn lại thì thay đổi sau:

h1 = led7;

2. Tạo với các tham số do mình đặt vào:

% The second will define position, color, and value:
h2 = led7('pos',[.1 .2 .8 .2], ...
'digits',8, ...
'value',pi, ...
'offcolor',[0 .2 0], ...
'oncolor',[0 1 0], ...
'format','%6.4f');

Trong đó,

  • Thuộc tính pos là vị trí của led sẽ hiển thị, nó gồm [x y width high] nhưng tính theo tỉ lệ % so với điều khiển tạo lên đối tượng LED này. Ví dụ: x = 0, y = 0 thì nó sẽ nằm ở góc bên trái phía dưới.
  • Digits là số chữ số sẽ hiển thị lên.
  • Value: giá trị hiện lên các led
  • Format: chọn kiểu hiển thị. Trên đây là kiểu float với dấu phảy tĩnh gồm 6 số phần nguyên và 4 số ở phần thập phân.

Như vậy, dựa vào ý nghĩa các tham sô ta có thể thay đổi tùy ý các giá trị này bằng các hàm set và get như với các điều khiển bình thường.

Ví dụ, nếu mình muốn nó hiện lên giá trị = 100 thì dùng lệnh:

set(handles.h2, 'value', 100)

Tuy nhiên, như thế thì sẽ chẳng bao giờ làm được vì nó sẽ báo lỗi rằng h2 không có trong cấu trúc handles.

Handles là một cấu trúc chứa các điều khiển. Ta dùng cấu trúc này để lưu lại object này để còn dùng khi khác.

handles.h2 = h2;              % tạo biến trong handles tên là h2
guidata(hObject,handles); % lưu cấu trúc handles vào

Nên mỗi lần cần thao tác với đối tượng này, thì cần phải gọi nó ra.

h2 = handles.h2;

Và nhớ không quên ghi lại vào nếu có bất kì thay đổi gì với đối tượng này.

Và điều chú ý cuối cùng: để hiển thị led ngay từ đầu thì nên viết vào trong hàm OpenFcn của GUI, khi GUI khởi động thì LED đã hiển thị rồi. Khởi tạo LED7 trong OpenFcn và đồng thời ghi luôn một trường vào handles để tránh tình trạng gọi trường đó mà chưa tạo ra.

led_R12.1.zip

Các bài viết liên quan:

  1. Thủ thuật Matlab – Lấy lại số liệu trên Scope và hiển thị trên đồ thị Chắc hẳn các bạn làm việc với Matlab – Simulink đã làm quen với khối Scope trong thư viện Sinks, khối này khi hiển thị mô phỏng với thời gian tương đối dài thì chúng ta khó lòng thu lại được đường đặc tính của nó. Khi chụp thẳng hình này thì sẽ toàn màu [...]...
  2. Vẽ đồ thị trong Matlab Mình đang làm đồ án về đề tài giao tiếp máy tính và vđk qua công com, mình có 1 thắc mắc mong được các bạn chỉ giáo: khi dữ liệu được truyền vào máy tính thì có sự kiện BytesAvailable, mình viết hàm serial_Callback() để đọc dữ liệu này như sau: function serial_CallBack(obj,event) inval=fread(obj,1); [...]...
  3. Lập trình giao diện GUI trong Matlab (Phần 1) Mình viết bài này để tổng hợp lại các hướng dẫn về thiết kế giao diện GUI trong Matlab để các bạn dễ dàng thực hiện. Phần mềm: Matlab R2007a Bài đầu tiên mình sẽ giới thiệu các bạn giao diện GUI. 1. Mở phần mềm Matlab, gõ lệnh sau vào cửa sổ Command >> [...]...
  4. Cách trao đổi dữ liệu hiệu quả giữa các hàm Callback của GUI Chào các bạn. Một vấn đề mà các bạn hay gặp phải khi thực hiện lập trình giao diện GUI là trao đổi dữ liệu giữa các hàm Callback hay của chính hàm Callback đó. Ví dụ: bạn làm sao biết hàm Callback này chạy được bao nhiêu lần ?? Nếu bạn muốn thực hiện [...]...
  5. Các tính chất của các điều khiển trong GUIDE Matlab Chào các bạn. Mình xin gửi các bạn tài liệu Matlab 7 – Creating Graphical User Interfaces, là tài liệu dạng .pdf của tài liệu trong Help của Matlab. Các bạn nào có thể tự đọc hiểu được English thì tài liệu này là quá đầy đủ rồi. Các bài viết của mình dựa một [...]...
  6. Tạo file .exe trong Matlab dùng Matlab Compiler Có nhiều bạn khá băn khoăn về việc dịch một ứng dụng trong Matlab ra file .exe để chạy độc lập trên các máy không cài Matlab đúng không ?? Hay là cách để đóng gói sản phẩm của mình thì nên làm thế nào ? Để có thể dịch ra file .exe yêu cầu [...]...

{ 5 comments… read them below or add one }

1 toinhatminh August 5, 2009 at 10:35 pm

Chao anh Bac,anh Bac co the huong dan 1 cach chi tiet duoc ko ha anh Bac .Tren giao dien gui minh se chon cai edittext hay pop_up menu…
Minh tim trong Help dung tu khoa j noi ve cai led 7 doan nay vay anh bac ,anh Bac chi em chi tiet hon 1 ti duoc ko .CAM ON ANH BAC NHIEU
cHUC ANH SUC KHOE

Reply

2 vinh December 13, 2009 at 4:01 pm

Chào anh Bắc. Xin anh hướng dẫn giùm em cách tạo calculator trong guide nhưng mà hiển thị số trên Led 7 đoạn. Em đã đọc bài của anh với lại down luôn M-file rồi mà ko hiểu. Mong anh chỉ dẫn giùm. Em cần gấp lắm. Có gì anh liên lạc bằng mail: inu_yasha_90dn@yahoo.com (ĐT : 0912880844 hoặc 0974870116). Em cảm ơn anh nhiều !!!!!!!!!!!!!

Reply

3 cool boy January 4, 2010 at 2:40 am

sao em load file (led_R12.1.zip) ko dc vay anh. Neu dc anh goi truc tiep wa mail dum em! cam on anh nhieu

Reply

4 cool boy January 4, 2010 at 2:41 am
5 dan thanh June 15, 2010 at 2:21 pm

em khong dow duoc project nay,anh co the gui wa mail cho em voi nhe,thanhs.

Reply

Leave a Comment

CommentLuv Enabled

Previous post:

Next post: