/*В този пример посокота на въртене на ротационния енкодер и състоянието на бутона мусе показват на серийния монитор (Tools -> Serial Monitor).Двата сигнала за посока и бутона (ENC-A, ENC-B и ENC-SW) са свързани съответно към пинове D13, D14 и D12.Използва се допълнителната библиотека "ESP32Encoder" на "madhephaestus",която трябва да се инсталира предварително (https://github.com/madhephaestus/ESP32Encoder/)*/// включване на допълнителната библиотека за четене на ротационен енкодер#include<ESP32Encoder.h>// константи, описващи използваните пиновеconstintENC_A_pin=13;constintENC_B_pin=14;constintENC_SW_pin=12;// променливи, използвани при четенетоESP32Encoderencoder;intencoderCount;intENC_SW_state;voidsetup(){// настройване на пина на бутона като "вход"pinMode(ENC_SW_pin,INPUT_PULLUP);// настройване на енкодерната библиотека//encoder.attachFullQuad(ENC_A_pin, ENC_B_pin);//encoder.attachHalfQuad(ENC_A_pin, ENC_B_pin);encoder.attachSingleEdge(ENC_A_pin,ENC_B_pin);encoder.clearCount();// настройване на серийната комуникация// Забележка: в серийният монитор трябва да бъда избрана същата скоростSerial.begin(115200);}voidloop(){// прочитане на състоянието на бутона (0/LOW при натиснат, 1/HIGH при отпуснат):ENC_SW_state=digitalRead(ENC_SW_pin);// прочитане на състоянието на енкодераencoderCount=encoder.getCount();// показване на стойностите на серийния мониторSerial.print("SWITCH= ");Serial.print(ENC_SW_state);Serial.print("\t\t");Serial.print("COUNT= ");Serial.print(encoderCount);Serial.println("\t\t");delay(100);}