69 lines
1.8 KiB
ReStructuredText
69 lines
1.8 KiB
ReStructuredText
.. _servo-motor-sample:
|
|
|
|
Servomotor
|
|
##########
|
|
|
|
Overview
|
|
********
|
|
|
|
This is a sample app which drives a servomotor using PWM.
|
|
|
|
The sample rotates a servomotor back and forth in the 180 degree range with a
|
|
PWM control signal.
|
|
|
|
This app is targeted for servomotor ROB-09065. The corresponding PWM pulse
|
|
widths for a 0 to 180 degree range are 700 to 2300 microseconds, respectively.
|
|
Different servomotors may require different PWM pulse widths, and you may need
|
|
to modify the source code if you are using a different servomotor.
|
|
|
|
Requirements
|
|
************
|
|
|
|
You will see this error if you try to build this sample for an unsupported
|
|
board:
|
|
|
|
.. code-block:: none
|
|
|
|
Unsupported board: pwm-servo devicetree alias is not defined
|
|
|
|
The sample requires a servomotor whose signal pin is connected to a PWM
|
|
device's channel 0. The PWM device must be configured using the ``pwm-servo``
|
|
:ref:`devicetree <dt-guide>` alias. Usually you will need to set this up via a
|
|
:ref:`devicetree overlay <set-devicetree-overlays>` like so:
|
|
|
|
.. code-block:: DTS
|
|
|
|
/ {
|
|
aliases {
|
|
pwm-servo = &some_pwm_node;
|
|
};
|
|
};
|
|
|
|
Where ``some_pwm_node`` is the node label of a PWM device in your system.
|
|
|
|
See :zephyr_file:`samples/basic/servo_motor/boards/bbc_microbit.overlay` for an
|
|
example.
|
|
|
|
Wiring
|
|
******
|
|
|
|
BBC micro:bit
|
|
=============
|
|
|
|
You will need to connect the motor's red wire to external 5V, the black wire to
|
|
ground and the white wire to the SCL pin, i.e. pin 21 on the edge connector.
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
The sample has a devicetree overlay for the :ref:`bbc_microbit`.
|
|
|
|
This sample can be built for multiple boards, in this example we will build it
|
|
for the bbc_microbit board:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/basic/servo_motor
|
|
:board: bbc_microbit
|
|
:goals: build flash
|
|
:compact:
|