串口遥控器控制电机动作,只有控制部分,没有串口通讯过程

本文介绍了一种通过串口遥控器控制翻身电机的方法。当Key_Value_Rst为0时,串口向遥控器发送指令,遥控器清除Key_Ture_Value值。控制逻辑包括检查腿部和背部马达位置,确保在特定条件下马达动作或停止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

串口遥控器控制电机,
Key_Value_Rst == 0 的时候,串口向遥控器发送一个指令
遥控器通过判断这个指令来,清除Key_Ture_Value的值

主要实现功能:控制翻身电机
如果腿部两马达处于放平位置(腿部1处于最小行程,腿部2处于最大行程),
腿部两马达不动作,如果腿部两马达未处于放平位置,则腿部两马达先动作至放平
位置;其次,如果背部处于平躺位置(背部马达处于最小行程),则背部马达不动
作,如果背部没有处于平躺位置,则背部马达先放平。这时再次双击按键翻身马达
开始动作,中途按压任意按键或松开按键,马达停止。
/*
* 描述: 翻身电机控制
* 参数: 1 Up 2Down
* 返回: 无*/
void Motor_Turn_Run(u8 dir)
{
    if(Motor_Head_Position == 1)
    {
        Motor_Head_Stop();    
        if((Motor_Foot1_Position == 1)&&(Motor_Foot2_Position == 5))
        {
            Motor_Foot1_Stop();    
            Motor_Foot2_Stop();
            if(motor_turn_run_flag == 1)
            {
                Key_Value_Rst = 0;
            }
            else
            {
                if(dir == KEY_LEFT_RUN)
                {
                    Turn_Check_Position(MOTOR_DIR_UP);
                }
                else if(dir == KEY_RIGHT_RUN)
                {
                    Turn_Check_Position(MOTOR_DIR_DOWN);
                }
            }
        }
        else
        {
            motor_turn_run_flag = 1;
            Foot2_Check_Position(MOTOR_DIR_UP);
            Foot1_Check_Position(MOTOR_DIR_DOWN);
        }
    }    
    else
    {
        motor_turn_run_flag = 1;
        Head_Check_Position(MOTOR_DIR_DOWN);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值