Is there a way to get reading from rotary encoder without microcotroller? just simple circuit that count and increment, like op amp or 555 timer or logic gate . anything that u can help me .
-
2\$\begingroup\$ You could probably put something together with a 4017. \$\endgroup\$– HearthJul 4, 2019 at 21:09
-
\$\begingroup\$ Try reading Scott Larson's description of the details about the logic, debouncing, and FFs needed here. Or else just consider the HCTL-2000 series devices (which used to be HP, then Agilent, then Avago, and now Broadcom.) \$\endgroup\$– jonkJul 4, 2019 at 21:50
-
1\$\begingroup\$ Op-amps and 555 timers can't count. \$\endgroup\$– TransistorJul 4, 2019 at 22:11
-
4\$\begingroup\$ what do you expect to see as the output? \$\endgroup\$– jsotolaJul 4, 2019 at 22:20
2 Answers
Is there a way to get readings from rotary encoder without micro controller?
Yes
BUT, the encoder DOES NOT COUNT it only provides arc position counts. For example the optical type encoder you show might produce anything from 128 to 1000 pulses per revolution on two channels (A and B).
Assuming you want an up/down counter that tracks the angular change pulses in the encoder (and you show an optical encoder), all you need are TTL or CMOS counters.
You need logic to perform:
- Pulse production derived from the leading edge of the sensor output channels. The encoder signals are a quadrature output where the phase relationship tells you the direction.
Something like this:
This circuit can do x1, and x4 (I leave you to discover what this means for quadrature encoders) and produces a clock and Up/Down signal to drive a counter chain of however many digits you need. This schematic does have an error (from the comments) and is onoly shown as an example of what might be done. The newer device (LS7184) does x1, x2 and x4, but is pin compatible to this older chip design.
A counter chain to hold your required count resolution. Search for counters using the 74LS192BCD counter to see examples. You would need one counter chip per digit of resolution required.
A BCD to 7 segment LED driver and the associated LED digits. Search for 74LS47 BCD decoders for examples of a display digit. You'd need one chip and one 7 segment common anode LED display digit.
It's a lot of work!!!
I'd suggest that you gain/learn absolutely nothing by building a solution like this.
Your time would be much better spent using a small MCU such as the ATTiny85 or an Arduino Nano (ATMega328) to do the encoder interface and the up down counting. You can get either of these for under $3 online.
you can also buy an 8 digit display module based on the MAX7219 that provides the display driving and 7 segment LED modules for under $2. This is a serial display and does not do counting (that is done in the MCU).
The skills you gain implementing this sort of solution with an MCU will definitely help you in the future. Learn to code!!
-
\$\begingroup\$ Two comments: the Up/down and clock are swapped at the connector. And, I don’t see LS7084 for sale on DigiKey, not a good sign. A Silego GPAK device could be programmed to do this basic function, then that leaves the rest of the signal chain - counters, display drivers - to deal with. \$\endgroup\$ Jul 5, 2019 at 15:59
-
\$\begingroup\$ @hacktastical Good catch on the LS7084 Clk. I have used this device (long ago) but would never use it today. Even the updated LS7184 is not worth the price whe you are already using an MCU. In the day of course the chip was well worth it just for the digital filter (a shift register) on the input.Losing pulse counts was a terrible problem with the hardware counters. \$\endgroup\$ Jul 5, 2019 at 16:51
I used to work on stuff like this - daisywheel printers to be precise. They used logic and counters to do exactly this kind of thing to control the servos for the carriage and print wheel. Maybe half a dozen TTL chips or so.
Would I build it the same way, knowing how it was done ‘back in the day’? Nope. I’d use an Arduino Nano to read the waveform and output it to a numeric LCD, LED, or to host PC.
Even way back in 1980, the printer folks had moved on to using an 8048, and later, 8051 to do this.