Packages

Use Dexter Industries' GrovePi+ and GrovePiZero boards and many Grove sensors.

Current section

Files

Jump to
grovepi lib grovepi button.ex
Raw

lib/grovepi/button.ex

defmodule GrovePi.Button do
use GrovePi.Poller, default_trigger: GrovePi.Button.DefaultTrigger, read_type: GrovePi.Digital.level
@moduledoc """
Listen for events from a GrovePi button. There are two types of
events by defualt; pressed and released. When registering for an event the button
will then send a message of `{pin, :pressed, {value: 1}` or
`{pin, :released, {value: 0}}`. The button works by polling
`GrovePi.Digital` on the pin that you have registered to a button.
Example usage:
```
iex> {:ok, button}=GrovePi.Button.start_link(3)
:ok
iex> GrovePi.Button.subscribe(3, :pressed)
:ok
iex> GrovePi.Button.subscribe(3, :released)
:ok
```
"""
def read_value(prefix, pin) do
GrovePi.Digital.read(prefix, pin)
end
end