最近想做一个自由摆遇到了一些问题求大神们给点宝贵经,
主要是步进电机转速的问题 在摆的时候用手慢慢摆动步进电机转动正常,但是让它摆动的时候步进电机不能转动,在第一个问摆动一个周期转一周没有什么问题,这是什么原因?
我的驱动是用的L298N 步进电机是用的 35BYJ412 步进电机 用的陀螺仪MPU6050 来测量角度 具体就是这些配置
第一问是在自由摆摆动一周不进电机转一圈 这个没有问题 在摆动的时候转速那些都还好
但是在放硬币这一问上步进电机就不行了,用手很慢的摆动时步进电机能正常转动,但是在自由摆动的时候步进电机几乎不转
(我怀疑是一下几种可能: 步进电机不行响应慢 驱动不行 陀螺仪采集不行跟不上 ) 做过的大神希望给点宝贵的经验,懂步进电机的希望帮忙分析下什么原因 是硬件有问题?
在线等 在此万分感谢 仅存的100金钱全部奉上。
#include"stm32f10x.h"
#include "dianji.h"
#include "systick.h"
u8 i,j,k;
u16 N=128*8;
u8 single_pos[4]={0x07,0x0b,0x0d,0x0e};
u8 single_rev[4]={0x0e,0x0d,0x0b,0x07};
u8 double_pos[4]={0x06,0x03,0x09,0x0c};
u8 double_rev[4]={0x0c,0x09,0x03,0x06};
u8 eight_pos[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};
u8 eight_rev[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};
void moto_gpio_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //声明一个结构体变量,用来初始化GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); /* 开启GPIO时钟 */
/* 配置GPIO的模式和IO口 */
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_0; //选择你要设置的IO口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //设置推挽输出模式
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率
GPIO_Init(GPIOA,&GPIO_InitStructure); /* 初始化GPIO */
}
void Moto_Out_Data(u8 dat)
{
GPIO_WriteBit(GPIOA,GPIO_Pin_1,(BitAction)(dat&0x01));
GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)(dat&0x02));
GPIO_WriteBit(GPIOA,GPIO_Pin_3,(BitAction)(dat&0x04));
GPIO_WriteBit(GPIOA,GPIO_Pin_4,(BitAction)(dat&0x08));
}
void m_single_pos(int C)
{
for(k=0;k<C;k++)
{
for(i=0;i<4;i++)
{
Moto_Out_Data(single_pos[i]);
delay_ms(3);
}
}
}
void m_single_rev(int C)
{
for(k=0;k<C;k++)
{
for(i=0;i<4;i++)
{
Moto_Out_Data(single_rev[i]);
delay_ms(3);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>