GrovePi v0.3.2 GrovePi.Potentiometer View Source
Listen for events from a GrovePi potentiometer or rotary angle sensor. There
is only one type of event by default; :changed
. When registering for an
event the potentiometer will send a message similar to
{pin, :changed, {value: 1}
with the value being a number from 0-1023
that maps to 0 to 5 volts. The potentiometer works by polling
GrovePi.Analog
on the pin that you have registered to a potentiometer.
Example usage:
iex> {:ok, potentiometer} = GrovePi.Potentiometer.start_link(16)
:ok
iex> GrovePi.Potentiometer.subscribe(16, :changed)
:ok
The GrovePi.Potentiometer.DefaultTrigger
is written so when the value of
the potentiometer changes, the subscribed process will receive a message in
the form of {pid, :changed, %{value: value}
. The message should be
received using GenServer handle_info/2.
For example:
def handle_info({_pid, :changed, %{value: value}}, state) do
# do something with `value`
{:noreply, state}
end
Link to this section Summary
Functions
Stops the current scheduled polling event and starts a new one with the new interval
Callback implementation for GrovePi.Poller.read_value/2
Options
Stops polling immediately
Link to this section Functions
change_polling(GrovePi.pin, integer, atom) :: :ok
Stops the current scheduled polling event and starts a new one with the new interval.
read(GrovePi.pin, atom) :: GrovePi.Analog.adc_level
Callback implementation for GrovePi.Poller.read_value/2
.
Options
:poll_interval
- The time in ms between polling for state.i If set to 0 polling will be turned off. Default:100
:trigger
- This is used to pass in a trigger to use for triggering events. See specific poller for defaults:trigger_opts
- This is used to pass options to a triggerinit1
. The default is[]
stop_polling(GrovePi.pin, atom) :: :ok
Stops polling immediately
subscribe(GrovePi.pin, GrovePi.Trigger.event, atom) :: {:ok, pid} | {:error, {:already_registered, pid}}