Hai dạng tín hiệu cơ bản trong Arduino: Digital & Analog

Có khi nào bạn tự hỏi:

  • Làm thế nào Arduino khiến cho 1 con led chớp tắt, sáng dần hoặc mờ dần?
  • Làm thế nào Arduino giao tiếp với các phần cứng khác, hoặc làm sao để kết nối hai board mạch điện tử với nhau?
  • Làm thế nào Arduino điều khiển được động cơ nhanh chậm, hoặc nhận tín hiệu từ các cảm biến?
  • Làm thế nào Arduino có thể điều khiển Robot hay máy tự động?

Sở dĩ Arduino có thể làm được tất cả điều đó, là vì Arduino là một board mạch lập trình có thể xuất ra hoặc ghi nhận hai dạng tín hiệu điện cơ bản là Digital và Analog theo thời gian hoặc logic lập trình định sẵn, vậy tín hiệu Digital và Analog là gì?

Khi cấp nguồn DC (nguồn 1 chiều) cho Arduino hoạt động, các bạn để ý sẽ thấy có hai dây nguồn, một dây có mức điện áp cao (High) ký hiệu VCC thường là 5VDC , 1 dây có điện áp thấp (Low) ký hiệu GND (ground – đất, nền) tương ứng 0VDC, chỉ khi cấp đủ hai dây nguồn này thì Board mới bắt đầu hoạt động.

Có thể hiểu đơn giản, Digital là dạng tín hiệu số, tín hiệu logic, chỉ gồm 3 trạng thái:

  • Mức thấp (Low) hay còn gọi là mức logic 0, tương ứng với mức điện áp thấp cấp vào board là 0VDC.
  • Mức cao (High) hay còn gọi là mức logic 1, tương ứng với mức điện áp cao cấp vào board là 5VDC.
  • Mức trống (Null), tương ứng với trạng thái không kết nối hoặc không có tín hiệu (khác với mức logic 0), nếu đo mức này trên máy hiện sóng sẽ không thấy tín hiệu hiển thị.

Việc kết hợp nhiều tín hiệu Digital riêng lẻ với nhau sẽ tạo thành các chuẩn giao tiếp, ví dụ: chuẩn COM-UART, I2C, SPI,…là các chuẩn thường thấy trên Arduino và Vi điều khiển, HDMI, USB,… là các chuẩn giao tiếp thông dụng trong thường thấy trong cuộc sống.

Tín hiệu Analog được hiểu là dạng tín hiệu tương tự, hoặc tuyến tính, nó chạy dài theo dải điện áp từ thấp đến cao, ví dụ một số chân Analog trên Arduino có thể xuất ra hoặc ghi nhận mức điện áp 0, 0.1, 0.2, 0.5, 1, 1.4, 1.6,….2.3, 3.5, 4.1,…cho đến mức cao nhất là 5VDC.

Vậy ở tín hiệu Digital, bạn chỉ có thể làm cho 1 con led sáng hoặc tắt (tương ứng với mức cao 5VDC hoặc mức thấp 0VDC) , thì với tín hiệu Analog, bạn có thể làm được nhiều hơn thế với khả năng làm cho led sáng dần hoặc mờ dần (bằng cách xuất ra tín hiệu Analog với các mức điện áp cao dần hoặc thấp dần tương ứng trên chân Analog của Arduino).

Một số lưu ý theo bản Arduino Uno, các bản khác có thể tự suy luận tương tự:

Tất cả các chân giao tiếp trên Arduino đều là chân Digital, kể cả các chân Analog, ví dụ như Arduino Uno ta có các chân ký hiệu từ 0 ->13 là các chân Digital D0 -> D13, các chân ký hiệu A0 -> A5 tương ứng với các chân Digital từ D14 -> D19.

Các chân có ký hiệu A0 -> A5 là các chân Digital có thể cấu hình để nhận tín hiệu Analog (lưu ý là chỉ nhận tín hiệu Analog chứ không xuất ra), tức là nó có thể ghi nhận mức tín hiệu điện áp tuyến tính trải dài từ 0VDC đến 5VDC (là mức điện áp cấp bởi hai dây nguồn DC cho Arduino).

Các chân có ký hiệu ~ ở phía trước là các chân Digital có thể cấu hình để xuất tín hiệu Analog (lưu ý là chỉ xuất tín hiệu Analog chứ không nhận), tức là nó có thể xuất ra mức tín hiệu điện áp tuyến tính trải dài từ 0VDC đến 5VDC (là mức điện áp cấp bởi hai dây nguồn DC cho Arduino).

Một số chân Digital trên Arduino khi cấu hình kết hợp với nhau có thể tạo thành các chuẩn giao tiếp Digital, ví dụ như D0 và D1 là chuẩn COM-UART phổ biến với hai tín hiệu xuất nhận tương ứng là TX và RX, A4 và A5 là chuẩn I2C với hai tín hiệu tương ứng là SCL và SDA, ngoài ra còn có thêm chuẩn SPI với các chân từ D10 -> D13.

Việc học lập trình trên Arduino là việc làm sao để có thể xuất ra hoặc ghi nhận tín hiệu Digital & Analog + sử dụng nhuần nhuyễn các chuẩn giao tiếp kết hợp với nhau để giao tiếp với các phần cứng khác làm thành 1 hệ thống điều kiển tự động, robot,…

 

Leave a Reply

Please Login to comment
  Subscribe  
Notify of