지연을 위한 Arduino 타이머 라이브러리

Jiyeon Eul Wihan Arduino Taimeo Laibeuleoli



타이머는 시간에 민감한 작업을 처리하는 Arduino의 핵심 구성 요소 중 하나입니다. 아두이노의 타이머는 일반적으로 delay() 함수를 사용하여 짧은 시간 간격 동안 실행을 지연하거나 일시 중지합니다. 그러나 멀티태스킹을 위해서는 지연 기능을 위한 특수 라이브러리가 필요합니다.

이 가이드는 간단한 설명과 함께 지연을 위한 다양한 Arduino 타이머 라이브러리를 다룹니다. 그 전에 Arduino delay() 함수의 한계를 이해합시다.







지연()의 한계

delay() 함수는 차단 함수이므로 여러 작업을 동시에 수행하려는 경우 사용할 수 없습니다. 이는 delay() 함수가 작업 실행을 일시 중지하는 데 사용될 때마다 그 동안 다른 함수가 실행되는 것을 허용하지 않음을 의미합니다. 따라서 누군가가 다른 프로그램을 실행하는 동안 한 프로그램을 중지하고 싶을 때 delay()를 사용할 수 없습니다.



그럼 어떻게 해야 할까요?



함수 호출 지연을 위한 Arduino 타이머 라이브러리

이 문제를 해결하려면 지연을 수행하도록 설계된 특수 라이브러리를 사용해야 합니다. 이러한 라이브러리를 사용하면 일정 시간 동안 프로그램의 일부 기능을 일시 중지하고 그 동안 다른 기능을 실행할 수 있습니다. 이러한 라이브러리는 멀티태스킹을 차단하지 않는 타이머 라이브러리입니다. 필요에 따라 기능을 호출하는 데 사용할 수 있습니다.





Arduino 코드에 Arduino 타이머 라이브러리를 포함하는 방법

먼저 타이머 라이브러리를 포함하려면 다음으로 이동하여 zip 파일을 추가해야 합니다. 라이브러리 포함 Arduino IDE의 섹션. Arduino 라이브러리 추가에 대한 자세한 설명은 다음 기사를 참조하십시오. Arduino IDE에 라이브러리를 설치하는 방법 .

1 단계

먼저 Arduino 타이머 라이브러리를 다운로드해야 합니다.



2 단계

타이머 라이브러리를 다운로드한 후 Arduino IDE를 열고 스케치, 라이브러리 포함으로 이동한 다음 ZIP 라이브러리 추가를 클릭합니다.


아두이노가 표시됩니다 '라이브러리 설치됨' 출력에서.

3단계

ZIP 라이브러리를 Arduino IDE에 추가하면 Arduino IDE의 포함 라이브러리 옵션 드롭다운 목록에 나타납니다. 여기에서 포함 시간제 노동자 도서관.


포함할 때 '시간제 노동자' 라이브러리에서 전처리기 지시문이 스케치에 나타납니다. 그렇지 않으면 4단계에 따라 라이브러리를 수동으로 포함할 수 있습니다.

# 포함하다 < 타이머.h >

4단계

Arduino 코드에 Arduino 타이머 라이브러리를 포함하려면 다음을 사용해야 합니다. #포함하다 와 함께 지시 (.시간) 확장 타이머 라이브러리 이름을 입력한 후 아래와 같이 타이머를 생성합니다.

#include <타이머.h>
자동 타이머 = timer_create_default ( ) ;


타이머를 생성한 후에는 해당 타이머를 호출하는 함수를 만들어야 합니다. 지정된 시간, 짧은 지연 후 또는 시간 간격 후에 타이머를 호출해야 할 수 있습니다. 이러한 조건에서 타이머를 호출하는 예는 다음과 같습니다.

짧은 지연을 원하는 경우

타이머.인 ( 지연, function_to_call ) ;
타이머.인 ( 지연, function_to_call, 인수 ) ; // 또는 선택적 인수로 ~을 위한 function_to_call


이 경우 다음을 사용할 수 있습니다. 타이머.인() 특정 함수를 호출하기 전에 지연을 도입하는 함수. 지연 매개변수는 코드를 실행하기 전에 대기하려는 시간(밀리초)을 나타냅니다.

지정된 지연 후, function_to_call 사용하게 될 것이다. 호출 시 함수에 전달하도록 인수를 정의할 수도 있습니다.

특정 시간에 타이머를 호출하고 싶은 경우

이 기능은 특정 시간에 특정 기능을 실행하도록 타이머를 설정합니다. time 매개변수는 함수가 호출되어야 하는 시간을 지정합니다. 특정 타임스탬프 또는 지연 값(밀리초)일 수 있습니다. 그만큼 function_to_call 타이머 만료 후 실행될 함수의 매개변수입니다.

timer.at ( 시간 , function_to_call ) ;
timer.at ( 시간 , function_to_call, 인수 ) ; // 인수와 함께


timer.at(시간, function_to_call, 인수) 함수는 호출되는 함수에 인수를 전달할 수 있습니다. 인수 매개변수는 함수에서 전달될 값입니다.

일정 시간 후에 타이머를 호출하고 싶은 경우

이 경우 timer.every() 함수를 사용하여 특정 시간 간격 후에 반복적으로 함수를 호출할 수 있습니다. interval 매개변수는 실행 가능한 시간 간격 사이의 시간을 밀리초 단위로 표시합니다.

원하는 간격을 지정하고 function_to_call 해당 간격 후에 반복적으로 사용됩니다. 이전 사례와 마찬가지로 함수가 호출될 때 전달될 선택적 인수를 포함할 수 있습니다.

타이머.에브리 ( 간격, function_to_call ) ;
타이머.에브리 ( 간격, function_to_call, 인수 ) ; // 여기에 간격을 적어주세요


링크를 통해 함수 호출을 지연시키기 위해 타이머 라이브러리를 사용하는 이 방법에 대해 자세히 알아볼 수 있습니다. 기능 지연을 위한 Arduino 타이머 라이브러리 .

Arduino의 지연을 위한 다른 라이브러리

아래에 제공된 링크는 함수 호출을 지연시키기 위해 타이머 라이브러리를 설치할 수 있는 Arduino의 타이머 라이브러리로 이동합니다.

Michael Contreras의 타이머 라이브러리

함수 호출을 지연시키기 위해 자신이 만든 비차단 Arduino 타이머 라이브러리를 제공한 저자도 있습니다. 그는 차단하지 않고 지연 기능을 수행하기 위해 millis() 및 micros()와 같은 Arduino의 내장 함수를 사용했습니다. 그의 라이브러리에 대한 링크는 다음과 같습니다.

MichaelUray 아두이노 타이머 라이브러리

결론

delay() 함수는 이미 Arduino에 있지만 여러 작업을 동시에 수행하는 데 사용할 수 없습니다. 동시에 여러 작업을 실행하기 위해 필요할 때 사용할 수 있는 비차단 타이머 라이브러리가 Arduino 커뮤니티에서 생성되었습니다.