TẬP HỢP CÁC HÀM THƯỜNG DÙNG TRONG LẬP TRÌNH ARDUINO (P3)

Ở bài trước Hour Of Code Việt Nam đã giới thiệu với các bạn các hàm trong nhóm toán học, lượng giác và thời gian. Trong bài này hour of code Vietnam sẽ cung cấp thêm cho các bạn một số hàm thường được sử dụng trong quá trình các bạn học lập trình Arduino.

Nhóm hàm Advanced I/O

  • noTone()
    • Cú pháp: noTone(pin)
    • Chức năng: Dùng để ngừng việc tạo ra sóng vuông góc được kích hoạt bởi hàm tone(). Hàm này sẽ không có hiệu lực nếu trước đó sóng chưa được tạo ra.
  • pulseIn()
    • Cú pháp: pulseIn(pin, value) hoặc pulseIn(pin, value, timeout)
    • Chức năng: Đọc một xung (HIGH hoặc LOW) trên chân tín hiệu. Nếu giá trị là HIGH, pulseln() sẽ đợi chân tín hiệu nhận giá trị HIGH và bắt đầu tính thời gian, sau đó đợi cho chân tín hiệu nhận giá trị LOW và dùng đếm thời gian. Trả về chiều dài của xung theo mili giây. Cung cấp và trả về giá trị là 0 nếu không có xung bắt đầu trong một khoảng thời gian xác định.
    • Tham số:
      • pin: chân tín hiệu mà bạn muốn đọc xung.
      • value: giá trị xung muốn đọc (HIGH hoặc LOW)
      • timeout (tham số tùy chọn): thời gian chờ cho xung bắt đầu, mặc định là 1 giây.
    • Ví dụ: Tính thời gian của một xung trên chân số 7

int pin = 7;

unsigned long duration;

void setup()

{ pinMode(pin, INPUT);

}

void loop()

{ duration = pulseIn(pin, HIGH);

}

  • pulseInLong()
    • Cú pháp: pulseInLong(pin, value) hoặc pulseInLong(pin, value, timeout)
    • Chức năng: Đọc một xung (HIGH hoặc LOW) trên một chân tín hiệu. Ví dụ: nếu giá trị là HIGH, pulselnLong() đợi chân tín hiệu nhận HIGH và bắt đầu tính thời gian, sau đó đợi đến khi chân tín hiệu nhận giá trị LOW sẽ dừng đếm thời gian. Giá trị trả về là độ dài của xung hoặc 0 nếu không nhận được xung trong một khoảng thời gian xác định.
    • Tham số:
      • pin: chân tín hiệu mà bạn muốn đọc xung.
      • value: giá trị xung muốn đọc (HIGH hoặc LOW)
      • timeout (tham số tùy chọn): thời gian chờ cho xung bắt đầu, mặc định là 1 giây.
  • shiftIn()
    • Cú pháp: byte incoming = shiftIn(dataPin, clockPin, bitOrder)
    • Chức năng: chuyển đổi một byte dữ liệu một bit một lần. Bắt đầu từ phần bit quan trọng nhất hoặc ít nhất. Đối với mỗi bit, clockPin là xung HIGH, bit tiếp theo được đọc từ dòng dữ liệu, và sau đó clockPin được đưa xuống mức LOW.
    • Tham số:
      • dataPin: chân tín hiệu để nhập mỗi bit
      • clockPin: chân để bật/tắt tín hiệu báo đọc từ chân dataPin
      • bitOrder: thay đổi trong các bit.
  • shiftOut()
    • Cú pháp: shiftOut(dataPin, clockPin, bitOrder, value)
    • Chức năng: chuyển ra một byte dữ liệu một bit một lần. Bắt đầu từ phần bit quan trọng nhất (tức là trái) hoặc ít nhất (cực phải). Mỗi bit được ghi bằng lượt đến một chân dữ liệu, sau đó clockPin được pulsed (lấy cao, sau đó thấp) để cho biết rằng bit có sẵn.

