Need a high resolution potentiometer with very low movement

I’m trying to use a nano to make a set of “list lights”, which will basically measure the “list angle” of a ship while it is loading cargo, and display the information on deck using a series of lights.
One method I’m using is to hang a small pendulum from a 10k potentiometer to measure the angle. The problem is that the range of angles that I need to measure is actually very small (+- 3deg). With a 300 degree pot and a 10bit adc, my understanding is that the smallest increment I can read would be around 0.3 degrees, which is acceptable, but I’d like to do better.
Right now I’m thinking of using an external 16 bit adc, but I’d like to know if there’s something I’m not thinking about. Is there a way to get a pot that reads the entire 5v over a smaller range of movement, or am I limited by my adc no matter what? I’ve also thought about stepping the movement up with some gears, but the pot needs to rotate with very little force from a small pendulum.
Also, before it comes up, I’m also already using an MPU6050 to measure roll and pitch alongside the pendulum. This question is mostly about experimenting with different methods and learning more about using arduino and manipulating analog inputs.
Thanks

I think I get it.
Suppose that 0 degree tilt/listing of the ship gives a reading of 0.
Using like 12 volt to the pot the voltage reading will increase increase more. Even higher pot + voltage might be needed.
A simple UNO has 1024 levels, 0 to 1023. 3 degrees divided by 1024 ought to give a good resolution.
Arranging a "safety belt", handling the too high voltage in case of, lets say, 10 degree listing, is an option. If listing goes to 90 degrees nobody cars about the indicator.... I'm joking!

Is your real question about how to read a pot?

Or what is the best way to read he list of a ship of less than 5 degrees?

I see. So use a higher voltage, and limit the range of movement on the pot (physically), to make sure it doesn’t go over 5v?
I’m already planning on adding stoppers to limit the pendulum, and using a calibrating function to record minimum and maximum values through a known range of motion (like 30 degrees).
Might be risky as going over 5v would be bad, no?

One question popped up. How much do the waves tilt the ship? That would need to be handled to find out what is zero.

Averaging several readings is one way. Seems like you would need to do a sort of low pass filter, anyway, to differentiate list from the rolling motion.

To limit the pot move mechanically is one way. Another way is to limit the output value of the pot to stay within controller limits.

I'll through this out there for thought.

  1. on the opposite side of the swinging device have a flat target. Sense its position with a Ultrasonic sensor or perhaps LiDar.

  2. Although it needs a 0 reference a sensing optical encoder could give superior resolution.

  3. I don't know but perhaps a magnet and Hall sensor might give you a usable signal.

Using a pot is not the way I would start, simply because the pot takes torque/force to move. This will result in an offset error + hysteresis.

I know you said analog inputs but all my thoughts ran in the other direction.

Hello,
Maybe a little of both, but mostly how to read a pot. Basic reading of a pot is simple enough, but I'm wondering how to maximize my resolution over a lower range of movement. Although any suggestions about other methods and ideas will be welcomed. Many ways to skin a cat.

Thanks! An optical encoder is a likely option. What kind of resolution can you get in degrees?
How would a hall effect work? Can they be used to sense anything except "on" and "off"?
Originally I started with an analog potentiometer to use what I had at hand. Also the people who will be making use of this are much more trusting of simpler mechanical/electrical systems - they're easier to understand and usually less to go wrong - but I'm thinking of abandoning that since the sensor is going through an adc anyways. I'll be using multiple, redundant methods of measuring and comparing them to detect errors.

I've got a function written to press a button and reset zero. It takes a running average of readings for 10 seconds, and uses it as "even keel". It's tough to define what "level" is on an old ship anyways, so zeroing the readings by gut feeling (or a bubble level) is the way to go.

12 inch pendulim would move about 3 inches.

12 inch disk with mxl step pulley driving an encoder would yield over 2,000 steps for 3 degrees.

What resolution do onclonometers offer?

Liquid level although WAY more difficult, would yield 10,000 stepes per degree. Trade a LOT of complexity for that resolution

The pot arrangement sounds like easy and a good way to go.
The human eye and brain could surely handle an eventual swing due to swells and note the top levels.

Yeah, smoothing is definitely going to be needed. Right now, I'm using exponential smoothing to deal with the sensor values, and will probably use an average of readings to change the lights periodically, so that waves don't make them dance.

Indeed. In reality, a resolution of 0.25 degrees would be "acceptable", 0.1 degrees would be "good", and anything higher would be ludicrous; but I've never seen the point of stopping at "good" when there's a "ludicrous" option out there :wink:.

Yes there are hall sensors that operate in the linear range.

Optical encoders (again there is no zero, you can only measure relative motion) are cheap at 600 steps / revolution, a little more expensive at 1200 steps/revolution.

Im driving. Can someone do the math?
What is the distance of movement of 1 degree at 12 inches?

If we use the tule of thimb that the sensor resolution needs to be 4 times more than the desired reading. You would need to resolve 1/40 of a degree.

I wonder why you are not using the built-in list indicator instruments?
Back in the 1960's, stevedoring companies had computer programs that produced the order of loading each piece of material so the ship would not have problems. Are they no longer capable of doing this?
Paul

Yes, you are definitely right, but they are separate things. "Load programs" are used to plan loading and make sure that the ship stays in the limits of its strength and stability, but a real-time indication of list is definitely still a must when loading.

If I have to explain why I want to build my own version of a device that I could just go out and buy, then perhaps i'm on the wrong forum, :stuck_out_tongue_winking_eye:
Kidding of course. The list lights that we have are starting to malfunction and only ever gave indications of every quarter degree. It would be handy to me to have every tenth of a degree, and to be able to indicate the "rate-of-change", to show which direction the list is going. Both of these things would require some higher resolution readings.