เป็น Rotary Switch ครับ เหมือนกับ Switch สองตัวที่มีตรงกลางร่วมกันจะต่อลง GND หรือ B+ ก็แล้วแต่กาารจัดวงจร เวลาเราหมุน Rotary Switch ก็เหมือนเรากด Switch ข้างใดข้างหนึ่ง ก็จะมีคลื่น 1 ลูก เข้าไปควบคุมวงจรส่วนกลาง(MPU)แล้ว Encoderระหัสออกกมาในรูปแบบของคาบเวลา(Time)ที่แตกต่างกันตรงที่ความถี่ต่อครั้งในการกดแล้วก็เอาค่า Time ไปควบคุมความแรงของสัญญาณตามวงจรที่กำหนด ทีนี้เวลาเราหมุน Volume (Rotary Switch )หนึ่งคลิ๊กก็เหมือนเรากด Switch ครั้ง ตามปกติเมื่อเรากด Switch จะต้องมีความต้านทานที่ 0 Ohm ถ้าไม่่ได้ 0 Ohm ค่า Time ก็ไม่ไำด้ตามกำหนดมันจึงทำให้ Encoder ไม่สามรถถอดระหัสเป็นไปตามที่กำหนดได้จึงเกิดอาการอย่างที่คุณบอก ถ้าจะซื้อมาเปลี่ยนผมอยากให้คุณให้ความสำคัณตรงจำนวนคลิ๊กต่อหนึ่งรอบครับ ส่วนเรื่อง source code มันอยู่ที่ MPU ครับไม่ต้องห่วงมันไม่หายไปไหนหรอกครับ