首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Proteus中的伺服电机不能正常运行

Proteus中的伺服电机不能正常运行
EN

Stack Overflow用户
提问于 2019-09-01 10:37:31
回答 2查看 1K关注 0票数 2

我试图用PIC18f4550控制伺服电机,但在购买之前,我试图在Proteus ISIS上模拟它,但我在设置角度时遇到了一些不一致的问题。

我尝试过使用20ms周期和1ms、1.167ms、1.333ms、1.5ms、1.667ms或1.833ms的占空比,其结果是Proteus MOTOR PWMSERVO上的角度为-69.8°,但使用2ms占空比的结果是完整的90.0°角

代码语言:javascript
复制
#define CONTROL             PORTCbits.RC0
#define BUTTON              PORTCbits.RC1


const Ang_Neg90 =               1.0;
const Ang_Neg60 =               1.167;
const Ang_Neg30 =               1.333;
const Ang_0 =                   1.5;
const Ang_30 =                  1.667;
const Ang_60 =                  1.833;
const Ang_90 =                  2.00;
// ------------------------------------------------- //

void ServoPosition (unsigned float Angle) {
    CONTROL = 1;
    Delay_ms(Angle);
    CONTROL = 0;
    Delay_ms(20 - Angle);
    }
void main(){
while(1){
    ServoPosition(Ang_0);
        if (BUTTON == 1){
            break;
        while(1){
                ServoPosition(Ang_90);
             }
        }
    }
}

我希望我的程序能够从0度到90度,但我得到的结果是-69.8到90度。你知道我哪里搞错了吗?

EN

回答 2

Stack Overflow用户

发布于 2019-09-01 11:53:51

如果看不到你的整个设置,就很难判断,所以这里有一个可能的列表。

检查模拟伺服设置

确保将其设置为默认值。

使用示波器工具测量PWM信号

Hobby Servo电机示例显示了如何使用示波器工具。将示波器连接到您的pic18f4550脉宽调制输出,并测量它,以确保占空比是正确的。你在低端(试图达到1ms)遇到了问题,所以我怀疑示波器会显示你的占空比太长。

如果你发现你的工作周期太长,你可以尝试:

  • 减去软化值,以处理模拟中存在的任何衰减时间。当您在pic18f4550上的专用脉宽调制模块real hardware.
  • Using上运行时,您可能必须使用不同的值。这可能是最好的解决方案,因为您可以只设置PWM寄存器(假设它是这样工作的……我没有仔细看过手册),然后让它为您控制占空比。

检查电压

Hobby Server的电池是6V,但5V似乎也可以工作。低于这个值,它就开始变得奇怪了。

票数 2
EN

Stack Overflow用户

发布于 2019-09-02 14:32:10

您的常量类型错误:

代码语言:javascript
复制
const Ang_Neg90 =               1.0;

这是一个值为1int类型的常量。

我猜你的意思是:

代码语言:javascript
复制
const  float Ang_Neg90 =        1.0;

但是不管怎样:如果您使用Microchip内置的延迟函数,那么参数的类型应该是unsigned long,并且您正在使用unsigned float

尝试定义我们的延迟时间(整数而不是float值!)并使用函数__delay_us(...)。并确保正确定义_XTAL_FREQ

如前所述:请记住不存在类型unsigned floatfloat始终是无签名的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57742846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档