Modbus - Hall Effect Bricklet

This is the description of the Modbus protocol for the Hall Effect Bricklet. General information and technical specifications for the Hall Effect Bricklet are summarized in its hardware description.

API

A general description of the Modbus protocol structure can be found here.

Basic Functions

BrickletHallEffect.get_value
Function ID:

1

Request:

empty payload

Response:
  • value -- bool

Returns true if a magnetic field of 35 Gauss (3.5mT) or greater is detected.

BrickletHallEffect.get_edge_count
Function ID:

2

Request:
  • reset_counter -- bool
Response:
  • count -- uint32

Returns the current value of the edge counter. You can configure edge type (rising, falling, both) that is counted with set_edge_count_config.

If you set the reset counter to true, the count is set back to 0 directly after it is read.

Advanced Functions

BrickletHallEffect.set_edge_count_config
Function ID:

3

Request:
  • edge_type -- uint8
  • debounce -- uint8
Response:

no response

The edge type parameter configures if rising edges, falling edges or both are counted. Possible edge types are:

  • 0 = rising (default)
  • 1 = falling
  • 2 = both

A magnetic field of 35 Gauss (3.5mT) or greater causes a falling edge and a magnetic field of 25 Gauss (2.5mT) or smaller causes a rising edge.

If a magnet comes near the Bricklet the signal goes low (falling edge), if a magnet is removed from the vicinity the signal goes high (rising edge).

The debounce time is given in ms.

Configuring an edge counter resets its value to 0.

If you don't know what any of this means, just leave it at default. The default configuration is very likely OK for you.

Default values: 0 (edge type) and 100ms (debounce time)

The following meanings are defined for the parameters of this function:

  • 0: rising, for edge_type
  • 1: falling, for edge_type
  • 2: both, for edge_type
BrickletHallEffect.get_edge_count_config
Function ID:

4

Request:

empty payload

Response:
  • edge_type -- uint8
  • debounce -- uint8

Returns the edge type and debounce time as set by set_edge_count_config.

The following meanings are defined for the parameters of this function:

  • 0: rising, for edge_type
  • 1: falling, for edge_type
  • 2: both, for edge_type
BrickletHallEffect.get_identity
Function ID:

255

Request:

empty payload

Response:
  • uid -- char[8]
  • connected_uid -- char[8]
  • position -- char
  • hardware_version -- uint8[3]
  • firmware_version -- uint8[3]
  • device_identifier -- uint16

Returns the UID, the UID where the Bricklet is connected to, the position, the hardware and firmware version as well as the device identifier.

The position can be 'a', 'b', 'c' or 'd'.

The device identifier numbers can be found here

Callback Configuration Functions

BrickletHallEffect.set_edge_interrupt
Function ID:

5

Request:
  • edges -- uint32
Response:

no response

Sets the number of edges until an interrupt is invoked.

If edges is set to n, an interrupt is invoked for every n-th detected edge.

If edges is set to 0, the interrupt is disabled.

Default value is 0.

BrickletHallEffect.get_edge_interrupt
Function ID:

6

Request:

empty payload

Response:
  • edges -- uint32

Returns the edges as set by set_edge_interrupt.

BrickletHallEffect.set_edge_count_callback_period
Function ID:

7

Request:
  • period -- uint32
Response:

no response

Sets the period in ms with which the CALLBACK_EDGE_COUNT callback is triggered periodically. A value of 0 turns the callback off.

The CALLBACK_EDGE_COUNT callback is only triggered if the edge count has changed since the last triggering.

The default value is 0.

BrickletHallEffect.get_edge_count_callback_period
Function ID:

8

Request:

empty payload

Response:
  • period -- uint32

Returns the period as set by set_edge_count_callback_period.

Callbacks

BrickletHallEffect.CALLBACK_EDGE_COUNT
Function ID:

10

Response:
  • count -- uint32
  • value -- bool

This callback is triggered periodically with the period that is set by set_edge_count_callback_period. The response values are the current count and the current value (see get_value and get_edge_count).

The CALLBACK_EDGE_COUNT callback is only triggered if the count or value changed since the last triggering.