Rotary encorders till B737 panel

Det är en rotary encoder du ska ha till det du beskriver nu (flera varv utan fasta lägen).
Det låter som du saknar kontakt med benet som går till D3 eller så har du kopplat in encodern fel på något vis. Koden borde fungera.
Din encoder har väl tre ben antar jag och två av dem ska du med din kod koppla in till pinne 2 och 3, den tredje pinnen ska till GND (om du använder internal pull-up). Det är viktigt att rätt ben går till GND. Vanligtvis är det det mellersta benet som ska till GND men det kanske finns andra varianter.
Har du ett datablad till din encoder?

Studs vill du inte ha. Det kommer inte troligen inte ens att gå att använda encodern om du inte debounce på den eftersom du kommer att få slumpmässig studs från båda encoderpinnarna så att koden t.ex. registrerar ett klick motsols och två klick medsols varje gång du vrider ett steg. Det kan bli så att när du vrider medsols registreras bara motsols eller tvärtom.
Debounce behöver du ha.
Se här för exempel på debounce circuit som fungerar klockrent för mig: