How to use a differential encoder with an arduino?

I'm trying to use a Mega 2560 r3 to interface with multiple E5-1000-276-EN-D-D-D-1 US Digital encoders which have both the + and - signals as different pins. Is there a way I can wire this up to my aurduino shield using just interrupt pins and jumper cables, or do i need something to adapt the signals to single level (10pin to 5 pin) first to do that? Any help would be greatly appreciated.

Please give a link to the encoder documentation.

1 Like

See https://www.usdigital.com/datasheets/E5-Datasheet.pdf

The D option indicates differential (+/-) line driver outputs, for long distance communications in noisy industrial environments. Best to use line receiver ICs for those.

Check the U.S. Digital product page for wiring and application notes.

Hi, @firehawk4427
Welcome to the forum.

Can you please tell us what your project is?
That way we can provide relevant answers.

Thanks... Tom.... :smiley: :+1: :coffee: :australia:

From the way I read the data sheet you should be able to use the A+/B+ or A-/B- pair just as you would the A/B signals from a single ended (not differential) encoder.

According to this post, using just A+ and B+ works with Arduino. I've never had one to try.

You can check the datasheet. They usually contain examples.

Do you have noisy environment? And long wiring between the encoder and your Arduino?

If so, you need some additional hardware that has the differential pairs A+/A- and B+/B- as input signal and does the conversion into single-ended A and B signals. It will be two times the same circuit.
If not, either use A+ and B+, or A- and B-. There are both TTL if I understood the data sheet correctly, so both signals have to be just the same type (either '+' or '-')

Connect A+ and B+ to Arduino input pins and set pinMode to INPUT_PULLUP, connect A- and B- to GND through 4.7k resistors.

This is a pretty standard encoder type ( its optical ).

It is a Quadrature Rotary Encoder.

As said before, Us A+ & B+ connect to relevant pins.

Use the encoder.h library

Its a good encoder, but make sure you have the encoder disk running on centre or you will get some odd readings

1 Like