极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18724|回复: 11

改造舵机的问题

[复制链接]
发表于 2015-6-15 12:43:48 | 显示全部楼层 |阅读模式
各位,我手头有一个工作电压约5V的舵机,但是里面的直流电机坏掉了,刚好手上有个12V(额定)的直流电机,打算把它安到舵机里,可是这样一来新换的直流电机就不能输出最大扭矩,有什么办法提高舵机的额定电压从而使得12V的直流电机能正常工作的方法吗?
回复

使用道具 举报

发表于 2015-6-16 09:13:01 | 显示全部楼层
我也拆过舵机,而且也有改造过,但不清楚你用的是哪一种(质量好的可以容许较宽的电压功率也会大一些)舵机。
一般来说舵机是5~9V或者6~9V比较正常(也是视舵机而定)
我改造的舵机是使用直流减速马达+电位器+舵机拆机的驱动模块。
你也不必一定要用12V电源(我的是12V马达,个头还不小,但是使用8.4V的锂电池供电,扭矩也不小),所以可以使用6V~9V的电源供电(尽量用大功率的稳压模块),就能接近正常的工作了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-16 18:32:53 | 显示全部楼层
164335413 发表于 2015-6-16 09:13
我也拆过舵机,而且也有改造过,但不清楚你用的是哪一种(质量好的可以容许较宽的电压功率也会大一些)舵机 ...

多谢相助!我觉得还有一种思路就是写程序让ARDUINO可以作为舵机的驱动模块,这样一来直流电机就可以用L298N之类的驱动板供电达到12V电压,然后ARDUINO自身另外分开供电,不知是否可行?!
回复 支持 反对

使用道具 举报

发表于 2015-6-17 13:45:34 | 显示全部楼层
可行,这样就需要将舵机自带的驱动模块的输出信号接到L298的输入上,马达再接到l298的输出上。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-18 17:55:05 | 显示全部楼层
164335413 发表于 2015-6-17 13:45
可行,这样就需要将舵机自带的驱动模块的输出信号接到L298的输入上,马达再接到l298的输出上。

醍醐灌顶!感激不尽!可以加你QQ一起讨论吗?
回复 支持 反对

使用道具 举报

发表于 2015-6-29 16:28:31 | 显示全部楼层
实际我也拆过舵机,也尝试接到12V电源上,结果里面的mos管的驱动击穿了。
回复 支持 反对

使用道具 举报

发表于 2015-7-11 16:58:47 | 显示全部楼层
164335413 发表于 2015-6-29 16:28
实际我也拆过舵机,也尝试接到12V电源上,结果里面的mos管的驱动击穿了。

啊啊啊不好意思 最近忙着各种事情没有看到......大致道理我算是明白了,但是就是舵机自带驱动板接L298N不明白,驱动板就是2条线(一红一黑),直接包揽电机转速与电机转向,但是L298N它用控制一个电机要3条线,
EN IN1 IN2,求指点迷津,再次谢谢!
回复 支持 反对

使用道具 举报

发表于 2015-7-15 09:07:58 | 显示全部楼层
L298N驱动的使能端可以直接接到自己的5V上,因为不需要速度控制。如果不介意的话,如果你的舵机质量比较好,可以使用舵机内部的驱动来驱动你新的马达。
但如果要接L298N的话,你可能需要找到舵机自带的驱动上的输入信号(指的是舵机内部的控制器输出到舵机内部的驱动上的信号),然后接到L298N的IN1、IN2上。因为舵机自带驱动板的输出是直接接马达的,你接到L298N的输入端,可能会有影响。
回复 支持 反对

使用道具 举报

发表于 2015-7-15 20:23:22 | 显示全部楼层
舵机的质量貌似不是很好,我现在在写程序,看不看能不能用两个一样的电位器(一个当控制的,一个当反馈的)来控制电机位置,这样就不用用到那个坑爹的舵机驱动板了!OTZ
回复 支持 反对

使用道具 举报

发表于 2015-7-15 21:36:11 | 显示全部楼层
164335413 发表于 2015-7-15 09:07
L298N驱动的使能端可以直接接到自己的5V上,因为不需要速度控制。如果不介意的话,如果你的舵机质量比较好, ...

还有大神我想问下,舵机自带控制板在比较电位器模拟值差异时候是不是允许有误差?还是说一定要模拟值相等
电机才停?
回复 支持 反对

使用道具 举报

发表于 2015-7-15 21:55:48 | 显示全部楼层
//a new try to make a DIY servo
//2015.7.15
#include"math.h"
int IN1 = 12;
int IN2 = 13;
int EN = 9;

void setup()
{
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(EN,OUTPUT);
}
void loop()
{
  int a = analogRead(A0) - analogRead(A1);
  int b = abs(a);
  if (b <= 2)
  {
    digitalWrite(IN1,LOW);
    digitalWrite(IN2,LOW);
    analogWrite(EN,0);
  }
  else
  {
    if (analogRead(A0) > analogRead(A1))
    {
      digitalWrite(IN1,HIGH);
      digitalWrite(IN2,LOW);
      analogWrite(EN,255);
    }
    else
    {
      digitalWrite(IN1,LOW);
      digitalWrite(IN2,HIGH);
      analogWrite(EN,255);
    }
  }
  delay(15);
}
   

成功了
{:soso_e109:}
回复 支持 反对

使用道具 举报

发表于 2015-7-17 09:10:14 | 显示全部楼层
我大概明白你的意思,电位器1旋转多少角度,舵机就和电位器2(反馈电位器)旋转多少度。这个是可行的。
如果说品质比较好的舵机,电位器反馈系统会使用比较好的PID算法进行调节,有些舵机的电位器质量不太好,会造成舵机在某个位置剧烈抖动。
一般来说舵机里面的芯片不允许电位器有较大的误差,这样一来角度控制就不准了。
另外完全可以自己写舵机的驱动程序,完全不用舵机的控制板,不过会比较麻烦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 10:35 , Processed in 0.056904 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表