#include <ESP32RotaryEncoder.h>
// Altere esses números para os números de pinos reais aos quais
// Encoder 1
const uint8_t ENCODER1_CLK = 2;
const uint8_t ENCODER1_DT = 15;
const int8_t ENCODER1_SW = 0;
// Encoder 2
const uint8_t ENCODER2_CLK = 16;
const uint8_t ENCODER2_DT = 4;
const int8_t ENCODER2_SW = 17;
// Encoder 3
const uint8_t ENCODER3_CLK = 18;
const uint8_t ENCODER3_DT = 5;
const int8_t ENCODER3_SW = 19;
// Encoder 4
const uint8_t ENCODER4_CLK = 22;
const uint8_t ENCODER4_DT = 21;
const int8_t ENCODER4_SW = 23;
// Encoder 5
const uint8_t ENCODER5_CLK = 39;
const uint8_t ENCODER5_DT = 36;
const int8_t ENCODER5_SW = 34;
RotaryEncoder rotaryEncoder1(ENCODER1_DT, ENCODER1_CLK, ENCODER1_SW);
RotaryEncoder rotaryEncoder2(ENCODER2_DT, ENCODER2_CLK, ENCODER2_SW);
RotaryEncoder rotaryEncoder3(ENCODER3_DT, ENCODER3_CLK, ENCODER3_SW);
RotaryEncoder rotaryEncoder4(ENCODER4_DT, ENCODER4_CLK, ENCODER4_SW);
RotaryEncoder rotaryEncoder5(ENCODER5_DT, ENCODER5_CLK, ENCODER5_SW);
//Mostrar os valors dos Encoders
void Knob1Value( long value )
{
Serial.printf( "Encoder 1, value: %ld\n", value );
}
void Knob2Value( long value )
{
Serial.printf( "Encoder 2, value: %ld\n", value );
}
void Knob3Value( long value )
{
Serial.printf( "Encoder 3, value: %ld\n", value );
}
void Knob4Value( long value )
{
Serial.printf( "Encoder 4, value: %ld\n", value );
}
void Knob5Value( long value )
{
Serial.printf( "Encoder 5, value: %ld\n", value );
}
//Monstrar os botões dos encoders
void button1( unsigned long duration )
{
Serial.printf( "boop! button 1 was down for %lu ms\n", duration );
}
void button2( unsigned long duration )
{
Serial.printf( "boop! button 2 was down for %lu ms\n", duration );
}
void button3( unsigned long duration )
{
Serial.printf( "boop! button 3 was down for %lu ms\n", duration );
}
void button4( unsigned long duration )
{
Serial.printf( "boop! button 4 was down for %lu ms\n", duration );
}
void button5( unsigned long duration )
{
Serial.printf( "boop! button 5 was down for %lu ms\n", duration );
}
void setup() {
Serial.begin(115200);
//Encoder 1
rotaryEncoder1.setEncoderType(EncoderType::HAS_PULLUP);
rotaryEncoder1.setBoundaries(0, 16, false);
rotaryEncoder1.onTurned(&Knob1Value);
rotaryEncoder1.onPressed(&button1);
rotaryEncoder1.begin();
//Encoder 2
rotaryEncoder2.setEncoderType(EncoderType::HAS_PULLUP);
rotaryEncoder2.setBoundaries(0, 16, false);
rotaryEncoder2.onTurned(&Knob2Value);
rotaryEncoder2.onPressed(&button2);
rotaryEncoder2.begin();
//Encoder 3
rotaryEncoder3.setEncoderType(EncoderType::HAS_PULLUP);
rotaryEncoder3.setBoundaries(0, 16, false);
rotaryEncoder3.onTurned(&Knob3Value);
rotaryEncoder3.onPressed(&button3);
rotaryEncoder3.begin();
//Encoder 4
rotaryEncoder4.setEncoderType(EncoderType::HAS_PULLUP);
rotaryEncoder4.setBoundaries(0, 16, false);
rotaryEncoder4.onTurned(&Knob4Value);
rotaryEncoder4.onPressed(&button4);
rotaryEncoder4.begin();
//Encoder 5
rotaryEncoder5.setEncoderType(EncoderType::HAS_PULLUP);
rotaryEncoder5.setBoundaries(0, 16, false);
rotaryEncoder5.onTurned(&Knob5Value);
rotaryEncoder5.onPressed(&button5);
rotaryEncoder5.begin();
}
void loop() {
// Seu código aqui
}