가장 좋은 방법은 값이 필요한 주기를 정하여 analogRead(A0) 함수를 실행하는 것입니다.
또 다른 방법은 적당한 인수 값의 delay() 함수를 삽입하여 analogRead(A0) 함수의 호출 간격을 조절하는 것입니다. delay(10) 이면 오류 발생을 피할 수 있는데, 상황에 따라 그 값을 바꾸면 됩니다.
이 웹페이지에 나오는 아두이노 프로그램에서는 Aim 또는 Aims_로 시작되는 라이브러리를 사용합니다. 다음 링크에서 라이브러리를 다운로드 받을 수 있습니다.
AIM 라이브러리 설치하기 AIMS 스니펫 정보
방법1: 주기적으로 실행하기
#include <myConfig.h> #include <AimMqtt.h> #include <AimTimer.h> AimMqtt mqtt; AimTimer tmRead(1.0); void setup() { Serial.begin(115200); Serial.println(); mqtt.begin(mqttSub,mqttCB); } void loop() { mqtt.run(); if (tmRead.isOn()) { int v = analogRead(A0); Serial.println(v); } } void mqttSub() { } void mqttCB(String topic, String payload) { }
방법2: delay()함수 추가
#include <myConfig.h> #include <AimMqtt.h> AimMqtt mqtt; void setup() { Serial.begin(115200); Serial.println(); mqtt.begin(mqttSub,mqttCB); } void loop() { mqtt.run(); int v = analogRead(A0); Serial.println(v); delay(1000); } void mqttSub() { } void mqttCB(String topic, String payload) { }