본문 바로가기

ESP32

4자리 7세그먼트 디스플레이 라이브러리 74HC595

반응형

 

4자리 7세그먼트 디스플레이 라이브러리 74HC595 

 

74HC595 4-Digit 7-Segment Display Library for Arduino - DIYables_4Digit7Segment_74HC595 

 

이 라이브러리는 4개의 도트가 있는 74HC595 4자리 7세그먼트 디스플레이 LED 모듈을 제어하기 위해 Arduino, ESP32, ESP8266...용으로 설계되었습니다. (자료 출처 Github)

 

제품 링크와 자료들 https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots

 

특징

  • High-Level: 음수를 지원하는 제로 패딩 옵션이 있는 정수 표시, 음수 지원
  • High-Level: 소수점 이하 자릿수, 제로 패딩 옵션, 음수 지원과 함께 부동 소수점 표시
  • Low-Level: 숫자 문자를 한 자릿수씩 저수준으로 표시합니다
  • Low-Level: 숫자가 아닌 문자를 한 자릿수씩 표시합니다.:
  • - (dash 대시)
  • _ (밑줄)
  • ° (degree)
  • C
  • E
  • F
  • Low0Lvel: 점(소수점 이하 자릿수)을 한 자리씩 표시하기 

 

사용 가능한 함수

  • DIYables_4Digit7Segment_74HC595(int sclk, int rclk, int dio);
  • void printInt(int number, bool zero_padding);
  • void printFloat(float number, int decimal_place, bool zero_padding);
  • void clear();
  • void setDot(int pos);
  • void setNumber(int pos, int value);
  • void setChar(int pos, SegChars value);
  • void show();
  • void loop(); 

 

참고: 

 

References

 

Tutorials

 

여기서는 ESP32와 인터페이스 하는 부분을 설명하고 다른 인터페이스는 위 링크를 참고하세요.

 

ESP32 - 74HC595 4자리 7세그먼트 디스플레이

 

이 튜토리얼은 ESP32를 사용하여 74HC595 4자리 7세그먼트 디스플레이 모듈을 제어하는 ​​방법을 안내합니다. 다음 주제를 다룹니다.

 

- ESP32를 74HC595 4자리 7세그먼트 디스플레이 모듈에 연결

- ESP32를 프로그래밍하여 모듈에 정수를 표시

- ESP32를 프로그래밍하여 모듈에 부동 소수점 숫자를 표시

- ESP32를 프로그래밍하여 모듈에 숫자와 문자를 표시

 

이 튜토리얼은 부동 소수점 값을 표시할 수 있는 4점 4자리 7세그먼트 디스플레이 모듈을 활용합니다. 콜론 구분 기호를 표시해야 하는 경우 TM1637 4자리 7세그먼트 디스플레이 모듈을 참조하세요.

 

이 튜토리얼에서 사용된 하드웨어

 

1 × ESP-WROOM-32 개발 모듈 1 × USB 케이블 Type-C 1 × 74HC595 4자리 7세그먼트 디스플레이 1 × 브레드보드 1 × 점퍼 와이어 1 × (선택 사항) ESP32용 9V 전원 어댑터 1 × (권장) ESP32용 나사 단자 확장 보드 또는 다음 센서 키트를 구매할 수 있습니다. 1 × DIYables 센서 키트(센서/디스플레이 30개) 1 × DIYables 센서 키트(센서/디스플레이 18개) 공개: 이러한 링크 중 일부는 제휴 링크입니다. 추가 비용 없이 구매에 대해 수수료를 받을 수 있습니다. 감사합니다.

 

74HC595 4자리 7세그먼트 디스플레이 소개

 

온도나 모든 부동 소수점 값을 표시하기에 이상적인 모듈은 74HC595 4자리 7세그먼트 디스플레이입니다. 이 모듈은 일반적으로 4개의 7세그먼트 LED, 4개의 점 모양 LED, 각 숫자에 대한 2개의 74HC595 드라이버를 포함합니다.

 

핀아웃

 

74HC595 4자리 7세그먼트 디스플레이 모듈에는 5개의 핀이 포함됩니다.

