Multiple Units
Measure distance in centimeters, meters, millimeters, inches, yards, or miles. Flexible unit selection for any project.
A minimalist Arduino library for HC-SR04, Ping, and Seeed sensors with multiple unit support

Install the library and start measuring distance in minutes:
#include <MinimalUltrasonic.h>
// For HC-SR04 (4-pin)
MinimalUltrasonic sensor(12, 13);
void setup() {
Serial.begin(9600);
}
void loop() {
float distance = sensor.read(); // Distance in cm
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
}Measure in any unit you need:
float cm = sensor.read(MinimalUltrasonic::CM);
float meters = sensor.read(MinimalUltrasonic::METERS);
float inches = sensor.read(MinimalUltrasonic::INCHES);
float yards = sensor.read(MinimalUltrasonic::YARDS);| Feature | Description |
|---|---|
| Units | 6 units: cm, m, mm, inches, yards, miles |
| Sensors | 3-pin and 4-pin configurations |
| Timeout | Configurable (default: 20ms ≈ 3.4m range) |
| Memory | 8 bytes per sensor instance |
| Code Size | ~1.4 KB compiled |
| Return Type | Float for precision |
| Accuracy | ±3mm (sensor dependent) |
Minimalist Philosophy
Other libraries include unnecessary features that bloat your code. MinimalUltrasonic focuses on what matters: accurate distance measurement with minimal overhead.
Modern Design
Built with modern C++ practices including type-safe enums, const correctness, and comprehensive documentation. Version 2.0 adds multiple units while maintaining the minimalist approach.
Production Ready
Used in real-world projects. Well-tested across multiple Arduino platforms. Professional-grade code with comprehensive error handling.
MinimalUltrasonic is released under the MIT License.
Based on the excellent work of Erick Simões.
Made with ❤️ by Magni Development