타이머는 시간 간격을 측정하는 데 사용되는 시계 유형입니다. 타이머에는 두 가지 유형이 있는데, 하나는 경과 시간을 측정하기 위해 0부터 위쪽으로 카운트하는 스톱워치 라고합니다. 그리고 두 번째는 일반적으로 카운트 다운 타이머 라고하는 사용자가 제공 한 지정된 시간에서 카운트 다운합니다.
이 튜토리얼에서는 Arduino를 사용하여 카운트 다운 타이머 를 만드는 방법을 보여줍니다. 여기에서는 시간을 얻기 위해 RTC (Real Time Clock) 모듈을 사용하지 않습니다. 지속 시간은 키패드 및 16x2 LCD를 통해 사용자가 제공합니다. 그리고 타이머가 0에 도달하면 부저의 도움으로 경고음이 발생합니다.
필요한 재료
- Arduino UNO
- LCD 16 * 2
- 4 * 4 매트릭스 키패드
- 부저
- 누름 단추
- 전위차계 (10k)
- 저항기 (10k, 100ohm)
- 전선 연결
Arduino 카운트 다운 타이머 회로도
여기서는 Arduino Uno가 메인 컨트롤러로 사용됩니다. 시간을 입력하는 데 키패드가 사용되며 카운트 다운을 표시하는 데 16 * 2 LCD가 사용됩니다. 푸시 버튼은 시간을 시작하는 데 사용됩니다. Arduino와 4x4 키패드 및 Arduino와 16x2 LCD를 인터페이스하는 방법을 여기에서 확인하십시오.
Arduino 카운트 다운 타이머 코드 및 설명
이 프로젝트의 끝에 완전한 Arduino 타이머 코드 가 제공됩니다.
아래 코드에서는 키패드 및 LCD 용 라이브러리와 코드에 사용 된 변수 를 초기화 하고 있습니다.
#포함
이제 아래 코드 에서 no. 키패드의 매트릭스를 정의하기위한 행과 열의 수.
const 바이트 ROWS = 4; // 네 행 const byte COLS = 4; // 세 열 char 키 = {{ '1', '2', '3', 'A'}, { '4', '5', '6', 'B'}, { '7', ' 8 ','9 ','C '}, {'* ','0 ','# ','D '}};
4 * 4 매트릭스 키패드를 Arduino와 연결하려면 행과 열에 대한 핀을 정의해야합니다. 그래서 아래 코드에서 우리는 16x2 LCD뿐만 아니라 키패드에 대한 핀을 정의했습니다.
바이트 rowPins = {6, 7, 8, 9}; // 키패드 ROW0, ROW1, ROW2 및 ROW3을이 Arduino 핀에 연결 byte colPins = {10, 11, 12, 13}; // 키패드 COL0, COL1 및 COL2 연결 t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // LC 개체를 만듭니다. 매개 변수: (rs, enable, d4, d5, d6, d7)
아래 코드는 키패드를 만드는 데 사용됩니다.
키패드 kpd = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS);
에서 무효 setFeedingTime () 함수 코드, 푸시 버튼을 누른 후 우리는 타이머 시간을 입력 할 수 있습니다, 다음 타이머 지속 시간을 입력 한 후, 우리는 카운트 다운을 시작 눌러 D에 있습니다.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("공급 시간 설정"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); char j; if (key! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (키); r = 키 -48; i ++; j ++; if (j == 2-j == 5) {lcd.print (":"); j ++; } 지연 (500); } if (key == 'D') {key = 0; 단절; }} lcd.clear (); }
에서는 무효 설정 () 함수 , 우리는 LCD와 시리얼 통신을 초기화 한 코드 아래의 입력 및 출력 핀으로서 정의.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
이 Arduino Countdown Timer의 작동 은 간단하지만 코드는 약간 복잡합니다. 코드는 코드의 주석으로 설명됩니다.
처음에는 누름 버튼을 누를 때까지 LCD 디스플레이에 "Arduino Timer"가 인쇄됩니다. 푸시 버튼을 누르 자마자 " setFeedingTime "기능 을 호출하여 카운트 다운 시간을 입력 하라는 메시지가 표시 됩니다. 그런 다음 키패드를 사용하여 기간을 입력 할 수 있습니다. 그런 다음 'D'를 눌러 시간을 절약하고 카운트 다운 타이머를 시작해야합니다. 여기 void loop () 함수에서 초 단위로 시간을 줄이고 남은 시간에 따라 적절한 시간, 분, 초 (HH: MM: SS) 값을 표시하기 위해 몇 가지 계산을 수행했습니다. 모든 코드는 주석으로 잘 설명됩니다. 아래 에서 전체 코드와 데모 비디오를 확인할 수 있습니다.
타이머가 0에 도달하면 부저가 울리기 시작하고 100 번만 울립니다 (코드에 따라). 버저를 중지하려면 푸시 버튼을 길게 누르십시오. 카운트 사이에 타이머를 중지하기 위해 언제든지 푸시 버튼을 사용할 수 있습니다.