ESP32 - 74HC595 4자리 7세그먼트 디스플레이
이 튜토리얼은 ESP32를 사용하여 74HC595 4자리 7세그먼트 디스플레이 모듈을 제어하는 방법을 안내합니다. 다음 주제를 다룹니다. 이 튜토리얼의 참고 문서 링크는 다 좋은 데 카피를 하기가 어렵다. 물론 이미지와 코드는 잘 데리고 온다. 지금은 에버노트에 저장하고 그다음 번역하였다. 그래도 내용만으로 감사하다. ^^
아래 링크는 다른 방식으로 할 경우를 위해 남겨둔다.
참고하고 다른 방식 알아본다.
https://randomnerdtutorials.com/arduino-temperature-displayed-on-4-digit-7-segment/
이거로 해볼까?
https://microcontrollerslab.com/esp32-74hc595-4-digit-7-segment-display/

- ESP32를 74HC595 4자리 7세그먼트 디스플레이 모듈에 연결
- ESP32를 프로그래밍하여 모듈에 정수를 표시
- ESP32를 프로그래밍하여 모듈에 부동 소수점 숫자를 표시
- ESP32를 프로그래밍하여 모듈에 숫자와 문자를 표시

이 튜토리얼은 부동 소수점 값을 표시할 수 있는 4점 4자리 7세그먼트 디스플레이 모듈을 활용합니다. 콜론 구분 기호를 표시해야 하는 경우 TM1637 4자리 7세그먼트 디스플레이 모듈을 참조하세요.
이 튜토리얼에서 사용된 하드웨어는 위 연결도를 참고하세요.
74HC595 4자리 7세그먼트 디스플레이 소개
온도 또는 모든 부동 소수점 값을 표시하는 데 이상적인 모듈은 74HC595 4자리 7세그먼트 디스플레이입니다. 이 모듈에는 일반적으로 7세그먼트 LED 4개, 점 모양 LED 4개, 각 숫자에 대한 74HC595 드라이버 2개가 포함됩니다.
핀아웃
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>
- 디스플레이 모듈의 SCLK, RCLK 및 DIO에 연결되는 ESP32의 핀을 정의합니다. 예를 들어, 핀 D7, D6 및 D5
#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 유형의 디스플레이 객체를 만듭니다.
DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);
- 그런 다음 음수를 지원하는 0 패딩 옵션으로 정수를 표시할 수 있습니다.
display.printInt(-13, false); // you can display a value from -999 to 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
}
시계 표시에 사용하는 TM1634 4 Digit 7 Segment 디스플레이 기사를 참고하세요.
'ESP32' 카테고리의 다른 글
| ESP32 4-digit 7-segment display (4) | 2024.11.11 |
|---|---|
| Android 폰에서 ESP32로 데이터를 보내는 방법 (5) | 2024.11.11 |
| esp32에서 블루투스를 사용하여 스마트폰과 데이터를 주고받는 방법 (2) | 2024.11.10 |
| ESP32 센서 데이터 대시보드 BLE, Flask 서버, SQLite (5) | 2024.11.09 |
| ESP32-wroom-32 high resolution pinout and specs (2) | 2024.11.08 |
| 1.69inch LCD Display Module, 240×280 (9) | 2024.11.06 |
| ds18b20 온도 센서 여러 개 스캔 주소 얻기 (3) | 2024.11.04 |
| ESP32 VS Code와 PlatformIO에 LittleFS 파일 시스템 업로드 (4) | 2024.11.03 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