Arduino 驱动机械臂与自制控制器 – 舵机与电位器构建
组件与供应
![]() |
Arduino UNO | × | 1 |
![]() |
舵机 MG995 | × | 1 |
![]() |
舵机 DS3115 | × | 1 |
![]() |
旋转电位器 10kΩ (B 曲线) | × | 1 |
应用与在线服务
![]() |
Arduino IDE |
关于项目
我制作了机械臂及其控制器。
构成
机械臂使用三个普通 PWM 舵机,每个角度由一个滑动电阻控制。旋转电位器采用 B 曲线 10kΩ。

机械臂制作
垂直方向用两个 DS3115 舵机,摆动方向用一个 MG995 舵机。

控制器制作
用 3D 打印制作控制器外壳。

外壳上有旋钮固定孔、定位孔和嵌入旋钮的凹槽。

组装打印件和三个旋转电位器即完成!电位器安装方向与机械臂舵机旋转轴一致。
Arduino 代码
简单代码:读取电位器模拟值,映射为角度,写入对应舵机。
#include <Servo.h>
Servo myservo1, myservo2, myservo3;
float th1=90.0, th2=90.0, th3=90.0;
float val1, val2, val3;
void setup() {
Serial.begin(9600);
myservo1.attach(9, 500, 2420); // MG995
myservo2.attach(10, 820, 2140); // DS3115
myservo3.attach(11, 820, 2140); // DS3115
set_servo();
}
void loop() {
val1 = analogRead(A1);
val2 = analogRead(A2);
val3 = analogRead(A3);
th1 = map(val1, 170.0, 880.0, 0.0, 180.0);
if (th1 >= 180.0) th1 = 180.0;
else if (th1 <= 0.0) th1 = 0.0;
th2 = map(val2, 150.0, 860.0, 0.0, 180.0);
if (th2 >= 180.0) th2 = 180.0;
else if (th2 <= 0.0) th2 = 0.0;
th3 = map(val3, 860.0, 160.0, 0.0, 180.0);
if (th3 >= 180.0) th3 = 180.0;
else if (th3 <= 45.0) th3 = 45.0;
set_servo();
}
void set_servo() {
myservo1.write(th1);
myservo2.write(th2);
myservo3.write(th3);
}
运行
接好电位器接线并连接 Arduino 即可运行!
自定义部件与外壳
(此处原文无具体文件,保留章节)
制造工艺
- 基于树莓派的视觉避障移动机器人
- gatoBot:基于树莓派 Zero W 的网页控制机器人,支持实时视频流
- Simple Pi Robot:用树莓派打造 2WD 自主巡航车
- Arduino Mega 驱动紫外线消毒机器人:远程遥控杀菌系统
- Unopad:基于 Arduino 的无缝 Ableton Live MIDI 控制器
- MeArm 机械臂 V1.0——Arduino 与 Raspberry Pi 驱动的桌面级机械臂制作全指南
- 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
- Arduino Mega 驱动 Wii Nunchuk 控制 6 自由度机械臂
- KUKA KMR iiwa:面向工业 4.0 的移动协作机器人臂
- 双臂 SCARA 机器人:高阶装配与柔性生产的利器
- Yama Seiki GA-2000CR:配备机械臂与托盘系统的紧凑型车削中心
- 精准伺服运动技术赋能机器人系统集成与协同作业


