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 (2) | 2024.11.06 |
ds18b20 온도 센서 여러 개 스캔 주소 얻기 (3) | 2024.11.04 |
ESP32 VS Code와 PlatformIO에 LittleFS 파일 시스템 업로드 (4) | 2024.11.03 |
더욱 좋은 정보를 제공하겠습니다.~ ^^