아두이노 - TM1637 4자리 7세그먼트 디스플레이 | Arduino - TM1637 4-Digit 7-Segment Display
시계, 타이머 및 카운터 프로젝트에는 표준 4자리 7세그먼트 디스플레이가 필요하지만, 대체로 12개의 연결이 필요합니다. TM1637 모듈은 전원을 위한 2개와 세그먼트를 제어하기 위한 2개, 총 4개의 연결만으로 이를 더 쉽게 만듭니다.
이 튜토리얼은 하드웨어에 깊이 파고들어 여러분을 압도하지 않을 것입니다. 대신, 4자리 7세그먼트 디스플레이를 아두이노에 연결하는 방법과 원하는 것을 표시하도록 프로그래밍하는 방법을 배울 것입니다.
이 튜토리얼에서는 콜론으로 구분된 4자리 7세그먼트 디스플레이 모듈을 사용할 것입니다. 실수를 표시하고 싶다면, 74HC595 4자리 7세그먼트 디스플레이 모듈을 사용해 주세요.
준비물
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | TM1637 4-digit 7-segment Display (colon-separated) | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon |
TM1637 4자리 7세그먼트 디스플레이에 관하여
TM1637 모듈은 일반적으로 네 개의 7-세그먼트 LED와 가운데 콜론 모양의 LED로 구성됩니다: 이는 시간을 시간과 분, 또는 분과 초, 또는 두 팀의 점수를 표시하는 데 이상적입니다.
핀배치
TM1637 4자리 7세그먼트 디스플레이 모듈에는 4개의 핀이 포함되어 있습니다:
- CLK pin: 클록 입력 핀입니다. 아두이노의 어떤 디지털 핀에나 연결하세요.
- DIO pin: 데이터 입출력 핀입니다. 아두이노의 어떤 디지털 핀에나 연결하세요.
- VCC pin: 핀은 모듈에 전력을 공급합니다. 3.3V에서 5V 전원 공급장치에 연결하세요.
- GND pin: 접지 핀입니다.
선연결
TM1637을 아두이노에 연결하려면 네 개의 전선을 연결하세요: 두 개는 전력을 위한 것이고 두 개는 디스플레이를 제어하기 위한 것입니다. 모듈은 아두이노의 5볼트 출력에서 전원을 공급받을 수 있습니다. CLK와 DIO 핀을 아두이노의 아무 디지털 핀에나 연결하세요. 예를 들어, 아두이노의 2번과 3번에 연결합니다. 코드 내의 핀 번호는 사용하는 핀이 다를 경우 변경해야 합니다.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
라이브러리 설치
TM1637 4자리 7세그먼트 디스플레이를 쉽게 프로그래밍하려면 Avishay Orpaz가 제작한 TM1637Display 라이브러리를 설치해야 합니다. 라이브러리를 설치하려면 아래 단계를 따르십시오:
- Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘으로 이동하세요.
- “TM1637”을 검색한 다음, Avishay Orpaz에 의한 TM1637Display 라이브러리를 찾으세요.
- Install 버튼을 클릭하세요.
아두이노를 사용한 TM1637 4자리 7세그먼트 프로그래밍 방법
- 라이브러리를 포함하세요.
디스플레이 모듈의 CLK와 DIO에 연결되는 아두이노의 핀을 정의합니다. 예를 들어, 핀 D9와 D10
TM1637Display 타입의 디스플레이 객체를 생성하십시오.
- 그러면 숫자, 소수점이 있는 숫자, 마이너스 부호가 있는 숫자 또는 글자를 표시할 수 있습니다. 글자의 경우에는 글자 형태를 정의해야 합니다. 하나씩 살펴보겠습니다.
- 숫자 표시: 아래 예시를 참고하세요. 아래 설명에서 '_'는 실제로 아무것도 표시하지 않는 숫자를 대신합니다.
콜론이나 점을 사용하여 숫자를 표시하십시오.
이 튜토리얼의 끝에 있는 함수 참조에서 더 자세한 정보를 볼 수 있습니다.
아두이노 코드
사용 방법
- 위의 코드를 복사하고 Arduino IDE로 열기
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino에 업로드하기
- 7세그먼트 디스플레이의 상태를 확인하기
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
함수 참조
아래는 다음 함수를 위한 참조입니다:
- display.clear() - display.clear()
- display.showNumberDec() - display.showNumberDec()
- display.showNumberDecEx() - display.showNumberDecEx()
- display.setSegments() - display.setSegments()
- display.setBrightness() - display.setBrightness()
display.clear()
디스플레이.clear()
설명
이 기능은 디스플레이를 지웁니다. 모든 LED를 끕니다.
display.showNumberDec()를 표시합니다.
설명
이 기능은 7-세그먼트 디스플레이에 소수점 숫자를 표시하는 데 사용됩니다.
구문론
매개변수
- num: 이것은 7-세그먼트 디스플레이에 표시될 숫자입니다. -9999에서 9999 범위 안에 있어야 합니다.
- leading_zero: 이것은 기본값이 false인 선택적 매개변수입니다. 이것이 true로 설정되면 선행 0이 표시됩니다.
- length: 이것은 기본값이 4인 선택적 매개변수입니다. 이것은 7-세그먼트 디스플레이에 표시될 숫자의 자릿수를 설정합니다.
- pos: 이것은 기본값이 0인 선택적 매개변수입니다. 이것은 숫자의 가장 중요한 자리의 위치를 설정합니다.
참고로, 숫자가 범위를 벗어나거나 길이의 값이 4보다 크면 함수는 아무것도 표시하지 않습니다.
showNumberDecEx()를 보여주다
설명
이 함수는 showNumberDec() 함수에 비해 추가 기능을 가진 7세그먼트 디스플레이에서 십진수를 표시하는 데 사용됩니다. 이것은 각 자릿수의 점이나 콜론 세그먼트를 개별적으로 제어할 수 있게 해주는 showNumberDec()의 고급 버전입니다.
구문론
매개 변수
- num1: 이것은 7세그먼트 디스플레이에 표시될 숫자입니다. -9999부터 9999까지의 범위 내에 있어야 합니다.
- dots: 이 매개변수는 디스플레이의 어떤 세그먼트가 점으로 켜질지를 지정하는 데 사용됩니다. 값의 각 비트는 디스플레이상의 숫자에 해당합니다: 유효한 값
- 0b10000000: 첫 번째 점을 표시: 0.000
- 0b01000000: 두 번째 점을 표시: 00.00
- 0b00100000: 세 번째 점을 표시: 000.0
- 0b01000000: 콜론만 있는 디스플레이의 경우: 00:00
- leading_zero: 이것은 기본 값이 false인 선택적 매개변수입니다. true로 설정되면 선행 제로가 표시됩니다.
- length: 이것은 기본 값이 4인 선택적 매개변수입니다. 7세그먼트 디스플레이에 표시될 숫자의 개수를 설정합니다.
- pos: 이것은 기본 값이 0인 선택적 매개변수입니다. 숫자의 가장 유의미한 자리의 위치를 설정합니다.
예를 들어, display.showNumberDecEx(1530,0b01000000);를 호출하면 7-세그먼트 디스플레이에 15:30이라는 숫자가 표시됩니다.
참고하세요, 만약 숫자가 범위를 벗어나거나 길이의 값이 4보다 크면, 함수는 아무것도 표시하지 않을 것입니다.
세그먼트 설정하기()
설명
이 함수는 7-세그먼트 디스플레이의 세그먼트를 직접 설정하는 데 사용됩니다. 문자, 특수 문자를 표시하거나 모든 LED 세그먼트를 켜는 데 사용할 수 있습니다.
문법
매개변수
- segments: 이 매개변수는 7-세그먼트 디스플레이의 세그먼트를 설정합니다. 이것은 바이트의 배열로, 각 바이트가 각 자릿수의 세그먼트를 나타냅니다. 각 세그먼트는 바이트 내의 비트로 표시됩니다.
- length: 이것은 선택적 매개변수로 기본값은 4입니다. 이는 7-세그먼트 디스플레이에 표시될 숫자의 자릿수를 설정합니다.
- pos: 이것은 선택적 매개변수로 기본값은 0입니다. 이는 숫자의 가장 중요한 자릿수의 위치를 설정합니다.
이 기능은 기본 7-세그먼트 디스플레이에 포함되지 않은 문자나 기호를 표시하고자 할 때 유용합니다. 세그먼트를 직접 설정함으로써 원하는 어떤 패턴이든 표시할 수 있습니다.
참고로, 숫자가 범위를 벗어나거나 길이의 값이 4보다 크면, 함수는 아무것도 표시하지 않습니다.
setBrightness()를 설정하다
설명
해당 함수는 7세그먼트 디스플레이의 밝기를 설정하는 데 사용됩니다.
구문
매개 변수
- 밝기: 이 매개변수는 7-세그먼트 디스플레이의 밝기 수준을 설정합니다. 값은 0에서 7 사이여야 합니다. 값이 높을수록 디스플레이가 더 밝아집니다.
- 켜짐: 이것은 기본값이 true인 선택적 매개변수입니다. 디스플레이를 켜거나 끄는 데 사용됩니다. false로 설정되면 디스플레이가 꺼집니다.