Drehrichtung Gleichstrommotor bestimmen

richtung

Das Verhältnis von R1 zu R2 sollte irgendwas um die 3,3V am Pin ergeben
Gilt natürlich auch für R3 R4.

D1 und D2 sollten Z-Dioden sein. z.B. 3,1V oder 3,3V
Der Esp ist da nicht so pingelig.

Die Alternative wären blaue oder weiße LED, andersrum geschaltet.
Die leuchten auf, wenn sie dann doch mal tätig werden.
(macht es etwas spannender)

Aus meiner Wühlkiste, leicht für diesen Zwecke abgewandelt:

#include <Streaming.h> // die Lib findest du selber ;-)
Stream &cout = Serial; // cout Emulation für "Arme"

int richtung(const byte pina, const byte pinb)
{
  int lut[4]{0,1,-1,0};
  return lut[digitalRead(pina)*2 + digitalRead(pinb)];
}

void setup() 
{
  Serial.begin(9600);
  cout << F("Start: ") << F(__FILE__) << endl;
}

void loop() 
{
  switch(richtung(3,4))
  {
    case  0 : cout << "stillstand" << endl; break;
    case +1 : cout << "rechts rum" << endl; break;
    case -1 : cout << "links rum"  << endl; break;
  }
  delay(1000);
}