Een encoder (pulsgever) is een elektronisch toestel met een roterende as, dat pulsen genereert als de as verdraait. Er bestaan ook versies die pulsen genereren langs een translatie-as.
Er zijn in principe twee soorten encoders:
· incrementele encoders
· absoluut encoders
Een incrementele encoder geeft een simpele pulstrein. De pulsen worden geteld en omgezet naar een rotatiehoek (of een translatie-afstand). Door twee pulstreinen te gebruiken (A, B) die 90 graden in fase zijn verschoven, kan de elektronica van de encoder ook de richting van de beweging afleiden uit de pulstreinen. Daarnaast is er vaak nog een derde signaal dat een enkele puls geeft op 0 graden (Z of C). In veel encoders is van deze signalen ook de inverse aanwezig (A, /A, B, /B, Z, /Z).
Een absoluut encoder heeft meerdere signalen en geeft direct de hoekverdraaiing aan. Hier hoeven dus geen pulsen geteld te worden. Er zijn ook zogenaamde multiturn encoders. Dit zijn absoluut encoders die ook het aantal omwentelingen tellen.
Voor een hogere resolutie kan in plaats van een blokgolf ook gebruikgemaakt worden van een sinus- en een cosinussignaal: een sincos-encoder. Tegenwoordig worden er ook steeds meer encoders met een seriële uitgang gebruikt. Voor ruwe omstandigheden worden in plaats van encoders resolvers gebruikt.