|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Analog Maxbotix XL-EZ4
I was wondering if I could get any help programming a Maxbotix XL-EZ4. (in C++) I did read through the API, and the spec sheets for the sensor but I'm still a little confused. So I know that the XL is approximately 4.9mv per inch. On the arduino which I tested the sensor, I could simply get the value of the sensor (1-1024) and that would be the cms.
This is a quote from the spec sheet: Analog output of distance reading: (Vcc/1024) / cm (4.9 mV/cm when input voltage Vcc = 5 V) The analog on the CRIO however is scaled to 10v instead of the 5v from the arduino, although the output from the analog sidecar is 5. I also don't understand whether I should use the GetVoltage or GetValue, and I also don't understand how I scale it. (And an explanation of how you came up with the numbers would be appreciated as I attempt to understand) Sorry if this is a stupid question- it's my first time using an analog sensor with the CRIO. Ben |
|
#2
|
||||
|
||||
|
Re: Analog Maxbotix XL-EZ4
GetVoltage will return the input voltage. It's scaled in the Analog Breakout, but I believe it's unscaled in WPILib. If it isn't the math to un scale yourself is easy since it's a linear scale.
Once you have the unscaled voltage, just multiply your voltage by 0.0049 and you'll have inches. |
|
#3
|
|||
|
|||
|
Re: Analog Maxbotix XL-EZ4
Thanks! That makes a lot of sense. However, the voltage is scaled in WPILib.
It says "Get a scaled sample straight from this channel on the module. The value is scaled to units of Volts using the calibrated scaling data from getLSBWeight() and getOffset(). " That's the part I don't understand. |
|
#4
|
|||||
|
|||||
|
Re: Analog Maxbotix XL-EZ4
The "scaling" mentioned in the library is simply a conversion from raw A/D counts to volts. What you get out of GetVoltage() is the measured voltage on the pins.
|
|
#5
|
|||
|
|||
|
Re: Analog Maxbotix XL-EZ4
That makes sense! So is get voltage in mv? Do you just times get voltage by .0049
|
|
#6
|
||||
|
||||
|
Re: Analog Maxbotix XL-EZ4
Voltage * .0049 = distance in inches. That's it.
|
|
#7
|
||||||
|
||||||
|
Re: Analog Maxbotix XL-EZ4
The units in the spec sheet is 4.9 mv/cm To get cm, you would divide by .0049v/cm. You could then convert to inches if desired.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|