가장 좋은 방법은 값이 필요한 주기를 정하여 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) { }