- SCLK 핀: 클록 입력 핀입니다. ESP32의 모든 디지털 핀에 연결합니다.

- RCLK 핀: 클록 입력 핀입니다. ESP32의 모든 디지털 핀에 연결합니다.

- DIO 핀: 데이터 I/O 핀입니다. ESP32의 모든 디지털 핀에 연결합니다.

- VCC 핀: 모듈에 전원을 공급합니다. 3.3V~5V 전원 공급 장치에 연결합니다.

- GND 핀: 접지 핀입니다.

 

배선 다이어그램

 

아래 표는 ESP32 핀과 74HC595 4자리 7세그먼트 디스플레이 핀 사이의 배선을 보여줍니다.

 

ESP32  74HC595 7세그먼트 디스플레이

Vin   5V

27    SCLK

26    RCLK

25    DIO

 

 

 

다른 핀을 사용하는 경우 코드의 핀 번호를 그에 맞게 수정해야 합니다. 이 이미지는 Fritzing을 사용하여 만들어졌습니다. 

 

ESP32 및 기타 구성 요소에 전원을 공급하는 방법에 익숙하지 않은 경우 다음 자습서에서 지침을 찾을 수 있습니다. ESP32에 전원을 공급하는 방법.

 

라이브러리 설치

 

74HC595 4자리 7세그먼트 디스플레이를 쉽게 프로그래밍하려면 DIYables.io의 DIYables_4Digit7Segment_74HC595 라이브러리를 설치해야 합니다. 라이브러리를 설치하려면 아래 단계를 따르세요.

 

 

- Arduino IDE의 왼쪽 막대에 있는 라이브러리 아이콘을 클릭합니다.

- "DIYables_4Digit7Segment_74HC595"를 검색한 다음 DIYables.io의 DIYables_4Digit7Segment_74HC595 라이브러리를 찾습니다.

- 설치 버튼을 클릭합니다.

 

Github에서도 이 라이브러리를 볼 수 있습니다.

 

ESP32를 사용하여 74HC595 4자리 7세그먼트를 프로그래밍하는 방법

 

- 라이브러리 포함

 

#include <DIYables_4Digit7Segment_74HC595.h>

 

#define SCLK  27  // The ESP32 pin GPIO27 connected to SCLK
#define RCLK  26  // The ESP32 pin GPIO26 connected to RCLK
#define DIO   25  // The ESP32 pin GPIO25 connected to DIO

 

- 디스플레이 모듈의 SCLK, RCLK 및 DIO에 연결되는 ESP32의 핀을 정의합니다. 예를 들어, 핀 D7, D6 및 D5

 

- DIYables_4Digit7Segment_74HC595 유형의 디스플레이 객체를 만듭니다.

DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);

 

- 그런 다음 음수를 지원하는 0 패딩 옵션으로 정수를 표시할 수 있습니다.

display.printInt(-13, false); // -999에서 9999까지의 값을 표시할 수 있습니다.

 

- 소수점 자리, 0 채우기 옵션, 음수 지원으로 부동 소수점 숫자를 표시할 수 있습니다.

display.printFloat(-9.2, 1, false);

 

- 하위 수준 함수를 사용하여 숫자, 소수점, 문자를 자릿수별로 표시할 수도 있습니다.

 

// display 9.3°C
display.clear();
display.setNumber(1, 9);              // set 9 at the 1st digit
display.setDot(1);                    // set . at the 1st digit
display.setNumber(2, 3);              // set 3 at the 2nd digit
display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit
display.setChar(4, SegChars::C);      // set C at the 3rd digit
display.show();                       // show on the display

 

- 74HC595 4자리 7세그먼트 모듈은 멀티플렉싱 기술을 사용하여 개별 세그먼트와 LED를 제어하므로 ESP32 코드는 다음을 수행해야 합니다.

- 메인 루프에서 display.show() 함수를 호출합니다.

- 메인 루프에서 delay() 함수를 사용하지 않습니다.

 

라이브러리 참조에서 자세한 내용을 확인할 수 있습니다.

 

ESP32 코드 - 정수 표시

 

