#define motor 4 #define rotary_encoder 14 boolean signal_encoder = 0; //ICACHE_RAM_ATTR foi uma recomendacao nos foruns da espressif para interrupcao com esp8266 ICACHE_RAM_ATTR void waveForm() { signal_encoder = !signal_encoder; } void setup() { Serial.begin(115200); pinMode(rotary_encoder, INPUT); pinMode(motor, OUTPUT); attachInterrupt(digitalPinToInterrupt(rotary_encoder), waveForm, CHANGE); } void loop() { digitalWrite(motor, 1); //estas linhas abaixo foram descomentadas no teste apenas com o digitalRead //if(digitalRead(rotary_encoder))signal_encoder=1; //else signal_encoder = 0; Serial.println(signal_encoder); delay(2); }