升压模块连上L298N后电压不稳定,总是变化,步进电机也是前进几步就后退,请各位大佬帮忙看看什么原因

2019-07-21 04:49发布

本帖最后由 八块腹肌233 于 2019-2-21 22:14 编辑

头文件程序如下:#ifndef __CHUMI_H
#define __CHUMI_H

#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"

u8 upstep8_table[]={0x08,0x0a,0x02,0x06,0x04,0x05,0x01,0x09};  //Õy×aË3Dò±í
//u8 downstep8_table[]={0x04,0x06,0x02,0x0a,0x08,0x09,0x01,0x05};       //Äæ×aË3Dò±í
extern struct rice rice_info;
int chumi(struct rice rice_info);    //¸oÔe3öÃ×
void motor_pin_init();   //3õê¼»ˉμç»úòy½Å
void SetMotor(unsigned char InputData);  //éèÖμμç»úòy½Åμçƽ
#endif


.c文件如下:
#include "test.h"


void motor_pin_init()
{
          GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
    GPIO_Init(GPIOB,&GPIO_InitStructure);  


}

void SetMotor(unsigned char InputData)
{
    if(InputData&0x01)
    {
        GPIO_SetBits(GPIOB,GPIO_Pin_0);
                //        delay_ms(20000);
    }
    else
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_0);
    }
    if(InputData&0x02)
    {
        GPIO_SetBits(GPIOB,GPIO_Pin_1);
    }
    else
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_1);

    }
    if(InputData&0x04)
    {
        GPIO_SetBits(GPIOB,GPIO_Pin_2);
    }
    else
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_2);
    }
    if(InputData&0x08)
    {
        GPIO_SetBits(GPIOB,GPIO_Pin_3);
    }
    else
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_3);
    }
}

void motorNcircle(int n,int position)
{
    int i,j,k=0;
    for(j=0;j<n;j++)
    {
        //for(i=0;i<64*8;i++)
        for(i=0;i<8;i++)
        {
            for(k=0;k<8;k++)
            {
                if(1 == position)
                {
                    SetMotor(upstep8_table[k]);
                }
               // else
               // {
                //    SetMotor(downstep8_table[k]);
               // }
                delay_ms(2);
            }
        }
    }
}
我感觉软件部分应该没什么问题,就是会不会是电压的不稳定导致步进电机无法正常运转,但不知道为什么会电压不稳定,求各位大佬帮忙看看。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
八块腹肌233
1楼-- · 2019-07-21 07:11
电压一会17V,一会又5V,变化幅度很大
xujian468
2楼-- · 2019-07-21 12:20
八块腹肌233 发表于 2019-2-21 22:14
电压一会17V,一会又5V,变化幅度很大

先不要用升压模块供电试试,弄个开关电源先让电机正常跑起来
xujian468
3楼-- · 2019-07-21 17:46
L298是用L297控制的,还是自己IO口直接控制的?
八块腹肌233
4楼-- · 2019-07-21 22:14
xujian468 发表于 2019-2-22 09:40
L298是用L297控制的,还是自己IO口直接控制的?

用的IO口直接控制的,用示波器看了298的四个输出通道,信号都不稳定,会不会是298模块的问题,不明白的是升压模块只和298连接的时候电压输出是稳定的,但只要单片机一上电就不稳定了
宫本无三四
5楼-- · 2019-07-22 00:42
 精彩回答 2  元偷偷看……
八块腹肌233
6楼-- · 2019-07-22 06:03
宫本无三四 发表于 2019-2-22 11:31
PB2是boot0,PB3是jtag调试端口

多谢大佬,已经调试成功了。非常感谢

一周热门 更多>