Arduino Nano + Encoder - minimum edge separation

Hi All,

I want to connect linear encoder with Arduino Nano.
This one: Linear miniature encoder | RoLin™ encoder - www.rls.si

What is the minimum edge separation which I should choose?

This depends on sampling ratio for digital inputs in Arduino. Correct?
Arduino clock is 16Mhz... But I've got a feeling that it's not so easy right?

Encoder output can be:

  • RS422
  • SSI
    -BiSS-C

Actually can I connect it with Arduino Nano? What would be the easiest way to do it?
What minimum edge separation should I choose?

Thanks a lot!

Do you have a cost for such an encoder? I suspect it will be well outside the range of any hobbyist project. Ignoring that rather significant fact, note this from the device web page:

[quoteThe maximum traverse velocity depends on the chosen resolution and minimum edge separation time, to 4 m/s at 1 µm and to 40 m/s at 10 µm.[/quote]

The edge seperation isn’t important at this stage. The resolution of the device and the speed of movement determines the frequency of the pulse stream. That frequency is what is important to the Arduino. The resolution will need to be selected first. Speed you’ve not mentioned.

The only useable output type would be incremental and the distance from Arduino to the encoder will determine if you must use a line driver with the necessary electrical interface on the Arduino end, although it’s highly recommended for noise immunity even on short runs.

Hey,

Thanks for your answer

Do you have a cost for such an encoder? I suspect it will be well outside the range of any hobbyist project. Ignoring that rather a significant fact, note this from the device web page:

The maximum traverse velocity depends on the chosen resolution and minimum edge separation time, to 4 m/s at 1 µm and to 40 m/s at 10 µm.

Hahaha :). It's not a strict hobbyist project. I'm creating a prototype of a specific device. I just have no inputs left in my PLC and seems like I need a linear encoder. I want to use Arduino Nano/Uno/Mega (which I have) to temporarily connect encoder with my prototype.
FYI cost of this encoder is 100-150 USD

The edge seperation isn't important at this stage. The resolution of the device and the speed of movement determines the frequency of the pulse stream. That frequency is what is important to the Arduino. The resolution will need to be selected first. The speed you've not mentioned.

The max speed is 1 m/s. In that case, what is the max frequency?

The only useable output type would be incremental and the distance from Arduino to the encoder will determine if you must use a line driver with the necessary electrical interface on the Arduino end, although it's highly recommended for noise immunity even on short runs.

Distance can be more or less 10cm. Can you show me what kind of electrical interface you are talking about? :slight_smile:

Thanks again!

This looks to me to be a good example of the x-y problem

First post you wanted to connect an encoder to an Arduino. Now you say “it seems like” you need an encoder? Add a PLC to the mix and I see someone using the wrong PLC or trying to solve the wrong problem.

IMO, trying to bolt an Arduino onto the exsisting system is sure fire receipe for failure. Given lack of your understanding of even the most basic encoder attributes, I’d say you’re well on your way down that failure road. Perhaps it’s (past) time to get some local help with the real issue that that needs to be understood and solved. IMO, the Arduino and encoder would only be a detour in that journey.

avr_fred thanks for your advice. However I'm not going into a conversation if what I'm doing is XY or ABC, it makes sense or not, is too expansive or too cheap, I have knowledge about anything or not at all and it gonna be only a failure or maybe a disaster. :slight_smile:

I made a mistake confusing with my previous posts. Let's just forget about previous posts and focus on a real technical question. I'm pretty sure that can be useful for more people in the future.

Is it possible to connect linear encoder like this: RoLin to Arduino Nano? Max speed is 1m/s.
If yes then:
a) what are maximum parameters of the encoder (resolution => frequency, sampling rate) which Arduino can accept?
b) Probably to connect via RS422 I need a converter. Is that correct? Is there any easier way to connect this encoder with Arduino?

Thanks,

You insist on doing this backwards but okay, I’ll play along.

A) Arduino capability is solely dependent upon program design and coding practices. An experienced embedded software engineer might achieve 20KHz* or better. It all depends on what you need to do with the data. Your mileage may vary by several orders of magnitude.

B) The encoders are available with TTL outputs which can be read directly by an Arduino.

  • A 50um resolution encoder generates 20KHz at 1 m/sec

Hey!

That's exactly what I needed :slight_smile:

Thanks a lot,

Looking at the data for the encoder, you will need 3 input pins to use it, no matter what electrical protocol you use. For RS422 electrical protocol, they give an "A" signal, a "B" signal, and a "Z" signal which is the clock signal telling when the A and B are stable and to read the value.

Am I wrong?

Paul