Tìm kiếm bài viết theo id

Tự học Arduino - B2 - Digital IN/OUT trong Arduino

Thảo luận trong 'Chuyện trò' bắt đầu bởi abcarduino, 22/9/18.

ID Topic : 9226284
Ngày đăng:
22/9/18 lúc 00:06
  1. abcarduino Thành Viên Mới

    Tham gia ngày:
    22/9/18
    Tuổi tham gia:
    5
    Bài viết:
    1
    Bài 2. Digital IN/OUT TRONG ARDUINO


    Arduino sử dụng nền tảng là vi điều khiển ATMEGA của hãng Atmel nên các đặc tính In/Out hay Ngõ Vào/Ra của nó mang toàn bộ thông số của chip vi điều khiển ATMEGA. Xem thêm datasheet ATMEGA 128 Full Tiếng Việt (I/O gần giống 328) để biết thêm thông tin chi tiết.

    1. I/O Digital
    Digital là một dạng tín hiệu trong điện tử mà ở đó chỉ có 2 trạng thái: 0 & 1 tương ứng HIGH & LOW hoặc TRUE & FALSE. Tuy nhiên, chúng ta còn có thêm 2 trạng thái nữa nhưng ít khi dùng đến là X & Z tương ứng là trạng thái "trở kháng cao" & "Thả nối" (không quan tâm hoặc không xác định).

    Như vậy, hiệu điện thế tương ứng với mỗi mức là 5V cho mức cao và 0V cho mức thấp. Nhưng đối với Arduino, hiệu điện thế ban đầu thì đúng nhưng càng hoạt động thì lại càng không hoàn hảo như vậy. I/O được xác định theo mức điện thế như sau:

    Tự học Arduino - B2 - Digital IN/OUT trong Arduino

    Đối với ngõ vào:

    • Từ 0-0.8V được định nghĩa là mức thấp
    • Từ 2.0 - 5V được định nghĩa là mức cao
    • Từ 0.8V - 5V được định nghĩa là không xác định
    Đối với ngõ ra:

    • Từ 0-0.4V được định nghĩa là mức thấp
    • Từ 2.7 - 5V được định nghĩa là mức cao
    • từ 0.4 - 2.7V được định nghĩa là không xác định
    2. Digital I/O với Arduino
    [caption id="attachment_590" align="aligncenter" width="960"]Tự học Arduino - B2 - Digital IN/OUT trong Arduino - 1 Pin Assignments 14 Digital I/O Pins (pins 0-13)[/caption]
    Các ngõ ra digital của Arduino thông thường được sử dụng từ chân số 0 đến chân số 13. Khi muốn sử dụng bất kỳ chân nào ta khai báo trong hàm Setup() như sau:

    pinMode( <Số thứ tự chân> , <trạng thái I/O> );

    Ví Dụ:

    pinMode (3,Input);
    pinMode (4,Output);
    Để có thể đọc trạng thái từ chân Input ta sử dụng hàm:

    digitalRead( <Số thứ tự chân> );
    Giá trị mà hàm trả về là 0 hoặc 1, true hoặc false, high hoặc low
    tương ứng với hiệu điện thế tại chân Input.

    Ví dụ:

    int x = digitalRead(2);
    • Lưu ý: Nếu chân ngõ vào không được nối với bất cứ thứ gì thì giá trị trả về sẽ là random.
    Để có thể xuất ngõ ra digital ta có thể sử dụng hàm:

    digitalWrite( <Số thứ tự chân> , <Trạng thái> );

    Ví dụ:

    digitalWrite(3,HIGH);
    digitalWrite(3,1);
    digitalWrite(3,true);
    Nhưng có 1 mẹo nhỏ dành cho các bạn khi muốn sử dụng nhiều Digital I/O hơn là ta có thể sử dụng các chân từ A0 đến A5 theo số thứ tự từ 14 đến 19. Các bạn có thể thử ngay với board Arduino Uno R3 của mình.

    Bây giờ, bạn đã có thể đọc hiểu ví dụ Blink được nêu ở bài 0. Bạn hãy tìm hiểu xem từng dòng lệnh có chức năng gì và hình dung cách mà Board Arduino hoạt động trong ví dụ đó nhé.

    Tự học Arduino - B2 - Digital IN/OUT trong Arduino - 2

    Xem thêm các bài tự học Arduino khác tại ABC Arduino: https://abcarduino.com/category/tu-hoc-arduino/
     

Chia sẻ trang này

Tình hình diễn đàn

  1. giao1234,
  2. TrangAnhDoji
Tổng: 768 (Thành viên: 2, Khách: 754, Robots: 12)