아두이노 나노 ESP32 - 74HC595 4자리 7세그먼트 디스플레이 | Arduino Nano ESP32 - 74HC595 4-Digit 7-Segment Display

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

Arduino Nano ESP32 74HC595 4-digit 7-segment display

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

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×74HC595 4-digit 7-segment Display Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Nano ESP32 Amazon
1×(Recommended) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

74HC595 4자리 7세그먼트 디스플레이에 대하여

온도 또는 어떤 부동 소수점 값을 표시하기에 이상적인 모듈은 74HC595 4자리 7세그먼트 디스플레이입니다. 이 모듈은 일반적으로 네 개의 7세그먼트 LED, 네 개의 점 모양 LED, 각 숫자마다 두 개의 74HC595 드라이버를 포함하고 있습니다.

핀배열

74HC595 4자리 7세그먼트 디스플레이 모듈은 5개의 핀을 포함합니다:

  • SCLK 핀: 클럭 입력 핀입니다. 아두이노 나노 ESP32의 아무 디지털 핀에나 연결하세요.
  • RCLK 핀: 클럭 입력 핀입니다. 아두이노 나노 ESP32의 아무 디지털 핀에나 연결하세요.
  • DIO 핀: 데이터 I/O 핀입니다. 아두이노 나노 ESP32의 아무 디지털 핀에나 연결하세요.
  • VCC 핀: 모듈에 전력을 공급합니다. 3.3V에서 5V 전원 공급에 연결하세요.
  • GND 핀: 접지 핀입니다.
74HC595 module pinout

선연결

아래 표는 아두이노 나노 ESP32 핀과 74HC595 4자리 7세그먼트 디스플레이 핀 간의 연결을 보여줍니다:

Arduino Nano ESP32 74HC595 7-segment display
3.3VVCC
D7SCLK
D6RCLK
D5DIO

다른 핀을 사용하는 경우, 코드 안의 핀 번호를 그에 맞게 변경해야 합니다.

Arduino Nano ESP32 74HC595 Module wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

라이브러리 설치

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

  • 왼쪽 탐색 바의 Library Manager 아이콘을 클릭하여 라이브러리 관리자를 엽니다.
  • “DIYables_4Digit7Segment_74HC595”를 검색한 다음, DIYables.io가 만든 DIYables_4Digit7Segment_74HC595 라이브러리를 찾습니다.
  • Install 버튼을 클릭합니다.
Arduino Nano ESP32 74HC595 4-digit 7-segment display library

아래의 링크에서 이 라이브러리도 볼 수 있습니다. Github에서 이 라이브러리 보기

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

라이브러리를 포함하세요.

#include <DIYables_4Digit7Segment_74HC595.h>

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

#define SCLK D7 // 아두이노 나노 ESP32 핀이 SCLK에 연결됨 #define RCLK D6 // 아두이노 나노 ESP32 핀이 RCLK에 연결됨 #define DIO D5 // 아두이노 나노 ESP32 핀이 DIO에 연결됨

DIYables_4Digit7Segment_74HC595 유형의 디스플레이 객체를 생성하세요.

DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);

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

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

십진수 자리, 0으로 채우는 옵션을 사용하여 부호 있는 수를 지원하면서 부동 소수점 숫자를 표시할 수 있습니다.

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

낮은 수준의 기능을 사용하여 숫자, 소수점, 문자를 자릿수별로 표시할 수도 있습니다.

// 9.3°C 표시 display.clear(); display.setNumber(1, 9); // 1번째 자리에 9 설정 display.setDot(1); // 1번째 자리에 . 설정 display.setNumber(2, 3); // 2번째 자리에 3 설정 display.setChar(3, SegChars::DEGREE); // 3번째 자리에 ° 설정 display.setChar(4, SegChars::C); // 4번째 자리에 C 설정 display.show(); // 디스플레이에 표시

74HC595 4자리 7세그먼트 모듈이 개별 세그먼트와 LED를 제어하기 위해 멀티플렉싱 기법을 사용하기 때문에, Arduino Nano ESP32 코드는 반드시:

  • 메인 루프에서 display.show() 함수를 호출해야 하며,
  • 메인 루프에서 delay() 함수를 사용해서는 안 됩니다.

자세한 내용은 도서관 참조에서 확인할 수 있습니다.

아두이노 나노 ESP32 코드 - 정수 디스플레이

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> #define SCLK D7 #define RCLK D6 #define DIO D5 DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printInt(-13, false); // -999에서 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(); // loop() 안에서 display.loop() 함수를 반드시 호출해야 합니다. // 여기에 무언가를 하세요. // 주의: loop에서 delay() 함수를 사용하지 마세요. 멀티플렉싱에 영향을 줍니다. }

사용 방법

Arduino Nano ESP32를 시작하는 방법은 다음과 같습니다:

  • 아두이노 나노 ESP32에 익숙하지 않다면, 아두이노 IDE에서 아두이노 나노 ESP32 환경을 설정하는 방법에 대한 튜토리얼을 참조하세요. [BASE_URL/tutorials/arduino-nano-esp32/arduino-nano-esp32-software-installation].
  • 제공된 도면에 따라 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 아두이노 나노 ESP32 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 아두이노 IDE를 실행하세요.
  • Arduino Nano ESP32 보드와 해당 COM 포트를 선택하세요. * 위의 코드를 복사하고 아두이노 나노 ESP32 IDE로 열기
  • 아두이노 나노 ESP32 IDE에서 Upload 버튼을 클릭하여 아두이노 나노 ESP32에 코드를 업로드하세요
  • 7-세그먼트 디스플레이의 상태를 확인하세요

아두이노 나노 ESP32 코드 - 부동 소수점 표시

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 라이브러리 #define SCLK D7 // 아두이노 나노 ESP32 핀이 SCLK에 연결됨 #define RCLK D6 // 아두이노 나노 ESP32 핀이 RCLK에 연결됨 #define DIO D5 // 아두이노 나노 ESP32 핀이 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(); // loop() 함수에서 display.loop() 함수를 호출해야 함 // 여기서 무언가를 함 // 참고: loop 안에서 delay() 함수를 사용하지 마십시오. 멀티플렉싱에 영향을 미칩니다 }

아두이노 나노 ESP32 코드 - 온도 표시

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 라이브러리 #define SCLK D7 // SCLK에 연결된 아두이노 나노 ESP32 핀 #define RCLK D6 // RCLK에 연결된 아두이노 나노 ESP32 핀 #define DIO D5 // DIO에 연결된 아두이노 나노 ESP32 핀 DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); // 숫자별로 제어하여 9.3°C 표시 display.clear(); display.setNumber(1, 9); // 1번째 자리에 9 설정 display.setDot(1); // 1번째 자리에 . 설정 display.setNumber(2, 3); // 2번째 자리에 3 설정 display.setChar(3, SegChars::DEGREE); // 3번째 자리에 ° 설정 display.setChar(4, SegChars::C); // 4번째 자리에 C 설정 display.show(); // 디스플레이에 표시 } void loop() { display.loop(); // loop() 내에서 display.loop() 함수를 반드시 호출해야 합니다. // 여기에 코드 작성 // 주의: loop 내에서 delay() 함수를 사용하지 마세요. 멀티플렉싱에 영향을 줍니다. }

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!