#include #include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; ESP32Encoder encoder; // set the 7segment type (common Cathode or Anode) const bool commonCathode = true; // I'm using common Cathode 7segment if you use common Anode then change the value into false. // alpha-digit pattern for a 7-segment display const byte digit_pattern[17] = { // 74HC595 Outpin Connection with 7segment display. // Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 // a b c d e f g DP 0b11111100, // 0 0b01100000, // 1 0b11011010, // 2 0b11110010, // 3 0b01100110, // 4 0b10110110, // 5 0b10111110, // 6 0b11100000, // 7 0b11111110, // 8 0b11110110, // 9 0b11101110, // A 0b00111110, // b 0b00011010, // C 0b01111010, // d 0b10011110, // E 0b10001110, // F 0b00000001 // . }; //Pin connected to ST_CP of 74HC595 int latchPin = 27; //Pin connected to SH_CP of 74HC595 int clkPin = 13; //Pin connected to DS of 74HC595 int dtPin = 14; // display value int dispVal = 1234; bool increment = true; char view[8]; float test = 10.6; // timer and flag for example, not needed for encoders int dispDigit1 = 0; int dispDigit2 = 0; int dispDigit3 = 0; int dispDigit4 = 0; void setup() { Serial.begin(115200); SerialBT.begin("FlottSB20"); //Bluetooth device name // Enable the weak pull down resistors pinMode(latchPin, OUTPUT); //ST_CP of 74HC595 pinMode(clkPin, OUTPUT); //SH_CP of 74HC595 pinMode(dtPin, OUTPUT); //DS of 74HC595 //ESP32Encoder::useInternalWeakPullResistors=DOWN; // Enable the weak pull up resistors ESP32Encoder::useInternalWeakPullResistors = UP; // use pin 19 and 18 for the first encoder encoder.attachHalfQuad(5, 23); // use pin 17 and 16 for the second encoder // set starting count value after attaching encoder.setCount(5000); // clear the encoder's raw count and set the tracked count to zero encoder.clearCount(); Serial.println("Encoder Start = " + String((int32_t)encoder.getCount())); // set the lastToggle } void loop() { sprintf_P(view, "%+06.1f", mapfloat((int32_t)encoder.getCount(), 0, 5000.0, 0, 236.0)); Serial.println( String((int32_t)encoder.getCount())); String temp = view; SerialBT.println(temp); temp.replace(".", ""); Serial.println(temp); digitalWrite(latchPin, LOW); shiftOut(dtPin, clkPin, LSBFIRST, digit_pattern[(int)temp.charAt(4) - '0']); shiftOut(dtPin, clkPin, LSBFIRST, digit_pattern[(int)temp.charAt(3) - '0'] | digit_pattern[16]); shiftOut(dtPin, clkPin, LSBFIRST, digit_pattern[(int)temp.charAt(2) - '0']); shiftOut(dtPin, clkPin, LSBFIRST, digit_pattern[(int)temp.charAt(1) - '0'] ); digitalWrite(latchPin, HIGH); delay(1000); } float mapfloat(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }