이 프로젝트에서는 LCD 화면에 시간과 날짜를 표시하는 방법을 살펴봅니다. 이 프로젝트는 알람 시계나 단순한 시계를 만드는 데 매우 유용할 수 있습니다. 아두이노 보드에 배터리를 추가하고 3D 프린터로 상자를 인쇄하기만 하면 실제 독립형 시계를 만들 수 있습니다.

난이도 :

필요한 자료

이제 프로젝트에 필요한 하드웨어를 살펴보겠습니다:

  • 아두이노 우노 보드
  • 16×2 액정 LCD 화면
  • 전위차계
  • 220 옴 저항기
  • 연결 전선 (약 15개!)

아두이노 시계 다이어그램

Schéma horloge Arduino

포텐셔미터의 용도는 무엇인가요?

전위차계는 화면 밝기를 조정하는 데 사용됩니다. 전위차계 없이도 5V를 갈색 선에 직접 연결하고 전위차계에서 화면으로 연결되는 GND를 아두이노 보드에 직접 연결할 수 있습니다.

프로그램

#include <LiquidCrystal.h> // Library for LCD Screen

int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second minute hour day month year
int limits[6] = {60, 60, 24, 31, 12, 3000}; // increment limits
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Initialize the library with the connected pins

void setup() {
  lcd.begin(16, 2); // Initialize the LCD with its dimensions
}

void loop() {
  time_date[0]++; // time increment
    for (int i = 0; i < 6 ; i++){
      if (time_date[i] == limits[i]) { // check limit overflow
        if (i<5) {time_date[i+1]++;}
        time_date[i] = 0;
      }
    }
    lcd.setCursor(0,0); // Position cursor on first line
    for (int j = 3; j < 5; j++) { // display date
      if (time_date[j]<10){
        lcd.print("0");
        lcd.print(time_date[j]);
      }
        else {lcd.print(time_date[j]);}
      lcd.print("/");    
    }
    lcd.print(time_date[5]); 
    lcd.setCursor(0,1); // Position cursor on second line
    for (int j = 2; j >= 0; j--) { // display time
      if (time_date[j]<10)
      {
        lcd.print("0");
        lcd.print(time_date[j]);
      }else {lcd.print(time_date[j]);}
      if (j != 0){
        lcd.print(":"); 
      }   
    }
    delay(250);
}

프로그램에서 시간과 날짜를 변경하세요!

이미지에서 볼 수 있듯이 시작 날짜와 시간은 고정되어 있으며 반드시 올바른 날짜에 맞춰져 있는 것은 아닙니다. 따라서 프로그램에서 이 날짜를 직접 변경할 수 있습니다.

변경할 라인은 다음과 같습니다:

int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second, minute, hour, day, month, year

아두이노가 꺼져 있을 때 현재 시간을 유지하려면 어떻게 해야 하나요?

보시다시피 아두이노 보드의 전원이 꺼지면 시계와 날짜가 계속 업데이트되지 않습니다. 예를 들어 시계를 만드는 경우 이는 성가신 일이 될 수 있습니다. 이 문제를 해결하려면 아두이노 보드의 전원 공급 장치와 독립적인 배터리 덕분에 아두이노 보드가 꺼져 있어도 시간을 계산하는 rtc 클록 모듈(예: DS3231)을 프로젝트에 추가할 수 있습니다.

시뮬레이션