Trang chủ Điện - Điện tửArduinoHướng Dẫn Sử Dụng Module LED 7 Đoạn 74HC595 Với Arduino

Hướng Dẫn Sử Dụng Module LED 7 Đoạn 74HC595 Với Arduino

bởi Admin
24 lượt xem 3 Phút đọc

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng màn hình phân đoạn 7 chữ số 3 với bảng Arduino UNO. Chúng ta sẽ sử dụng các hàm countUP () và countDown () để đếm từ 0 đến 'số' (biến) và từ 'số' đến 0. Chúng ta có thể thay đổi 'số' này với giá trị từ 0 đến 9999.

Module LED 7 Đoạn 74HC595

Module LED 7 Đoạn 74HC595

Kết nối rất dễ dàng:

Kết nối module 3 LED 7 đoạn  với Arduino:

Module LED 74HC595Arduino
VCCVCC
GNDGND
SDID2
CLKD3
LOADD4

Cài đặt thư viện

Trước khi sử dụng DS1307, bạn cần cài đặt thư viện ShiftRegister74HC595. Bạn có thể thực hiện điều này bằng cách mở Arduino IDE và điều hướng đến "Sketch" -> "Include Library" -> "Manage Libraries". Tìm kiếm "ShiftRegister74HC595" và cài đặt thư viện được tạo bởi Timo Denk.

Vào "Sketch" -> "Include Library" -> "Manage Libraries

Tìm kiếm "ShiftRegister74HC595"

Code:

#include <ShiftRegister74HC595.h>
// create a global shift register object
// parameters: <number of shift registers> (data pin, clock pin, latch pin)
ShiftRegister74HC595<8> sr(2, 3, 4);
long number = 99999; // <--- Change it from 0 to number
long value, digit1, digit2, digit3, digit4, digit5, digit6, digit7, digit8 ;
uint8_t  numberB[] = {
  B11000000, //0
  B11111001, //1
  B10100100, //2
  B10110000, //3
  B10011001, //4
  B10010010, //5
  B10000010, //6
  B11111000, //7
  B10000000, //8
  B10011000 //9
};
void setup() {
  //Count from 0 to 'number'
  countAll_0_9();
  delay(500);
  countUp();
  //Count from 'number' to 0
  //countDown();  // <--- Comment countUp and uncomment countDown
  //Blink 4 times all on and all off.
  blink();
}
void loop() {
}
void countUp() {
  for (int i = 0; i <= number; i++) {
    //Split number to digits:
    digit8 = (i / 10000000) % 10;
    digit7 = (i / 1000000) % 10;
    digit6 = (i / 100000) % 10 ;
    digit5 = (i / 10000) % 10;
    digit4 = (i / 1000) % 10 ;
    digit3 = (i / 100) % 10;
    digit2 = (i / 10) % 10 ;
    digit1 = i % 10 ;
    //Send them to 7 segment displays
    uint8_t numberToPrint[] = {numberB[digit8], numberB[digit7],numberB[digit6], numberB[digit5], numberB[digit4],numberB[digit3], numberB[digit2], numberB[digit1]};//8led
     // uint8_t numberToPrint[] = {numberB[digit4],numberB[digit3], numberB[digit2], numberB[digit1]};//4led
  //uint8_t numberToPrint[] = {numberB[digit3], numberB[digit2], numberB[digit1]};//3led
  //uint8_t numberToPrint[] = {numberB[digit2], numberB[digit1]};//2led
  sr.setAll(numberToPrint);
    //Reset them for next time
    digit1 = 0;
    digit2 = 0;
    digit3 = 0;
    delay(100); // Repeat every 100 ms
  }
}
void countAll_0_9() {
  for (int i=0; i<10; i++) {
    digit1 = i % 10 ;
    //Send them to 7 segment displays
    uint8_t numberToPrint[] = {numberB[digit1], numberB[digit1], numberB[digit1],numberB[digit1], numberB[digit1], numberB[digit1], numberB[digit1], numberB[digit1]};//8led
  //uint8_t numberToPrint[] = {numberB[digit1], numberB[digit1], numberB[digit1], numberB[digit1]};//4led
  //uint8_t numberToPrint[] = {numberB[digit1], numberB[digit1], numberB[digit1]}//3led
  //uint8_t numberToPrint[] = {numberB[digit1], numberB[digit1]}//2led
    sr.setAll(numberToPrint);
    //Reset them for next time
    digit1 = 0;
    delay(300); // Repeat every 1 sec
  }
}
//Blink
void blink() {
  for (int i = 0; i < 4; i++) {
    sr.setAllLow(); // set all pins Low (off)
    delay(1000);
    sr.setAllHigh(); // set all pins High (on)
    delay(1000);
  }
}

Kết quả:

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.