richting bepalen met 2 inputs

Hoi iedereen,

ik heb mijn hoofd al gebroken over het volgende dat ik wil uitwerken uitwerken.
misschien iemand die me in de juiste richting kan duwen? :sweat_smile:

ik heb 2 inputs, en 2 outputs.

als input 1 wordt geactiveerd, en daarna input 2, zou output 1 HIGH moeten worden.
en als input 2 wordt geactiveerd, en daarna input 1, zou output 2 HIGH moeten worden.

ik heb hier al heel wat tijd gespendeerd om dit uit te werken, maar ik krijg het niet in orde.
zelf heb ik nog niet zo veel ervaring, nog een beginner :slight_smile:
hopelijk iemand met meer kennis en ervaring die me kan helpen of in de juiste richting duwt.

Groeten,
Kevin

http://playground.arduino.cc/Main/RotaryEncoders#Example1

ff een flowchartje maken. In feite een soort vertraagde Exclusive Or.

kijk naar encoder inderdaad, en verder zijn er nog 3 toestanden die je moet zien te detecteren,
heb examenstukken zitten maken met 2 microswitches om een encoder te simuleren.(40 jaar geleden of zo.

Beetje laat, maar misschien iets in de richting van

void loop()
{
  static unsigned long btn1Millis = 0;
  static unsigned long btn2Millis = 0;

  if(digitalRead(btn1) == ACTIVE)
  {
    btn1Millis = milllis();
  }

  if(digitalRead(btn2) == ACTIVE)
  {
    btn2Millis = milllis();
  }

  if(btn1Millis != 0 && btn1Millis != 0)
  {
     if(btn2Millis > btn1Millis)
     {
       // one-to-two
     }
     else
     {
       // two-to-one
     }

     // reset timing
     btn1Millis = 0;
     btn2Millis = 0;
  }
}

Definieer ACTIVE als HIGH of LOW met een '#define'. Dit dekt misschien niet alle mogelijke combinaties, maar kan een start zijn.