/*
 * This ESP32 code is created by esp32io.com
 *
 * This ESP32 code is released in the public domain
 *
 * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-74hc595-4-digit-7-segment-display
 */

#include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library

#define SCLK  27  // The ESP32 pin GPIO27 connected to SCLK
#define RCLK  26  // The ESP32 pin GPIO26 connected to RCLK
#define DIO   25  // The ESP32 pin GPIO25 connected to DIO

DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO);

void setup() {
  Serial.begin(9600);

  display.printInt(-13, false); // you can display a value from -999 to 9999
  //display.printInt(-132, false);
  //display.printInt(9132, false);
  //display.printInt(132, false);
  //display.printInt(32, false);
  //display.printInt(2, false);
  //display.printInt(2, true);
}

void loop() {
  display.loop(); // MUST call the display.loop() function in loop()

  // DO SOMETHING HERE
  // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing
}

 

 

빠른 지침

 

- ESP32를 처음 사용하는 경우 Arduino IDE에서 ESP32 환경을 설정하는 방법을 참조하세요.

- 위 이미지와 같이 배선합니다.

- 마이크로 USB 케이블을 통해 ESP32 보드를 PC에 연결합니다.

- PC에서 Arduino IDE를 엽니다.

- 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택합니다.

- 위 코드를 복사하여 ESP32 IDE로 엽니다.

- ESP32 IDE에서 업로드 버튼을 클릭하여 코드를 ESP32에 업로드합니다.

- 7세그먼트 디스플레이의 상태를 확인합니다.

 

ESP32 코드 - 플로트 표시

 

/*
 * This ESP32 code is created by esp32io.com
 *
 * This ESP32 code is released in the public domain
 *
 * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-74hc595-4-digit-7-segment-display
 */

#include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library

#define SCLK  27  // The ESP32 pin GPIO27 connected to SCLK
#define RCLK  26  // The ESP32 pin GPIO26 connected to RCLK
#define DIO   25  // The ESP32 pin GPIO25 connected to DIO

DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO);

void setup() {
  Serial.begin(9600);
  display.printFloat(-9.2,  1, false);
  //display.printFloat(-92.4, 1, false);
  //display.printFloat(-9.24, 2, false);
  //display.printFloat(192.4, 1, false);
  //display.printFloat(19.24, 2, false);
  //display.printFloat(1.924, 3, false);
}

void loop() {
  display.loop(); // MUST call the display.loop() function in loop()

  // DO SOMETHING HERE
  // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing
}

 

 

ESP32 코드 - 온도 표시

 

/*
 * This ESP32 code is created by esp32io.com
 *
 * This ESP32 code is released in the public domain
 *
 * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-74hc595-4-digit-7-segment-display
 */

#include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library

#define SCLK  27  // The ESP32 pin GPIO27 connected to SCLK
#define RCLK  26  // The ESP32 pin GPIO26 connected to RCLK
#define DIO   25  // The ESP32 pin GPIO25 connected to DIO

DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO);

void setup() {
  Serial.begin(9600);

  // display 9.3°C by controlling digit by digit
  display.clear();
  display.setNumber(1, 9);              // set 9 at the 1st digit
  display.setDot(1);                    // set . at the 1st digit
  display.setNumber(2, 3);              // set 3 at the 2nd digit
  display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit
  display.setChar(4, SegChars::C);      // set C at the 3rd digit
  display.show();                       // show on the display
}

void loop() {
  display.loop(); // MUST call the display.loop() function in loop()

  // DO SOMETHING HERE
  // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing
}

 

비디오 튜토리얼

 

비디오를 만드는 것은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 필요한 경우 YouTube 채널을 구독하여 알려주세요. 비디오에 대한 수요가 높으면 비디오 튜토리얼을 만들 것입니다.

 

- ESP32 - TM1637 4자리 7세그먼트 디스플레이

 

잘 만들고 정보가 가득한데 너무 자료 이동을 금지한 탓에 빛이 바랬다. 그래도 역시 사이트 내용이 우수하다.

 

위 문서의 자료 링크는 이곳을 따라가세요. 배움을 멈추지 마세요.

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^