Course Content
코딩소스
0/1
[아두이노 키트] 세그먼트모듈
About Lesson

기본설정

  1. 아두이노 설치 및 환경설정이 완료된 상태여야 합니다.

2. 라이브러리는 하기 버튼을 눌러 다운로드하고 설치하세요

3. 아래 소스코드를 보드설정-컴파일-업로드 과정을 진행 후 실행하세요

소스 코드

– 코드설명 :

  • 아두이노가 0부터 9999까지 숫자를 반복 증가시킵니다.
  • 각 숫자의 1000의 자리, 100의 자리, 10의 자리, 1의 자리를 분리합니다.
  • 분리된 숫자를 encodeDigit() 함수를 통해 7세그먼트에 표시 가능한 형태로 변환합니다.
  • setSegments() 함수를 사용해 4자리 숫자를 디스플레이에 표시합니다.
  • 시리얼 모니터에도 현재 숫자가 함께 출력됩니다.
  • 10ms 간격으로 빠르게 카운트가 올라갑니다.
				
					#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 11
#define DIO 12

uint8_t data[] = { 0x00, 0x00, 0x00, 0x00 };  // 초기 출력값 0000
int seg3, seg2, seg1, seg0;

TM1637Display display(CLK, DIO);

void setup() {
  display.setBrightness(15);                  // 0 ~ 15 (15가 가장 밝음)
  // display.setBrightness(0x0f);

  Serial.begin(9600);
}

void loop() {
  for(int digitValue = 0; digitValue <= 9999; digitValue++) {     // 0~9999까지 1씩 증가시킴
    seg0 = (digitValue / 1000) % 10; // 4자리에서 1000의 자리 숫자 저장
    seg1 = (digitValue / 100) % 10;  // 4자리에서 100의 자리 숫자 저장
    seg2 = (digitValue / 10) % 10;   // 4자리에서 10의 자리 숫자 저장
    seg3 = digitValue % 10;          // 4자리에서 1의 자리 숫자 저장

    data[0]=display.encodeDigit(seg0);  // 첫번째 FND에 1000의 자리 숫자배열
    data[1]=display.encodeDigit(seg1);  // 두번째 FND에 100의 자리 숫자 배열
    data[2]=display.encodeDigit(seg2);  // 세번째 FND에 10의 자리 숫자 배열
    data[3]=display.encodeDigit(seg3);  // 네번째 FND에 1의 자리 숫자 배열

    display.setSegments(data);
    Serial.println(digitValue);
    delay(10);                       // 10ms 마다 카운트
  }
}

				
			

작동영상