Nhóm hàm Bits and Bytes

  • bit()
    • Cú pháp: bit(n)
    • Chức năng: tính giá trị của bit xác định (bit 0 là 1, ít 1 là 2, bít 2 là 4 …vv)
  • bitClear()
    • Cú pháp: bitClear(x,n)
    • Chức năng: Xóa một bít của một biến số (viết thành giá trị 0)
  • bitRead()
    • Cú pháp: bitRead(x, n)
    • Chức năng: đọc giá trị một bit của một số được xác định bởi người lập trình (giá trị trả về của 1 bit là 0 hoặc 1)
    • Tham số:x: một số nguyên thuộc bất cứ kiểu số nguyên nào

      n: bit cần đọc. Các bit sẽ được tính từ phải qua trái, và số thứ tự đầu tiên là số 0

  • bitSet()
    • Cú pháp: bitSet(x, n)
    • Chức năng: thiết lập giá trị tại một bit xác định của một số nguyên thành 1.
    • Tham số:x: một số nguyên thuộc bất cứ kiểu số nguyên nào

      n: vị trí bit cần ghi. Các bit sẽ được tính từ phải qua trái, và số thứ tự đầu tiên là số 0.

  • bitWrite()
    • Cú pháp: bitWrite(x, n, b)
    • Chức năng: bitWrite() sẽ ghi đè bit tại một vị trí xác định của số nguyên
    • Tham số:x: một số nguyên thuộc bất cứ kiểu số nguyên nào

      n: vị trí bit cần ghi. Các bit sẽ được tính từ phải qua trái, và số thứ tự đầu tiên là số 0.

      b: 1 hoặc 0

  • highByte()
    • Cú pháp: highByte(giá trị đưa vào)
    • Chức năng: highByte() là hàm trả về một chuỗi 8 bit kề với 8 bit cuối cùng của một chuỗi các bit. Như vậy, nếu dữ liệu đưa vào một chuỗi 16bit thì highByte() sẽ trả về 8 bit đầu tiên, nếu dữ liệu đưa vào là một chuỗi 8bit hoặc nhỏ hơn, highByte() sẽ trả về giá trị 0. Một số nguyên bất kì cũng được xem như là một chuỗi các bit, vì bất kì số nguyên nào cũng có thể biểu diễn ở hệ nhị phân dưới dạng các bit “0” và “1”.
  • lowByte()
    • Cú pháp: lowByte([giá trị cần lấy ra 8 bit cuối]);
    • Chức năng: lowByte() là hàm trả về byte cuối cùng (8 bit cuối cùng) của một chuỗi các bit. Một số nguyên bất kì cũng được xem như là một chuỗi các bit, vì bất kì số nguyên nào cũng có thể biểu diễn ở hệ nhị phân dưới dạng các bit “0” và “1”.

Nhóm hàm Communication

  • Nhóm serial
    • Giải thích: Được sử dụng để liên lạc giữa bảng Arduino và máy tính hoặc các thiết bị khác. Tất cả các bảng Arduino có ít nhất một cổng nối tiếp (còn gọi là UART hoặc USART): Serial. Nó giao tiếp trên các chân số 0 (RX) và 1 (TX) cũng như với máy tính thông qua USB. Do đó, nếu bạn sử dụng các chức năng này, bạn không thể sử dụng các chân 0 và 1 cho đầu vào hoặc đầu ra số.
      Bạn có thể sử dụng màn hình nối tiếp tích hợp của Arduino để kết nối với bảng Arduino. Nhấp vào nút giám sát nối tiếp trên thanh công cụ và chọn cùng một tốc độ baud được sử dụng trong cuộc gọi đến begin()
  • Nhóm stream
    • Giải thích:

      Stream là lớp cơ sở cho các ký tự và các luồng nhị phân dựa. Nó không được gọi trực tiếp, nhưng được gọi ra bất cứ khi nào bạn sử dụng một chức năng dựa vào nó.

      Stream định nghĩa các chức năng đọc trong Arduino. Khi sử dụng bất kỳ tính năng cốt lõi nào sử dụng read()phương pháp tương tự hoặc tương tự, bạn có thể giả định một cách an toàn các cuộc gọi trên lớp Stream. Đối với các chức năng như print(), Stream thừa hưởng từ lớp Print.

      Hour Of Code Việt Nam

Dành cho bạn