Tự động hóa

Arduino: Hàm trong arduino

 



Các loại chương trình con

Hàm: trả về một giá trị nào đó.VD: hàm tính tổng.

Thủ tục: dùng để thực hiện một hay nhiều nhiệm vụ nào đó

1- Khai báo hàm

 <Kiểu_trả_về>  <tên_hàm> ( [khai báo các tham số hình thức]) 

{

            [Khai báo các biến cục bộ]

            [Các câu lệnh]

            [return[biểu thức];]     

2- Gọi hàm: <tên_hàm> (danh sách các tham số thực)


Giờ ta thử một ví dụ. Với ví dụ đèn led nhấp nháy cho đơn giản nhé. Nếu bình thường các bạn sẽ viết code như sau: 

#include <Arduino.h>
int ledPIN = 13;

void setup() {
    Serial.begin(9600);
    pinMode(ledPIN, OUTPUT);
}

void loop() {
    digitalWrite(ledPIN, 1)
    delay(500);
    digitalWrite(ledPIN, 0)
    delay(500);
}

Nhưng thử update code sịn sò hơn bằng hàm xem sao. Ta sẽ gom toàn bộ đoạn tạo băm xung vào một hàm, và định nghĩa nó là hàm denNhay để sau này có thể sử dụng lại, mà không cần gọi nhiều lần.

#include <Arduino.h>
int ledPIN = 13;

void setup() {
    Serial.begin(9600);
    pinMode(ledPIN, OUTPUT);
}

void loop() {
    denNhay();

}

void denNhay(){
    digitalWrite(ledPIN, 1)
    delay(500);
    digitalWrite(ledPIN, 0)
    delay(500);
}

Với cách viết này, ở trong void loop chỉ cần gọi một lần denNhay thay cho nhiều dòng phải gõ. Đây là hàm không có tham số thôi nhé. Ta lại thử nâng cấp code lên một chút nữa cho sịn. Biến ledPin thành một biến, và delay time = 500 thành một biến, và truyền giá trị cho nó. 

#include <Arduino.h>
int ledPIN = 13;

void setup() {
    Serial.begin(9600);
    pinMode(ledPIN, OUTPUT);
}

void loop() {
    denNhay(13, 500);

}

void denNhay(byte pinNumberbyte delayTime){
    digitalWrite(pinNumber1)
    delay(delayTime);
    digitalWrite(pinNumber0)
    delay(delayTime);
}

Với cách viết này, ta để ý ở void loop hàm đèn nháy ta truyền pin vào chân 13, và delay time là 500
denNhay(13, 500);

Giờ đến một ví dụ khác về hàm, hàm có giá trị kiểu số thực int, ta sẽ áp dụng bài tính tổng.
void setup() {
    Serial.begin(9600);
}

void loop() {
    int sum = tinhTong(10,5); // 10 và 5 là hai số được truyền vào.
    Serial.printlnString("Tổng hai số là: "+ sum);
}

int tinhTong(byte soThuNhat,byte soThuHai) {
    return soThuNhat + soThuHai;
}


Kết quả in ra màn hình là 15. 


Vậy là ta đã hiểu sơ bộ về cách gọi hàm, cũng không khó đúng không các bạn. 

About Mr. Facebook

0 nhận xét:

Đăng nhận xét