The Analysis: The Loadmeter is divided into 3 parts. Parts 1 and 2 are identical and are the meters. Part 3 is the lighting equipment. Let's talk about the meter for a minute. The meter is most likely a D'Arsonval movement. . It consists of a movable coil placed within the field of a permanent magnet. The Image on the left is from instrumentationtools.com/darsonval-movement/# So basically it is a little motor. That is the spring(s) hold the meter to 0 and when a voltage is applied to the coil, the meter is deflected.
Now the meter scale is 0 to 1.5 in 15 ticks, so I have to come up with 15 values (resistors) essentially a voltage divider, but I think I will do it a little easier, and here's how. First I find the voltage to go to full scale with my adjustable power supply. I must pick a resistor value to set the full-scale defection from the Arduino's analog write. for this I will only use A(+) and B(-) connections to the meter. Remember I only have to do this for one meter, not both, as I will replicate the solution on the other side as well.
My Power Supply's output at 0 Vdc bounces the meter around, so this tack is a bust. Since the maximum voltage on the Arduino Mega's analogWrite() is 5 Vdc. I will use the map() function to control the voltage to the meter via the analogWrite(pin1, meter1) command where pin1 and meter1 are defined. So here is my codebase:
#define meter1 #define meter2 #define pin1 8 #define pin2 9 // CONSTANTS #define 3// CONSTANTS0sec 30000; #define inMin 0; #define inMax 255; #define outMin 0; #define outMax 100; void setup() { Serial.begin (9600);} void loop() { for (inputVal = 0; inputValue < 256; inputValue++ ) { delay( 30sec ); meter1 = map( inputVal, inMin, inMax, outMin, outMax); analogWrite( pin1, meter1); Serial.print( "Map Value = "); Serial.println( meter1 ); }}
Later: