1. Chú ý: Các bạn nên tham khảo Nội quy trước khi viết bài (click vào liên kết bên dưới).
    * Nội quy và Thông báo diễn đàn CNCProVN.com
    * Nếu bạn thấy hứng thú với bài viết. Hãy dùng chức năng Share to facebook để chia sẻ bài viết lên facebook.
  • Một vài khái niệm cơ bản khi làm quen với Arduino #1

    Arduino - Một vài khái niệm cơ bản khi làm quen với Arduino
    Khi làm quen với Arduino chúng ta có thể gặp nhiều khái niệm về dữ liệu, về giao tiếp, về các bài toán cộng trừ nhân chia, các phép so sánh, khai báo v.v...
    Trong số vô vàn các khái niệm ấy thì với hệ thống số.. khái niệm mã nhị phân (binary) là khái niệm mà chúng ta luôn gặp. Thân thuộc đến mức chúng ta hầu như không nhận ra là mã nhị phân có tồn tại.

    Vậy mình xin giới thiệu Mã nhị phân và một vài khái niệm liên quan đến mã nhị phân




    Mã nhị phân hay thường được nhắc đến là binary (trong quá trình tìm hiểu các tài liệu kỹ thuật, rất thường xuất hiện các thuật ngữ tiếng anh, chúng ta cũng nên làm quen) hay hệ cơ số 2 hay hệ nhị phân v.v....

    Để đơn giản hóa và dể hiểu, chúng ta chỉ cần biết Mã nhị phân là một dạng dữ liệu chỉ được diễn đạt bằng 2 ký tự hoặc trạng thái khác nhau. Trong kỹ thuật mã nhị phân thường được ký hiệu bỡi 2 ký số là 01. Trong đó
    - 0 biểu đạt cho trạng thái không hoặc nếu là mức tín hiệu thì là mức tín hiệu thấp hay là trạng thái tắt (off).
    - 1 biểu đạt cho trạng thái có hoặc biểu đạt cho mức tín hiệu thì là mức tín hiệu cao hay là trạng thái mở (on).

    Ví dụ: đơn giản & gần gủi nhất là các trạng thái on/off xung quanh ta như bóng đèn, bật sáng là on hay là 1, tắt tối là off hay là 0

    Bit - Với 1 ký số mã nhị phân được gọi là Bit và từ đó ta thấy, 1 bit biểu đạt được 2 giá trị (2 trạng thái) là 0 & 1.

    Giá trị - Để biểu đạt được nhiều giá trị hơn thì chúng ta ghép nhiều Bit lại với nhau. Cách quy đổi giá trị nhị phân sang các hệ cơ số khác sẽ được giới thiệu sau.

    Để dể xác định giá trị số từ hệ cơ số 2 (nhị phân) chúng ta sẽ nhắc đến hệ thập phân (cơ số mười). Hệ thập phân là hệ cơ số mà chúng ta dùng hàng này. Biểu đạt bằng các ký số từ 0-9. Quá quen thuộc rồi nên mình sẽ không nói nhiều về về hệ thập phân.

    Giá trị của số hệ nhị phân được xác định từ vị trí phía phải dần qua tráii. Giá trị thực bằng tổng các (bitn * cơ sốn). Trong đó cơ số là 2 (nhị phân), n là vị trí bit, bắt đầu là 0. Để dể hiểu hơn chúng ta xem qua ví dụ.
    Ví dụ: đổi số nhị phân sau 10112 (2 là chỉ số cơ số) sang số thập phân.
    = tổng các (bitn * 2n)
    = (13*23) + (02*22) + (11*21) + (10*20)
    = (1*8) + (0*4) + (1*2) + (1*1)
    = 8 + 0 + 2 + 1
    = 1110
    Giá trị của số nhị phân 1011 đổi sang số thập phân là 1110



    Khi làm việc với Arduino thì ngoài mã nhị phân (hệ nhị phân - binary) ta sẽ thường thấy các kiểu khác như
    - hệ thập phân (decimal) thông dụng không kém và thường sử dụng trong các phép toán. Dùng các ký số từ 0, 1, 2.... 8, 9.
    Tương tự thì giá trị số thập phân bằng tổng các (sốn * cơ sốn). Trong đó cơ số là 10 (thập phân), n là vị trí số, bắt đầu là 0. Để dể hiểu hơn chúng ta xem qua ví dụ tính giá trị của số 10510.
    = tổng các (sốn * 2n)
    = (12*102) + (01*101) + (50*100)
    = (1*100) + (0*10) + (5*1)
    = 100 + 0 + 5
    = 10510

    - hệ bát phân (octal) thường là kiểu dữ liệu và hay được quy đổi ra nhị phân hoặc thập phân để tiện tính toán. Dùng các ký số từ 0, 1, 2.... 6, 7.
    Tương tự thì giá trị số bát phân bằng tổng các (sốn * cơ sốn). Trong đó cơ số là 8 (bát phân), n là vị trí số, bắt đầu là 0. Để dể hiểu hơn chúng ta xem qua ví dụ tính giá trị của số 1058.
    = tổng các (sốn * 2n)
    = (12*82) + (01*81) + (50*80)
    = (1*64) + (0*8) + (5*1)
    = 64 + 0 + 5
    = 6910

    - hệ thập lục phân (hexadecimal) thường là kiểu dữ liệu và hay được quy đổi ra nhị phân hoặc thập phân để tiện tính toán. Dùng các ký số từ 0, 1, 2.... 8, 9, A, B, C, D, E, F.
    Tương tự thì giá trị số thập lục phân bằng tổng các (sốn * cơ sốn). Trong đó cơ số là 16 (thập lục phân), n là vị trí số, bắt đầu là 0. Để dể hiểu hơn chúng ta xem qua ví dụ tính giá trị của số 10516.
    = tổng các (sốn * 2n)
    = (12*162) + (01*161) + (50*160)
    = (1*256) + (0*16) + (5*1)
    = 256 + 0 + 5
    = 26110

    * mình chia sẻ bài viết theo hiểu biết và tìm hiểu của riêng mình, không hoàn toàn chính xác. Mong các bạn bổ xung để chủ đề được rỏ ràng, dể hiểu & chính xác hơn

    Cảm ơn các bạn!
    This article was originally published in forum thread: Một vài khái niệm cơ bản khi làm quen với Arduino #1 started by Arduino View original post