ESP32 Pulse Counter Sensor ========================== The pulse counter sensor allows you to count the number of pulses on a specific pin using the `pulse counter peripheral `__ on the ESP32. .. figure:: images/pulse-counter.png :align: center :width: 80.0% .. code:: yaml # Example configuration entry sensor: - platform: pulse_counter pin: 12 name: "Pulse Counter" Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ - **pin** (**Required**, :ref:`config-pin`): The pin to count pulses on. - **name** (**Required**, string): The name of the sensor. - **pull_mode** (*Optional*): The `pull mode `__ of the pin. One of ``PULLUP``, ``PULLDOWN``, ``PULLUP_PULLDOWN``, ``FLOATING``. Defaults to ``FLOATING``. - **count_mode** (*Optional*): Configure how the counter should behave on a detected rising edge/falling edge. - **rising_edge** (*Optional*): What to do when a rising edge is detected. One of ``DISABLE``, ``INCREMENT`` and ``DECREMENT``. Defaults to ``INCREMENT``. - **falling_edge** (*Optional*): What to do when a falling edge is detected. One of ``DISABLE``, ``INCREMENT`` and ``DECREMENT``. Defaults to ``DISABLE``. - **internal_filter** (*Optional*, int): If a pulse shorter than this number of APB clock pulses (each 12.5 ns) is detected, it’s discarded. See `esp-idf Filtering Pulses `__ for more information. Defaults to the max value 1023 or about 13 µs. - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``15s``. See :ref:`sensor-default_filter`. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - All other options from :ref:`Sensor ` and :ref:`MQTT Component `. Converting units ~~~~~~~~~~~~~~~~ The sensor defaults to measuring its values using a unit of measurement of “pulses/min”. You can change this by using :ref:`sensor-filters`. For example, if you’re using the pulse counter with a photodiode to count the light pulses on a power meter, you can do the following: .. code:: yaml # Example configuration entry sensor: - platform: pulse_counter pin: 12 unit_of_measurement: 'kW' name: 'Power Meter House' filters: - multiply: 0.06 See Also ^^^^^^^^ - :ref:`sensor-filters` - :doc:`rotary_encoder` - `esp-idf Pulse Counter API `__. - :doc:`API Reference ` - `Edit this page on GitHub `__