frequencyio
– Support for frequency based protocols¶
Avertissement
This module is not available in SAMD21 builds. See the Module Support Matrix - Which Modules Are Available on Which Boards for more info.
All classes change hardware state and should be deinitialized when they
are no longer needed if the program continues after use. To do so, either
call deinit()
or use a context manager. See
Lifetime and ContextManagers for more info.
For example:
import time
import frequencyio
import board
frequency = frequencyio.FrequencyIn(board.D11)
frequency.capture_period = 15
time.sleep(0.1)
This example will initialize the the device, set
capture_period
, and then sleep 0.1 seconds.
CircuitPython will automatically turn off FrequencyIn capture when it resets all
hardware after program completion. Use deinit()
or a with
statement
to do it yourself.
Available on these boards
- class frequencyio.FrequencyIn(pin: microcontroller.Pin, capture_period: int = 10)¶
Read a frequency signal
FrequencyIn is used to measure the frequency, in hertz, of a digital signal on an incoming pin. Accuracy has shown to be within 10%, if not better. It is recommended to utilize an average of multiple samples to smooth out readings.
Frequencies below 1KHz are not currently detectable.
FrequencyIn will not determine pulse width (use
PulseIn
).Create a FrequencyIn object associated with the given pin.
- Paramètres:
Read the incoming frequency from a pin:
import frequencyio import board frequency = frequencyio.FrequencyIn(board.D11) # Loop while printing the detected frequency while True: print(frequency.value) # Optional clear() will reset the value # to zero. Without this, if the incoming # signal stops, the last reading will remain # as the value. frequency.clear()
- capture_period :int¶
The capture measurement period. Lower incoming frequencies will be measured more accurately with longer capture periods. Higher frequencies are more accurate with shorter capture periods.
Note
When setting a new
capture_period
, all previous capture information is cleared with a call toclear()
.
- __enter__() FrequencyIn ¶
No-op used by Context Managers.
- __exit__() None ¶
Automatically deinitializes the hardware when exiting a context. See Lifetime and ContextManagers for more info.