KẾT NỐI LED MA TRẬN 8×8 VỚI ARDUINO

KẾT NỐI LED MA TRẬN 8×8 VỚI ARDUINO, led ma trận 8×8 là led gì? led ma trận 8×8 hoạt động như thế nào? Cấu tạo led ma trận 8×8

 

KẾT NỐI LED MA TRẬN 8×8 VỚI ARDUINO

   Màn hình ma trận LED có thể được sử dụng để hiển thị hầu hết các ký tự và hình vẽ. Hầu hết các bảng hiệu LED hiện đại sử dụng các loại bảng ma trận khác nhau được lập trình bằng vi điều khiển. Trong hướng dẫn này, chúng ta sẽ kết nối để giao tiếp một ma trận LED 8 × 8 màu duy nhất với Arduino và hiển thị một vài ký tự trong đó. Ma trận 8 × 8 bao gồm 64 chấm led ( có thể gọi 64 chấm điểm ảnh này là các pixel). Mỗi đèn LED là mỗi pixel và các đèn LED này được kết nối với tổng số 16 chân. Bạn có thể xác định sơ đồ chân và sơ đồ mạch của nó bằng hình dưới đây.

C1 đến C8 là các chân cột

R 1 đến R8 – là chân hàng

Ta có thể thấy ở sơ đồ bên phải các chân Anode (chân cực dương của led) trên cùng 1 hàng được nối chung với nhau, tương tự các chân Cathode (chân cực âm của led) trên cùng một cột được nối chung với nhau. Đó là các chân của led ma tran 8×8 (8 hàng x 8 cột). Nếu một điện áp dương được đặt vào chân R1 và âm cho C1, chúng ta có thể thấy pixel (hay led) đầu tiên sáng. Nếu chúng ta đặt điện áp mức thấp cho C2 thì pixel thứ hai (led thứ 2 hàng 1) sẽ bật. Với cách này này, chúng ta có thể bật sáng các pixel tuỳ ý. Để làm việc này dễ dàng hơn, chúng ta sẽ sử dụng Arduino để điều khiển các chân của ma trận led 8×8.

Sơ đồ kết nối led ma trận 8×8 với Arduino

Như bạn có thể thấy trong sơ đồ, mỗi chân cột được kết nối với chân Arduino thông qua điện trở 220Ω. Tất cả các chân hàng được kết nối với một trong các chân đầu ra của IC 74HC595N (được sử dụng như một thanh ghi dịch). Các ký tự được hiển thị bằng cách sử dụng các kỹ thuật ghép kênh. Thanh ghi dịch được kết nối với Arduino qua 3 chân dữ liệu (SER), chân chốt (RCLK) và chân xung clock (SRCLK).

Chương trình điều khiển

 int latchPin = 4; // khai báo các chân kết nối thanh ghi dịch

int clockPin = 5;

int dataPin = 3;

int pins [8] = {6, 7, 8, 9, 10, 11, 12, 13}; // các chân cathode chung

byte A[8] = {   B00000000, // mã để hiển thị ký tự tương ứng lên led ma trận

                B00011000,// các mã này bạn có thể tự viết tuỳ nhu cầu ký tự hiển thị trông như thế nào

                B00100100,

                B01000010,

                B01111110,

                B01000010,

                B01000010,

                B00000000

            };

 

byte B[8] = {     B00000000,

                  B11111100,

                  B10000010,

                  B10000010,

                  B11111100,

                  B10000010,

                  B10000010,

                  B11111110

            };

 

byte blank[8] = { B00000000,

                  B00000000,

                  B00000000,

                  B00000000,

                  B00000000,

                  B00000000,

                  B00000000,

                  B00000000

                };

byte R[8] = {  B00000000,

               B01111000,

               B01000100,

               B01000100,

               B01111000,

               B01010000,

Quảng cáo đặt hàng nhập

               B01001000,

               B01000100

            };

 

 

void setup() {

  Serial.begin(9600); // dữ liệu code đã lập trình từ máy tính nạp vào Arduino với tốc độ 9600 baud rate

  pinMode(latchPin, OUTPUT); // cấu hình các chân là ngõ ra

  pinMode(clockPin, OUTPUT);

  pinMode(dataPin, OUTPUT);

  for (int i = 0; i

    pinMode(pins[i], OUTPUT);

    digitalWrite(pins[i], HIGH);

  }

 

}

 

void loop() {

 

 

 

  for (int k = 0; k

    display_char(A);

 

  }

 

  for (int k = 0; k

    display_char(B);

 

  }

  for (int k = 0; k

    display_char(R);

 

  }

}

void display_char(byte ch[8]) { // phương pháp ghép kênh

  for (int j = 0; j

    digitalWrite(latchPin, LOW);

    digitalWrite(pins[j], LOW);

 

    shiftOut(dataPin, clockPin, LSBFIRST, ch[j]);

    digitalWrite(latchPin, HIGH);

    //delay(1);

    digitalWrite(latchPin, LOW);

    shiftOut(dataPin, clockPin, LSBFIRST, B00000000); //tắt hết led trước khi hiển thị ký tự tiếp theo

    digitalWrite(latchPin, HIGH);

    digitalWrite(pins[j], HIGH);

  }

}

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *