Lập trình Arduino không cần viết code - Phần 11: Tạo hàm riêng

Đây là phần 11 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 10 tại đây

[UPDATE] Tải phiên bản mới của mBlock tại đây

Hôm nay, chúng ta sẽ cùng tìm hiểu về hàm và cách tạo, gọi hàm trong mBlock và Arduino.

Hàm và chức năng của hàm

Hàm cũng là một kiểu dữ liệu và là kiểu hàm(void), trong nó bao gồm các câu lệnh, các hàm khác. Khi hàm được gọi, chương trình sẽ chyaj các lệnh trong hàm ấy và sau đó tiếp tục với các lệnh đồng vị với hàm. Chức năng của nó: Thứ nhất, làm cho hàm loop gọn gàng hơn giúp ta kiểm soát được chương trình, thứ hai, ta cần chức năng của hàm nhiều lần, ví dụ nếu ta cần blink 2 lần: 1 lần chân 13, 1 lần chân 12 thì sẽ chỉ cần gọi 2 lần hàm ấy không cần phải gọi 2 lần một đống lệnh blink trong hàm.

Thực hành

Chuẩn bị

  • Arduino, uno cho dễ

Lập trình với mBlock

Đầu tiên cần tạo 1 hàm mới như hình.

Nhập tên hàm, mình muốn tạo hàm blink nên để tên là blink

Nhấn Options để thêm thông số cho hàm, mình cần thêm thông số pin để báo pin cần blink, bạn cũng có thể thêm thông số thời gian blink.

Vì pin thuộc kiểu số nên mình chọn cái đầu tiên.

Mình đổi tên thông số đầu thành pinLed, nhấn ok để tạo.

Ta lập trình cho hàm ở phần trong hình.

Mình lập trình cho nó blink chân pinLed (Khai báo ở hàm loop). Muốn lấy đối tượng pinLed thì bạn kéo nó ra ở phần define ý.

Lập trình cho hàm loop. Bây giờ mình khai báo thông số pinLed là 13 để nó blink chân 13. Bây giờ bạn có thấy hàm loop gọn không, nếu muốn blink tiếp chân 12 thì kéo thêm đối tượng blink nữa ra thay thành 12.

mBlock bị lỗi 1 chỗ nên cần chỉnh 1 tí, chọn Edit with Arduino IDE.

Trong hàm setup, ta chỉnh pinLed thành 13. Nếu blink thêm chân 12 thì tạo thêm 1 dòng pinMode(12,OUTPUT); ở hàm setup.

Up code thôi.

Lập trình với Arduino IDE

Code đây nè

void blink(byte pinLed)
{
    digitalWrite(pinLed,1);
    delay(1000);
    digitalWrite(pinLed,0);
    delay(1000);
}
void setup(){
    pinMode(13,OUTPUT);
    pinMode(12,OUTPUT);
}

void loop(){
    blink(13);
    blink(12);
}

Kết luận

Như vậy là ta vừa tìm hiểu xong hàm và cách tạo hàm. Mình hi vọng rằng chuỗi bài này sẽ giúp ích cho nhiều bạn newbie của cộng đồng. Cảm ơn đã theo dõi.

lên
12 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Giới thiệu thư viện RobotMove - Thư viện điều khiển Xe, Robot di chuyển sử dụng module L298

Xin chào mọi người! Mình cảm thấy rằng việc điều khiển cho robot hay xe sử dụng module L298 di chuyển hơi rắc rối, bởi phải điều khiển tới 4 chân, chi tiết hơn thì tới 6 chân (Thêm 2 chân enA và enB). Với lại mình cũng mới học viết thư viện nên mình đã nảy ra ý tưởng viết thư viện này. Mình bắt tay vào gõ và gõ và gõ và cuối cùng cũng thành công. Ohhhh Zeeeeee. Mừng quá nên share cho anh em xem. Đây là thư viện đầu tiên của mình và mình chỉ mới học cơ bản nên có gì sai sót mong các bác Pro đóng góp cho.

lên
22 thành viên đã đánh giá bài viết này hữu ích.

Lập trình Arduino không cần viết code - Phần 3: Chuyển đổi công nghệ, công nghệ khác tốt hơn

Đây là phần 3 của chuỗi bài "Lập trình Arduino không cần viết code".

Xem lại phần 2 tại đây.

Sau vài lần sử dụng phần mềm miniBloq, mình cảm thấy nó còn khá nhiều điểm yếu như có ít đối tượng lệnh nên còn một vài lệnh phải gõ tay hay câu lệnh không thống nhất với Arduino IDE (như trong arduino, lệnh digitalWrite() còn trong miniBloq thì là DigitalWrite),.. Nên mình đã lao đầu lên mạng tìm xem còn phần mềm nào khác tương tự không và mình đã tìm thấy một phần mềm hay hơn nhiều. Đó là mBlock. Và đã đến lúc chúng ta chuyển đổi công nghệ.

lên
47 thành viên đã đánh giá bài viết này hữu ích.