가장 좋은 방법은 값이 필요한 주기를 정하여 analogRead(A0) 함수를 실행하는 것입니다.
또 다른 방법은 적당한 인수 값의 delay() 함수를 삽입하여 analogRead(A0) 함수의 호출 간격을 조절하는 것입니다. delay(10) 이면 오류 발생을 피할 수 있는데, 상황에 따라 그 값을 바꾸면 됩니다.
방법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) {
}