Menu
Microbots
0
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • Wavelit Display
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Sign in
  • English
  • Your Cart is Empty
Microbots
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • Wavelit Display
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Language

  • 0 0

CodeCell: Controlling a Servo-Motor

CodeCell Servo Control

CodeCell can drive low-power servo motors directly and uses its onboard motion sensor to bring interactive projects to life. 

How It Works

A servo motor is a rotary actuator that holds a specific angle based on an input signal (0°–180°). During setup, take note of the following points:

  • Power via USB-C (up to 500 mA) or LiPo battery (up to 1500 mA) for higher-torque servos.
  • Use the ESP32Servo library (available from Arduino Library Manager).
  • Connect the servo’s signal pin to a GPIO, and use CodeCell’s GND and VO pins for power.

Example – Control Servo with Pitch Angle

This example reads the Pitch angle from CodeCell and moves the servo accordingly. The servo follows your tilt, which can be used for testing motion-based control or creating simple balancing mechanisms.


#include <CodeCell.h>
#include <ESP32Servo.h>

CodeCell myCodeCell;
Servo myservo;

float Roll = 0.0;
float Pitch = 0.0;
float Yaw = 0.0;
int servo_angle = 0;

void setup() {
  Serial.begin(115200);
  myCodeCell.Init(MOTION_ROTATION); // Enable rotation sensing
  myservo.attach(1);                // Connect servo to pin 1
}

void loop() {
  if (myCodeCell.Run(10)) {         // Run at 10 Hz
    myCodeCell.Motion_RotationRead(Roll, Pitch, Yaw);

    // Map Pitch angle to servo position
    servo_angle = abs((int)Pitch);
    servo_angle = 180 - servo_angle;

    // Limit movement range (0–60°)
    if (servo_angle > 60) servo_angle = 60;
    else if (servo_angle < 0) servo_angle = 0;

    Serial.println(servo_angle);
    myservo.write(servo_angle);     // Move servo to mapped angle
  }
}

Customization Tips

  • Adjust Range: Modify servo_angle limits to match your servo’s mechanical range.
  • Combine Sensors: Mix rotation control with proximity or light sensing for adaptive behavior.
  • Use for Stabilization: Apply feedback logic for gimbals, camera mounts, or balancing platforms.
  • Share:

Follow

Github

  • About
  • Software
  • Education
  • Contact
  • FAQs
  • Terms
  • Refund Policy
  • Privacy Policy

Join our Community ~ Be the first to know about new products and get exciting deals!

© 2026 Microbots.

★ Reviews

Let customers speak for us

83 reviews
Write a review
87%
(72)
5%
(4)
2%
(2)
2%
(2)
4%
(3)
77
21
G
Experiment in Progress Mug
Gerald Kendrick

I am enjoying my Experiment in Progress coffee mug. It fits in well in the lab.

K
12-in-1 Screwdriver (Pen-Size)
Klaas

Very useful fun little screwdriver for the all tiny stuff

f
ProtoBot
frederic marty

I don't have much time right now to test the micro bot, but it looks good.

f
MotorCell
frederic marty

I don't have much time right now to test it but it looks good.

M
ProtoBot
Mehmed Muslija

ProtoBot has met all my expectations.
Watching one of the videos on YouTube, I thought it would be interesting and educational to make a small project for my 8 year old cousin. ProtoBot has provided a wide range of experiences and encouraged my cousin to take on new projects.

User picture
123