Điều khiển 3 led theo bit trong 1 byte

Bài toán: nhập 1 ký tự. Dùng 3 bit thấp để điều khiển 3 đèn led (chân d2, d3 và d4).

Ví dụ:

     + nhập từ serial ký tự '1' có mã ascii viết theo nhị phân là 0011 0001 thì đèn d2 sáng (3 bit thấp là 001)

    + nhập từ serial ký tự '2' có mã ascii viết theo nhị phân là 0011 0010 thì đèn d3 sáng (3 bit thấp là 010)

    + nhập từ serial ký tự '3' có mã ascii viết theo nhị phân là 0011 0011 thì đèn d2 và d3 cùng sáng (3 bit thấp là 011)

    + nhập từ serial ký tự '4' có mã ascii viết theo nhị phân là 0011 0100 thì đèn d4  sáng (3 bit thấp là 100)

Giải quyết:

Lưu ký tự đầu tiên nhập từ serial vào status[0]

Lấy bit thấp nhất bằng cách dùng toán tử & (and bit): status[0] & 1 

Lấy bit thứ hai bằng cách dịch chuyển bit sang phải 1 rồi dùng toán tử & để lấy bit thấp nhất

Lấy bit thứ ba bằng cách dịch chuyển bit sang phải 2 rồi dùng toán tử & để lấy bit thấp nhất

123d circuits: 
Codebender: 
Youtube: 
Những hình ảnh về dự án: 
Các bài viết cùng tác giả

Một dự án được truyền cảm hứng với "LED RGB chung cực dương"

Sau khi đọc xong bài viết "Làm thế nào để điều khiển được LED RGB", mình cũng muốn làm thử. Tuy nhiên khi đặt mua thì lại nhận được loại LED RGB có cực dương chung. Vậy làm sao áp dụng được?

 

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