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?
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
hopelijk iemand met meer kennis en ervaring die me kan helpen of in de juiste richting duwt.
Groeten,
Kevin
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.