Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Multiplexer as a Position Sensor: How?

  1. May 20, 2015 #1
    Create a position sensor using LEDs.
    Increase or decrease a pulse width in response to direction of movement.

    Chips Involved:
    1) Clock.
    2) 2x DM74150 (16×1 Multiplexers.)
    3) 2x SN74193 (4-bit Binary Counters.)
    4) 1x SN74LS112 (Negative Edge Master Slave JK Flip-Flop.)
    5) 1x SN74LS122 (Retriggerable Monostable Multivibrator)
    6) 2× 7404 (Hex Inverter {Technically, I only need one chip.})
    7) 1× 7408 (4 × 2 input AND gates)

    In order to sum up what I’ve already concluded… I’m looking for an incremental encoder.
    I just need help figuring out the flow of data. What is happening first, second, third, etc.

    I hope that helps explain what I need help with. Again, I would be most grateful for anybody’s help.

    I have done enough preliminary research to have a basic idea of how things are supposed to work. However, I’m trying to understand the underlying principle of operation (stated above)

    Thank you
  2. jcsd
  3. May 20, 2015 #2


    User Avatar

    Staff: Mentor

    Welcome to the PF, and thanks for your PM reply that this is not for schoolwork. I'll leave it in the EE forum for now. :smile:

    Can you say a bit more about the project? Do you have a sketch that you can share? When you say you want to sense position with LEDs, does that mean you turn them on one at a time and have light sensors that look for blocked paths from LEDs to sensors?
  4. May 20, 2015 #3
    Yes, Thank You.

    I wasn't really sure where this needed to be posted.
    Here are a few photos to give an idea of what is to happen.


    The LEDs will constantly be transmitting. They look for a blocked path.
    When it moves to the right it will produce a square wave from 0% - 100% duty cycle.
    When it moves to the left it will go from 100% - 0% duty cycle.

    I am understanding that there are two channels.
    Based on which channel lead/lags the other... the multiplexers have out puts at their (A, B, C, & D) outputs. (Note: This is probably an incorrect assumption.)

    My main question is that...
    What Feeds What?

    1) Does the up counter (74193) feed the multiplexer (74150) as a switch? Therefore, selecting that LED.
    2) Does the position of the blocked LED translate into a binary code? Therefore, selecting the condition of the multiplexer as a whole.

    Asked another way:
    1) Does the (74193) feed the binary selection to the multiplexer for the positions?
    2) Or does the (74150) feed the counter with it's corresponding binary number?

    The process as I understand it:
    1) Clock Feeds Counter.
    2) Counter counts up and outputs a binary number.
    3) The binary number is fed to the (74150). Therefore, selecting the LED position.
    4) Multiplexer outputs it's data.
    5) Data enters the (74LS122)... and I'm not really sure what happens here.
    6) Some signal runs back to the counter, multiplexer, and a JK Flip Flop (74LS112).
    7) I believe this triggers the condition of looking at either multiplexer and determining which LED was blocked before.
    8) Once it determines what way the blocked LED is traveling... it "okays" the data and says to increase/decrease your pulse width.

    The following is a block diagram of the circuit. The pinouts may not be in the correct places on the block diagram.

    I am having a little bit of trouble following the process and would like to verify that I am thinking about this in the correct fashion.

    Thank you again.
  5. May 24, 2015 #4
  6. May 25, 2015 #5


    User Avatar

    Staff: Mentor

    That's great news! The problem you presented in your post was pretty imposing. Glad you worked your way through it. :smile:
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook