본문 바로가기

ESP32

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

반응형

 

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 디스플레이 기사를 참고하세요.

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