ti rispondo io sul rotary encoder, ti posso dire che e semplicissimo il rotary encoder ha il pin centrale il 2 che va alimentato e gli altri due pin ti daranno degli impulsi in uscita in base se giri a destra o sinistra,
esempio: se giri a destra lui ti dara due impulsi il primo sul pin 3 e il secondo sul pin uno , se invece giri a sinistra lui ti dara sempre due impulsi ma il primo questa voltra lo avrai sul pin 1 e il secondo sul pin 3 .
io non uso c ma basic e la cosa mi viene cosi
if pin1=1 then
delay_ms(5)
if pin3=1 then
bla bla bla
end if
end if
if pin3=1 then
delay_ms(5)
if pin1=1 then
bla bla bla
end if
end if