DRO with glass scales

I'm looking for a bit of guidance on interfacing withe some glass scales, haven't settled on the exact one yet, but it will have a quadrature encoded output. I will be starting with a single scale, but I'd like to build to system to be able to handle 3 scales + rpm encoder.

My gut tells me to start with an mkr series arduino, something like the Zero with a samd21. The processor is a bit faster & it has lots of interrupt pins (non of this polling nonsense).

Since the arduino will need to do calcs for position & drive the screen, I was thinking external counters would free up some clock time--but I have no experience with those. They seem pretty easy, just not sure what I need there. The two chips I have heard of people using are: 74HC74 (a dual flip flop) or a LS7366R. I am not set on those chips, so please recommend what you think is appropriate. I should note that I am hoping to use both the rising & falling edges to improve resolution. While I'm not exactly sure how all that works just yet, I dont think the 74hc74 can pick up the falling edge.

My understanding is these counters interface in a manor that sends a pulse to one of two pins for "up count" & "down count". Is that an over simplification, or is it that easy?

I need a screen & some buttons too, but are there any other major components I need to incorporate?

Just in general, looking for any tips, suggestions or pitfalls to avoid.

Thanks!

You can use up/down counters with one channel connected to the clk input and the other one to the up/dn selector. I'm not sure right now which outputs (carry...) to connect to Arduino inputs for the high part of the position.

Whatever external circuitry you use, the actual position has to be composed of the combined external and internal count. In detail it will become complicated to catch the external count that is permanently changing. The simplest solution seems to be an external full size counter with a latch for reading the actual position. The latch can be a shift register for minimal pin count.

Otherwise I'd stay with the capabilities of the controller and forget about additional circuitry. With a dedicated ATtiny for each scale there should remain no timing problem even with small and slow 8 bit Arduinos.

Thanks for your response.

I had hoped to do all the scales one 1 board, thats why I was thinking a samd21 chipped arduino would be best. You think thats still too much for it? or it'd just be easier to dump the external counter & just let a dedicated arduino do each one + 1 as a master. Something to think about for sure. I've never communicated between arduinos before, so that'd be a new challenge. guessing thats not too hard?

looks like I need to to some reading on some of this terminology, I have no idea what a "full" size counter is, or even what a latch is. I know what a shift register is, but have never actually used one.

ahhh learning, aint it fun?

A counter that holds the entire position bits of a scale.

Does it really make such a big difference chip-wise whether you use a 7474 chip for each scale or an ATtiny?

For a final decision the maximum pulse rate per scale and total interrupt rate has to be known. A faster controller does no harm, unless it's slowed down by multi-tasking with one task per scale and task swapping.

Honestly, I really cant answer that...my understanding of electronics is fairly basic, with some indepth knowledge of specific subjects (from projects i've done). I can follow circuit diagrams & solder, but when it comes to choosing components, I usually struggle quite a bit. I dont mind thats, its all about learning, but still a struggle.

I guess I'm a bit fixated on the external counter because somewhere along the line, that imprinted in my mind as the "right way" to do it. That & the fact that I dont know how to make boards talk to one another, or what challenges might arise from that. Can you give me some search terms to research board->board communication? I dont even know what protocol would be used, maybe I2C?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.