How would I use that for the input and output?
This is our code.
AnalogInput inUltra = new AnalogInput(0);
AnalogOutput outUltra = new AnalogOutput(0);
inUltra.getVoltage();
Ultrasonic ultra = new Ultrasonic(0,0);
ultra.setAutomaticMode(true);
double range = ultra.getRangeInches();
String what = Double.toString(range);
for(int i = 1; i < 10; i++){
SmartDashboard.putNumber(what, range);
}
You have to convert the voltage to a distance value. The sensor should have a spec for mV/in or mV/m or something relating voltage and distance.
For example, the MaxBotics MB1010 LV-EZ1 has a spec of 9.8mV/in with a 5V supply. So, if you read 0.392V from the sensor, this would result in a distance of 40 inches. (0.392 / 0.0098)
Some simple code you could use.
AnalogInput ultrasonic(0);
float voltage(0);
float distance(0);
const float volts_to_inches(0.0098);
voltage = ultrasonic.GetVoltage();
distance = voltage / volts_to_inches;
These sensors tend to be pretty noisy, so I would suggest a simple low pass filter.