OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3797|回复: 19

好烦啊,求助L298N到底如何控制舵机996R。

[复制链接]

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
发表于 2017-2-14 21:43:29 | 显示全部楼层 |阅读模式
1金钱
rt,楼主想用L298N控制舵机,但是碰到了如下问题:

1.舵机是996R,额定电压是5V,这就得在12V输入的口上连上5v电源
2.然后舵机是有三个口的,+5v、GND、PWM。我把PWM和GND口连到了L298N的输出端,
然后再把GND连到输入的298的GND,再把STM32的GND连到298的GND,希望舵机、MCU、L298N、电源能共地。
然后298的INT1、INT2是MCU的GPIO输出,EN1是MCu的pwm输出。

结果反正舵机是一直在抖动……………………根本没转。
这么多线连的头也大了,不知道正确的连法到底是怎么样的。
我在陈述一遍我的连法……:
       电源(5v):正极连到L298N的+12V口,负极连到L298N的GND
       舵机:+5v连到5v电源的正极,GND连到L298N的地,PWM端连到L298N的输出端(然后298输出端的另一口连到GND)
       MCU:PWM输出口连到L298N的EN1,2个GPIO连到IN1、IN2。就和控制电机时的连接一样。

然后程序是一个测试程序:

int main(void)
{  
        u16 angle=0;
        u8 flag=1;
        Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
        delay_init(168);                        //延时初始化   
        SERVO_Init();        //舵机初始化
        LED_Init();   //pf10/pf9
       
           while(1)
        {
            PFout(9)=flag;
                PFout(10)=!flag;
                for(angle=0;angle<180;angle++)
                {
                        ServoF_Set(angle);
                        delay_ms(10);
                }
                for(angle=180;angle>0;angle--)
                {
                        ServoF_Set(angle);
                        delay_ms(10);
                }
               
        }
}

舵机的初始化函数:
void PWM9_1_2_Init(u32 arr,u32 psc)
{
        RCC->APB2ENR|=1<<16;         //TIM9时钟使能   
        RCC->AHB1ENR|=1<<0;           //使能PORTA时钟       
        GPIO_Set(GPIOA,PIN2|PIN3,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PD);//复用功能,上拉输出
        GPIO_AF_Set(GPIOA,2,3);        //PA2,AF3
        GPIO_AF_Set(GPIOA,3,3);        //PA3,AF3
       
        TIM9->ARR=arr;                        //设定计数器自动重装值
        TIM9->PSC=psc;                        //预分频器不分频
        TIM9->CCMR1|=6<<4;          //CH1 PWM1模式                 
        TIM9->CCMR1|=1<<3;                 //CH1 预装载使能          
        TIM9->CCER|=1<<0;           //OC1 输出使能       
        TIM9->CCER|=0<<1;           //OC1 高电平有效          
        TIM9->CR1|=1<<7;                   //ARPE使能
       
        TIM9->CCMR1|=6<<12;          //CH2 PWM2模式                 
        TIM9->CCMR1|=1<<11;         //CH2 预装载使能            
       
        TIM9->CR1|=1<<0;            //使能定时器9        

}

void SERVO_Init(){
        PWM9_1_2_Init(4000-1,3360-1);//20ms,取50Hz
        PWM12_1_2_Init(4000-1,3360-1);
}


另外一个PWM12_1_2_Init(4000-1,3360-1);就不写出来了。不管是main里还是哪里都没用到,出错也不会在那里。
然后是控制舵机的函数:
void ServoF_Set(u8 angle){
        float x=(angle*400)/180+100;
        ServoF_VAL=(int)x;
}



求原子哥或者高手坛友们帮我一把啊。。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
 楼主| 发表于 2017-2-14 22:16:36 | 显示全部楼层
回复

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
 楼主| 发表于 2017-2-15 14:56:16 | 显示全部楼层
求助啊
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 15:14:02 | 显示全部楼层
舵机不需要驱动模块就行啊,直接给脉冲就行了
回复

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
 楼主| 发表于 2017-2-15 16:58:02 | 显示全部楼层
muk子夜 发表于 2017-2-15 15:14
舵机不需要驱动模块就行啊,直接给脉冲就行了

那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:52 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:52 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:52 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:53 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:53 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:53 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:53 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:54 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:55 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:55 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:03:55 | 显示全部楼层
在LS参考系 发表于 2017-2-15 16:58
那能直接驱动得了吗?电流够吗,我没敢试也怕弄坏板子

可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:04:11 | 显示全部楼层
可以的,不过你要选择耐5v的io口
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-15 17:05:33 | 显示全部楼层
不好意思,电脑卡了一下,就这样了
回复

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
 楼主| 发表于 2017-2-15 18:55:56 | 显示全部楼层
muk子夜 发表于 2017-2-15 17:05
不好意思,电脑卡了一下,就这样了

。。。什么叫耐5V的口。我有一块板是有5V的,但不知道耐不耐。。。
而且我要控制4个舵机,,,,
回复

使用道具 举报

4

主题

144

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2017-1-18
在线时间
80 小时
发表于 2017-2-15 22:32:01 | 显示全部楼层
本帖最后由 xdzhang 于 2017-2-15 23:11 编辑

20ms脉冲,0.5ms到2.5ms脉宽。电源要足够,有的要1A。
回复

使用道具 举报

17

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2016-9-27
在线时间
53 小时
发表于 2017-2-16 08:49:37 | 显示全部楼层
在LS参考系 发表于 2017-2-15 18:55
。。。什么叫耐5V的口。我有一块板是有5V的,但不知道耐不耐。。。
而且我要控制4个舵机,,,,

你查看stm32数据手册,有的io支持5v有的不支持
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2017-2-16 14:33:03 | 显示全部楼层
L298N需要配合L297用,不然很**,建议你使用TB6560AHQ,
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 04:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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