.. _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
************

The sample requires a servomotor whose signal pin is connected to a pin driven
by PWM. The servo must be defined in Devicetree using the ``pwm-servo``
compatible (part of the sample) and setting its node label to ``servo``. You
will need to do something like this:

.. code-block:: devicetree

   / {
       servo: servo {
           compatible = "pwm-servo";
           pwms = <&pwm0 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
           min-pulse = <PWM_USEC(700)>;
           max-pulse = <PWM_USEC(2500)>;
       };
   };

Note that a commonly used period value is 20 ms. 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 P19 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:
