. 2023-04-07 00:00 采纳率: 50%
浏览 134
已结题

循迹电机都分别正常 但不能正常循迹

循迹能亮 电机烧录也能动 但是结合起来不能循迹是什么原因 电子还是程序的原因

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2023-04-07 06:19
    关注

    以下内容部分参考ChatGPT模型:


    首先需要确认循迹模块的输出是否正确,可以通过示波器等工具观察输出波形是否符合预期。如果循迹模块输出正确,则需要检查程序中是否正确读取了循迹模块的输出,并根据读取的结果控制电机的转动。同时还需要注意电机控制的算法是否正确,例如PID算法等是否正确实现。可以尝试在程序中输出调试信息,观察程序的执行过程是否符合预期,以便定位问题所在。以下是一个简单的示例代码,可供参考:

    #include <stm32f4xx.h>
    #include <stdbool.h>
    
    #define TRACKING_PORT GPIOA
    #define TRACKING_PIN  GPIO_Pin_0
    
    #define MOTOR_PORT GPIOB
    #define MOTOR_PIN  GPIO_Pin_0
    
    bool track_is_on_track(void)
    {
        return GPIO_ReadInputDataBit(TRACKING_PORT, TRACKING_PIN) == Bit_RESET;
    }
    
    void motor_forward(void)
    {
        GPIO_SetBits(MOTOR_PORT, MOTOR_PIN);
    }
    
    void motor_stop(void)
    {
        GPIO_ResetBits(MOTOR_PORT, MOTOR_PIN);
    }
    
    int main(void)
    {
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB, ENABLE);
    
        GPIO_InitTypeDef GPIO_InitStructure;
    
        // 初始化循迹模块引脚为输入模式
        GPIO_InitStructure.GPIO_Pin = TRACKING_PIN;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(TRACKING_PORT, &GPIO_InitStructure);
    
        // 初始化电机引脚为输出模式
        GPIO_InitStructure.GPIO_Pin = MOTOR_PIN;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(MOTOR_PORT, &GPIO_InitStructure);
    
        while (1)
        {
            if (track_is_on_track())
            {
                motor_forward();
            }
            else
            {
                motor_stop();
            }
        }
    }
    

    如果我的建议对您有帮助、请点击采纳、祝您生活愉快

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)