digitalRead()

Giới thiệu

Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT). Trả về 2 giá trị HIGH hoặc LOW.

Cú pháp

digitalRead(pin)

Thông số

pin: giá trị của digital muốn đọc

Trả về

HIGH hoặc LOW

Ví dụ

Ví dụ này sẽ làm cho đèn led tại pin 13 nhận giá trị như giá trị tại pin 2

int ledPin = 13; // chân led 13
int inPin = 2;   // button tại chân 2
int val = 0;     // biến "val" dùng để lưu tín hiệu từ digitalRead

void setup()
{
  pinMode(ledPin, OUTPUT);      // đặt pin digital 13 là output
  pinMode(inPin, INPUT);      // đặt pin digital 2 là input
}

void loop()
{
  val = digitalRead(inPin);   //  đọc tín hiệu từ digital2
  digitalWrite(ledPin, val);    // thay đổi giá trị của đèn LED là giá trị của digital 2
}

Chú ý

Nếu chân input không được kết nối với bất kỳ một thứ gì thì hàm digitalRead() sẽ trả về tín hiệu HIGH hoặc LOW một cách "hên xui"

Các chân Analog cũng có thể dùng được digitalRead với các cổng pin có tên như là: A0, A1,...

Reference Tags: 
lên
25 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

"Độ hoàn toàn" một cổng Terminal RS-232 mà không sử dụng jack 3.5mm

Ở Việt Nam, việc một bạn học sinh mua một mạch Intel Galileo khá là khó. Trong đó, khó nhất là tiền để mua một mạch Intel Galileo, tuy nhiên, khi mua được mạch về, việc bạn có sử dụng hết chức năng của Intel Galileo hay không là một việc khác. Cái hay nhất, theo tớ nghĩ trên Intel Galileo, mà Arduino không có và bạn khó tiếp cận nhất đó là hệ điều hành Linux. Thực sự thì có nhiều cách để vào Linux của Intel Galileo. Tuy nhiên, nếu bạn muốn cài một hệ điều hành xịn như Debian để biến Intel Galileo trở thành một "máy tính" siêu "xịn" thì bạn buộc phải dùng tới cổng RS - 232. Nếu ở các trung tâm công nghệ lớn thì bạn có thể dễ dàng tìm mua các cổng "RS-232 to DB9" để dễ dàng làm theo các bài hướng dẫn trước. Tuy nhiên, không phải ai cũng may mắn như vậy, trong bài viết này, chúng ta sẽ tiếp cận với một cách khác mà tớ đã sử dụng để giải quyết bài toán không có cáp "RS-232 to DB9".

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

Vấn đề của số chấm động và số nguyên trong ngôn ngữ lập trình C++ trên board mạch Arduino

Có bao giờ bạn tự hỏi: "Dự án của mình làm tốt thế này, chạy ngon lành rành rành thế này, chắc không có bugs đâu?". Thực sự, nếu dự án của bạn không có phần xử lý số thực chấm động trong đó thì mình nghĩ phần code của bạn sẽ hoạt động ngon lành theo thời gian. Nhưng mà có số thực thì từ từ, chúng ta cần xét lại code. Trước đây, có một số bạn nhắn tin riêng hỏi mình về code với điểm chung là "code mình chạy ngon lành lúc đầu, sau đó bị lỗi, không rõ nguyên nhân". Loại trừ các phần code logic sai ra, thì hầu hết đều là do lỗi khi xử lý số chấm động mà không quan tâm đến nền tảng lập trình bên dưới! Mà cũng đúng, chúng ta rất dễ bị đánh lừa bởi chính đoạn code chúng ta viết. Vì nó có báo lỗi biên dịch đâu mà, kaka. Qua bài viết này, mình muốn phân tích và cùng các bạn rút kinh nghiệm về số chấm động float, cách hạn chế lỗi sai với số chấm động.

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