Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Worldwide shipping via DHL
Skip to main content

Arduino EMG Muscle Sensor: Control a Servo Claw

May 18, 2026 173 views

Arduino EMG Muscle Sensor: Control a Servo Claw | ShillehTek
Project

Build an Arduino Nano EMG muscle sensor controller that drives a servo claw when you flex, a practical starting point for biofeedback and prosthetic demos from ShillehTek.

30 min Intermediate4 parts

EMG V3.0 power guidance — November 4, 2026: For the current board shown below, the recommended operating setup is regulated split ±5 V (+5 V / GND / −5 V), with a nominal 0–5 V SIG design envelope. Use the current V3.0 manual for the supply wiring, ADC checks, isolation and evidence scope. This recommendation does not establish factory-certified minimum/maximum ratings. The older single-5 V and two-9 V examples remain withdrawn.

Project Overview

Arduino Nano + EMG muscle sensor servo control: In this project, an EMG sensor reads the small electrical signals your muscles generate when you flex, and an Arduino drives a servo in real time based on that activity. With electrodes on your forearm, you can open and close a servo-driven claw (or control a motor or LED) using your muscle signals.

This is foundation tech used in prosthetics, biofeedback, and gesture-controlled interfaces.

  • Time: ~30 minutes
  • Skill level: Intermediate
  • What you will build: An Arduino-driven servo that opens and closes when you flex your forearm, a building block for a robotic claw.
Illustrative EMG application using different hardware; not the current V3.0 wiring
Illustrative application photo using different hardware. Follow the current V3.0 power and isolation instructions below; do not copy the photo connections.

Parts List

From ShillehTek

External

  • EMG electrodes (the kit includes the leads and 3 sticky electrodes)
  • Split supply for the EMG board: two 3×AA battery holders with six fresh alkaline AA cells (about ±4.5 V), or another battery-powered split supply of no more than ±5 V
  • Meter for rail-polarity checks; ADC signal conditioning where required
  • Optional: 3D-printed robotic claw or grabber

Note: This is a hobby/educational sensor. It can not replace medical-grade EMG equipment and should not be used for diagnostic purposes.

Step-by-Step Guide

Step 1 - Plan the Electrode Placement

Keep the electrodes disconnected from the body during wiring and bench checks. Identify the reference lead with the continuity check in the EMG V3.0 manual; connector colors alone do not establish their functions. Use an appropriately isolated body-connected measurement setup before placing electrodes on a person.

Current Muscle Sensor V3.0 board with Gain trimmer, +Vs/GND/-Vs supply pads and SIG/GND output pads
Current V3.0 board. Its labeled connections differ from the older VCC/GND/OUT description.

Step 2 - Connect the Supply and Analog Interface

With electrodes disconnected, follow the manual's regulated split-supply setup: +5 V to +Vs, 0 V to GND, and −5 V to −Vs. The simplest build is two 3×AA alkaline packs: pack A positive to +Vs, pack A negative joined to pack B positive on GND, and pack B negative to −Vs, which gives about ±4.5 V. Verify both rails with a meter. The −Vs pad is the negative rail, not ground. A single Arduino 5 V output is insufficient, and the earlier two-9 V example remains withdrawn.

SIG has a nominal 0–5 V design envelope at this supply. Check the actual signal against your Arduino's ADC limits and use any required scaling/protection before connecting it to A0; connect signal GND to the ADC ground within the isolated system. For 3.3 V controllers, suitable signal conditioning is required.

For body-connected operation, keep the complete system battery powered and electrically isolated from mains, chargers, grounded instruments and mains-connected USB. Disconnect electrodes for programming or bench tests. Power the servo according to its own specifications and connect its control signal to D9. See the EMG V3.0 manual for the full setup.

Step 3 - Upload the Sketch

Goal: Read the EMG analog value, compute movement vs baseline, and command the servo.

What to do: Only after the supply, isolation and ADC compatibility checks are complete, upload this sketch to your Arduino. The code captures a baseline at startup, prints the raw reading to Serial, and closes the servo when the signal difference exceeds a threshold (tune it for your skin).

Code:

// Requires verified sensor supply and ADC-compatible A0 input.
#include <Servo.h>
const int EMG = A0;
Servo claw;
const int CLOSED = 0, OPEN = 90;
const int THRESHOLD = 350;   // tune for your skin
int baseline = 0;
void setup() {
  Serial.begin(9600);
  claw.attach(9);
  long sum = 0;
  for (int i = 0; i < 100; i++) { sum += analogRead(EMG); delay(10); }
  baseline = sum / 100;
}
void loop() {
  int v = analogRead(EMG);
  Serial.println(v);
  int diff = abs(v - baseline);
  claw.write(diff > THRESHOLD ? CLOSED : OPEN);
  delay(20);
}

Expected result: The servo responds once the signal exceeds the threshold. Observe Serial Monitor readings during body-connected measurements only with a battery-only, electrically isolated recording setup; keep chargers and mains-connected USB disconnected.

Step 4 - Flex and See It Move

Goal: Confirm your electrode placement, wiring, and threshold produce consistent motion.

What to do: Flex your forearm and watch the servo. If it triggers too easily or not at all, adjust THRESHOLD to match your signal strength.

Illustrative muscle-controlled application with different hardware; not a V3.0 connection diagram
Illustrative application using different hardware. For this V3.0 project, use the specified split supply and battery-only isolated setup; do not copy USB or power connections from this photo.

Expected result: Flexing causes the claw to close (or move toward closed), and relaxing causes it to open.

Step 5 - Where to Take It Next

Goal: Explore safe, realistic next steps based on the same EMG-to-actuator concept.

What to do: Consider these extensions:

  • Two electrode groups to distinguish flex vs extend for bidirectional control
  • Drive a 3D-printed prosthetic hand with 5 servos for finger-by-finger movement
  • Use as a gesture controller for video games (combine with Pro Micro HID)
  • Log signals for biofeedback and rehab applications

Expected result: You have a clear direction for expanding the project after reviewing the power, input protection and isolation requirements for the expanded setup.

Conclusion

You built an Arduino Nano project that reads an EMG muscle sensor and uses that signal to move a servo claw in real time. Once your electrode placement and threshold are dialed in, this becomes a strong starting point for biofeedback demos, gesture controllers, and prosthetic-style mechanisms.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services.

Project photo credit: Instructables (reference source for this version).

Parts for this build

Everything used in this tutorial. Uncheck what you already have.

All 5 in stock
0 parts selected $0.00