Files
ESPEasy/docs/source/Plugin/P001_commands_GPIO.repl
T
Gijs Noorlander 021374bf09 [GPIO] Add GPIO pin description page
And some other GPIO related updates.
2018-12-04 22:38:17 +01:00

108 lines
2.9 KiB
Plaintext

.. These P001 commands should be moved to core (P000)...
:ref:`P000_page` |P000_status|
Supported hardware: |P000_usedby_GPIO|
.. csv-table::
:header: "Command (GPIO/Value)", "Extra information"
:widths: 20, 30
"
``GPIO,<GPIO>,<state>``
GPIO: 0 ... 16
State:
**2** (HIGH-Z, input)
**1** (HIGH, output)
**0** (LOW, output)
","
**Basic on/off.**.
We can control a pin with simple http URL commands. To change the pin to high or low steady output. Setting GPIO to **2** means
that it will be able to detect low level relays (with high impedance, Z).
"
"
``GPIOtoggle,<GPIO>``
GPIO: 0 ... 16
","
**Toggle on/off.**.
Toggle the current (output) state of the given GPIO pin.
This will only be executed on pins set to be in output mode.
"
"
``LongPulse,<GPIO>,<state>,<duration>``
GPIO: 0 ... 16
State: 1/0
Duration: 1 ... 999 S
","
**To send a *long* pulse to a certain pin.**.
A long pulse is basically the same as the plain pulse. Duration is defined in seconds, which makes it more suitable for longer duration.
This command is not blocking, but will send 2 events to start and stop the pulse. This may have some variation depending on the system load of the module.
Variation is typically up-to 10 msec, but may be up-to a second, depending on active plugins and controllers performing blocking operations.
"
"
``LongPulse_mS,<GPIO>,<state>,<duration>``
GPIO: 0 ... 16
State: 1/0
Duration: 10 ... 15000 mS
","
**To send a *long* pulse to a certain pin.**
A long pulse (mS) is the same as the regular long pulse. The only difference is the time base in milliseconds rather than in seconds.
"
"
``Pulse,<GPIO>,<state>,<duration>``
GPIO: 0 ... 16
State: 1/0
Duration: 0 ... 1000 mS
","
**To send a *short* pulse to a certain pin.**
Example to send an active high (1) pulse on GPIO 14 for 500 mSeconds. Pulse duration is in milliseconds. State is 1 or 0.
N.B. this is a blocking call, meaning no other actions will be performed during the pulse.
"
"
``PWM,<GPIO>,<state>``
``PWM,<GPIO>,<state>,<duration>``
GPIO: 0 ... **15**
State: 0 ... 1023
Duration: 100 ... 15000 mS (optional)
","
**To set a certain PWM level.**
If you have set a certain GPIO to a PWM level and want to use it as a regular HIGH/LOW pin you need to reset by setting the PWM level to 0.
You can use the duration (ms) parameter to create a fading.
"
"
``Servo,<servo>,<GPIO>,<position>``
GPIO: 0 ... **15**
Servo: 1/2
Position: -180 ... 180 (see warning below)
","
**To control a servo motor.**
We currently support a maximum of two servo motors so you can build a pan & tilt device if you like.
.. warning::
Most servos are not able to turn full 360°! Normally the servos are able to go from **-90°** to **90°**, some rare servos do allow for -135° to 135°.
"