Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Current Sensor (http://www.chiefdelphi.com/forums/showthread.php?t=24956)

Joshua May 08-02-2004 20:35

Current Sensor
 
Does anyone have anything on programming the code for the current sensor. All I really need to know is what type of input the sensor is, what type of value it returns, and the range of the value (and perhaps that value's meaning)

WillyC 08-02-2004 22:05

Re: Current Sensor
 
Quote:

Originally Posted by HHSJosh
Does anyone have anything on programming the code for the current sensor. All I really need to know is what type of input the sensor is, what type of value it returns, and the range of the value (and perhaps that value's meaning)

Look here at the current sensor document from the usfirst.org website.

Wire the sensor up to a PWM cable and plug it into one of the analog inputs on the FRC.

The current sensor gives an analog output voltage between 0 and 5 volts. The output voltage corresponds linearly to the current measured, with 0 volts = -75 amps, 2.5 volts = 0 amps, and 5 volts = 75 amps. Look at the graphs in the documentation I've attached for more info on the voltage vs. current characteristics. Use your program to read the analog voltage, then calculate the corresponding current using these characteristics (we just use a linear y = mx+b calculation).

If you need help getting your software to read the analog value, look at the 2004 Programming Reference Guide available here.

Hope this helps! Good luck, and let me know if you need any more help.

Joshua May 08-02-2004 23:47

Re: Current Sensor
 
This should work, thank you!

Dale(294engr] 09-02-2004 22:28

Re: Current Sensor
 
Quote:

Originally Posted by WillyC
Look here at the current sensor document from the usfirst.org website.

Wire the sensor up to a PWM cable and plug it into one of the analog inputs on the FRC.

The current sensor gives an analog output voltage between 0 and 5 volts. The output voltage corresponds linearly to the current measured, with 0 volts = -75 amps, 2.5 volts = 0 amps, and 5 volts = 75 amps. Look at the graphs in the documentation I've attached for more info on the voltage vs. current characteristics. Use your program to read the analog voltage, then calculate the corresponding current using these characteristics (we just use a linear y = mx+b calculation).

If you need help getting your software to read the analog value, look at the 2004 Programming Reference Guide available here.

Hope this helps! Good luck, and let me know if you need any more help.


ACS NOTE RANGE:
1Vout = -75A
2.5Vout = 0A
4Vout = 75A

(0V ~-100A, 5V ~+100A, not guaranteed linear)

see my replies posted elsewhere

UCMHSrobotics 11-02-2004 16:40

Re: Current Sensor
 
I checked the programming guide, and I couldn't find anything on the current sensor. It would be great if someone could explain the programming to me or just give me some code for the current sensors. Thanks!

Joshua May 11-02-2004 20:37

Re: Current Sensor
 
Quote:

Originally Posted by UCMHSrobotics
I checked the programming guide, and I couldn't find anything on the current sensor. It would be great if someone could explain the programming to me or just give me some code for the current sensors. Thanks!

I have written some code for the current sensor, but it doesn't do anything but display the sensor's data. You can put this in the final lines of user_routines_fast.c where your own code for every loop can be placed:

Code:


/* The formula comes from the equation of the line from the data by Willy C */
/* For this to work, the current sensors must be connected to Analog Inputs 1 and 2 */

#define Amps1    (rc_ana_in01 * 30) - 75
#define Amps2    (rc_ana_in02 * 30) - 75

printf("1st Sensor: %d\n", Amps1);
printf("2nd Sensor: %d\n", Amps2);


WillyC 12-02-2004 10:48

Re: Current Sensor
 
Quote:

Originally Posted by HHSJosh
I have written some code for the current sensor, but it doesn't do anything but display the sensor's data. You can put this in the final lines of user_routines_fast.c where your own code for every loop can be placed:

Code:


/* The formula comes from the equation of the line from the data by Willy C */
/* For this to work, the current sensors must be connected to Analog Inputs 1 and 2 */

#define Amps1    (rc_ana_in01 * 30) - 75
#define Amps2    (rc_ana_in02 * 30) - 75

printf("1st Sensor: %d\n", Amps1);
printf("2nd Sensor: %d\n", Amps2);



Be careful here guys. I made a mistake in my earlier post when I quoted the Volts vs. Amps characteristics of the current sensors, which Dale was nice enough to correct. Here are the correct values:

Quote:

Originally Posted by Dale(294engr
]

ACS NOTE RANGE:
1Vout = -75A
2.5Vout = 0A
4Vout = 75A

The characteristic is (almost perfectly) linear between -75 amps and 75 amps. Using this adjusted data you'd find that

I = 50 * V - 125

where I is the current and V is the voltage you measure on the analog input.

Also, in the code above, I think you want to use a Get_Analog_Value(rc_ana_01) in order to convert to an analog voltage. You also want to cast to an integer before printf'ing.

user_routines.h:

Code:


/* Current sensor data */
#define CURR_SLOPE 0.02                        // Slope  used in the current calculation
#define CURR_INTERCEPT 2.5                // Y intercept used for the current calculation
#define LEFT_CURR_SENS rc_ana_in01        // analog input 1; used to measure current on left motor
#define RIGHT_CURR_SENS rc_ana_in02        // analog input 2; used to measure current on right motor

user_routines.c/Default_Routine():

Code:


/* Calculate and display the current going to the two drive motors using analog readings */
 
printf("Left motor current = %d\n", (int) (Get_Analog_Value(LEFT_CURR_SENS) - CURR_INTERCEPT) / CURR_SLOPE);
printf("Right motor current = %d\n", (int) (Get_Analog_Value(RIGHT_CURR_SENS) - CURR_INTERCEPT) / CURR_SLOPE);



All times are GMT -5. The time now is 11:57.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi