. .
Page 1 of 2 12 LastLast

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Took a while to discover what the output was, now how do I read it?

    It is a quadrature encoder fitted with a 100 step/rev detente that always parks you in the 00 condition.

    So when you try to buzz out the output you always get zeros

    As you turn it, you either get 01 11 10 00 or 10 11 01 00 depending on the direction.

    So how would you read it? Preferably on an interrupt!

    best

    Robin

  2. #2
    So I asked my elder brother who looks at me like I have gone senile and says, "You connect one line to the interrupt and read the other for direction".


  3. #3
    Not sure that it's quite that easy! If you look at the data patterns there is no simple link between either data line and direction. And if you only interrupt on one data line, you will miss half the transitions.

    How about writing your interrupt code to read both data inputs and work out whether to increment or decrement an internal counter based on comparing current with previous state. Then set up "interrupt on change of state" on both input lines linked to same interrupt routine. The principle of quadrature inputs means that only one data line changes at a time so you should be able to handle one interrupt before the next arrives. How fast can a user turn the encoder knob?

    I need to do something similar for a device that currently uses a pot delivering an analogue input to an ADC input on an Arduino but my main processing loop is so fast (compared with rate at which data changes could happen) that I am planning to just use polling of the data lines. I need to do this because the pot is a bit noisy and my soldering iron temperature keeps jumping about...

  4. #4
    Quote Originally Posted by Neale View Post
    Not sure that it's quite that easy! If you look at the data patterns there is no simple link between either data line and direction. And if you only interrupt on one data line, you will miss half the transitions..
    You configure the interrupt on either leading or trailing edge - so the interrupt occurs on a transition on one phase - the other phase is steady state at this point. The interrupt is essentially the "clock" to increment or decrement the counter. The state of the second phase, either 0 or 1 determines whether to increment or decrement.

  5. #5
    I didn't think it was that easy either, but it does explain why you get four transitions between each detente but only one counts

    What does your pot control?

    Robin

  6. #6
    Which processor? Arduino? Is there a library you could use?

  7. #7
    Quote Originally Posted by JohnHaine View Post
    Which processor? Arduino? Is there a library you could use?
    I am using a pre-cambrian processor, hopefully without the explosion, the amazing Hitachi HD64180

    Robin

  8. #8
    I seem to remember that there's a hardware solution using a couple of exclusive OR gates and a counter.....

  9. #9
    Quote Originally Posted by Voicecoil View Post
    I seem to remember that there's a hardware solution using a couple of exclusive OR gates and a counter.....
    Yes there is, and maybe a D-type flip-flop too to sense direction. (XOR gates just double the pulse rate.) But you then still need to accumulate the pulses with an up/down counter and convert the counter to analogue to emulate the pot.

    If there's a C compiler for the processor I guess it should be possible to modify the library code.

  10. #10

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Spindle pulses on shutting down.
    By John11668 in forum General Electronics
    Replies: 6
    Last Post: 22-08-2020, 11:45 AM
  2. Basic 540 CNC. Motors skipping pulses?
    By Skydeals in forum General Electronics
    Replies: 3
    Last Post: 18-10-2014, 06:56 PM
  3. Do you make stuff with knobs on?
    By D.C. in forum General Electronics
    Replies: 1
    Last Post: 20-02-2013, 11:04 PM
  4. servo control vs stepper control
    By Peter. in forum Motor Drivers & Controllers
    Replies: 24
    Last Post: 17-09-2012, 08:36 AM
  5. G-Code into stepper driver pulses?
    By HankMcSpank in forum Computer Software
    Replies: 5
    Last Post: 09-01-2010, 12:55 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •