Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Syntax
public class Hcsr04 : SamplingSensorBase<Length>, IObservable<IChangeResult<Length>>, IRangeFinder, ISamplingSensor<Length>, ISensor<Length>, IDisposable
Constructors
Hcsr04()
Create a new HCSR04 object
Declaration
protected Hcsr04()
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Hcsr04(IDigitalOutputPort, IDigitalInterruptPort)
Create a new HCSR04 object
Declaration
public Hcsr04(IDigitalOutputPort triggerPort, IDigitalInterruptPort echoPort)
Parameters
Type | Name | Description |
---|---|---|
IDigitalOutputPort | triggerPort | The port for the trigger pin |
IDigitalInterruptPort | echoPort | The port for the echo pin |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Hcsr04(IPin, IPin)
Create a new HCSR04 object with an IO Device
Declaration
public Hcsr04(IPin triggerPin, IPin echoPin)
Parameters
Type | Name | Description |
---|---|---|
IPin | triggerPin | The trigger pin |
IPin | echoPin | The echo pin |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Fields
echoPort
Port for echo Pin
Declaration
protected IDigitalInterruptPort? echoPort
Field Value
Type | Description |
---|---|
IDigitalInterruptPort |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
triggerPort
Port for trigger Pin
Declaration
protected IDigitalOutputPort? triggerPort
Field Value
Type | Description |
---|---|
IDigitalOutputPort |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Properties
Distance
Returns current distance
Declaration
public Length? Distance { get; protected set; }
Property Value
Type | Description |
---|---|
Length? |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
IsDisposed
Is the object disposed
Declaration
public bool IsDisposed { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
MaximumDistance
Maximum valid distance in cm
Declaration
public double MaximumDistance { get; }
Property Value
Type | Description |
---|---|
double |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
MinimumDistance
Minimum valid distance in cm
Declaration
public double MinimumDistance { get; }
Property Value
Type | Description |
---|---|
double |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Methods
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Declaration
public void Dispose()
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Dispose(bool)
Dispose of the object
Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
bool | disposing | Is disposing |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
MeasureDistance()
Sends a trigger signal
Declaration
public virtual void MeasureDistance()
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
RaiseEventsAndNotify(IChangeResult<Length>)
Raise events for subscribers and notify of value changes
Declaration
protected override void RaiseEventsAndNotify(IChangeResult<Length> changeResult)
Parameters
Type | Name | Description |
---|---|---|
IChangeResult<Length> | changeResult | The updated sensor data |
Overrides
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
ReadSensor()
Reads data from the sensor
Declaration
protected override Task<Length> ReadSensor()
Returns
Type | Description |
---|---|
Task<Length> | The latest sensor reading |
Overrides
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
StartUpdating(TimeSpan?)
Starts continuously sampling the sensor
Declaration
public override void StartUpdating(TimeSpan? updateInterval = null)
Parameters
Type | Name | Description |
---|---|---|
TimeSpan? | updateInterval |
Overrides
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
StopUpdating()
Stops sampling the sensor
Declaration
public override void StopUpdating()
Overrides
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub
Wiring Example
Events
DistanceUpdated
Raised when an received a rebound trigger signal
Declaration
public event EventHandler<IChangeResult<Length>> DistanceUpdated
Event Type
Type | Description |
---|---|
EventHandler<IChangeResult<Length>> |
Remarks
Hcsr04 | |
---|---|
Status | |
Source code | GitHub |
Datasheet(s) | GitHub |
NuGet package |
The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object (like bats). It offers excellent non-contact range detection with high accuracy and stable readings in an easy-to-use package.
Code Example
Hcsr04 hCSR04;
public override Task Initialize()
{
Resolver.Log.Info($"Hello HC-SR04 sample");
hCSR04 = new Hcsr04(
triggerPin: Device.Pins.D05,
echoPin: Device.Pins.D06);
hCSR04.DistanceUpdated += HCSR04_DistanceUpdated;
return Task.CompletedTask;
}
public override Task Run()
{
while (true)
{
// Sends a trigger signal
hCSR04.MeasureDistance();
Thread.Sleep(2000);
}
}
private void HCSR04_DistanceUpdated(object sender, IChangeResult<Meadow.Units.Length> e)
{
Resolver.Log.Info($"Distance (cm): {e.New.Centimeters}");
}
Sample project(s) available on GitHub