第一周、4.Stepper组件

创建Stepper组件设置index属性

在pages/index目录下的hml文件中创建一个Stepper组件,页面默认显示索引值为index的步骤。

<!-- index.hml -->
<div class="container">
    <stepper index="2">
        <stepper-item>
            <text>Step 1</text>
        </stepper-item>
        <stepper-item>
            <text>Step 2</text>
        </stepper-item>
        <stepper-item>
            <text>Step 3</text>
        </stepper-item>
        <stepper-item>
            <text>Step 4</text>
        </stepper-item>
    </stepper>
</div>
/* index.css */
.container {
    flex-direction: column;
    background-color:#F1F3F5;
}
text{
    width: 100%;
    height: 100%;
    text-align: center;
}

 通过设置label属性,自定义stepper-item的提示按钮。

/* index.css */
.container {
    flex-direction: column;
    background-color:#F1F3F5;
}
text{
    width: 100%;
    height: 100%;
    text-align: center;
}
<!-- index.hml -->
<div class="container">
    <stepper index="2">
        <stepper-item label="{{label_1}}">
            <text>Step 1</text>
        </stepper-item>
        <stepper-item label="{{label_2}}">
            <text>Step 2</text>
        </stepper-item>
        <stepper-item label="{{label_3}}">
            <text>Step 3</text>
        </stepper-item>
        <stepper-item label="{{label_4}}">
            <text>Step 4</text>
        </stepper-item>
    </stepper>
</div>

 

 设置样式:

 Stepper组件默认填充父容器,通过border和background-color设置边框、背景色。

 

<!-- index.hml -->
<div class="container" >
    <div class="stepperContent">
        <stepper class="stepperClass">
            <stepper-item label="{{label_1}}">
                <text>Step 1</text>
            </stepper-item>
            <stepper-item label="{{label_2}}">
                <text>Step 2</text>
            </stepper-item>
            <stepper-item label="{{label_3}}">
                <text>Step 3</text>
            </stepper-item>
            <stepper-item label="{{label_4}}">
                <text>Step 4</text>
            </stepper-item>
        </stepper>
    </div>
</div>
/* index.css */
.container {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color:#F1F3F5;
}
.stepperContent{
    width: 300px;
    height: 300px;
}
.stepperClass{
    border:1px solid silver ;
    background-color: white;
}
text{
    width: 100%;
    height: 100%;
    text-align: center;
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是用于控制步进电机运动的,具体解释和注释如下: ``` // 控制步进电机运动 // 步进电机的运动控制需要考虑多种因素,包括速度、位置、加速度、方向等 // 本段代码通过PID控制算法实现步进电机的精确运动控制 // 首先,根据步进电机的速度和脉冲数,计算步进电机当前的步数 stepper.stepCounter = stepper.speed; // 如果当前步数达到了脉冲数,则需要发送一个控制信号,让步进电机运动一步 if (stepper.stepCounter >= stepper.pulsePerStep) { stepper.stepCounter -= stepper.pulsePerStep; stepper.pos ; // 更新步进电机当前的位置 GPIO_SetBits(GPIOA, STEP_PIN); // 发送控制信号,让步进电机运动一步 GPIO_ResetBits(GPIOA, STEP_PIN); // 发送另一个控制信号,控制步进电机的方向 } else if (stepper.stepCounter <= -stepper.pulsePerStep) { // 如果当前步数小于负的脉冲数,则需要发送相反的控制信号,让步进电机反向运动一步 stepper.stepCounter = stepper.pulsePerStep; stepper.pos--; // 更新步进电机当前的位置 GPIO_SetBits(GPIOA, STEP_PIN); // 发送控制信号,让步进电机运动一步 GPIO_ResetBits(GPIOA, STEP_PIN); // 发送另一个控制信号,控制步进电机的方向 } // 接下来,根据当前位置和目标位置计算出误差值 stepper.error = stepper.targetPos - stepper.pos; // 将误差值累加到误差积分中 stepper.errorSum = stepper.error; // 计算误差微分值 int32_t dError = stepper.error - stepper.lastError; stepper.lastError = stepper.error; // 综合计算出PID控制量 int32_t pidOutput = KP * stepper.error + KI * stepper.errorSum + KD * dError; // 根据PID控制量和运动速度的比例关系,计算出目标速度 stepper.targetSpeed = pidOutput * STEPS_PER_MM / 60; // 如果目标速度超过了最大速度,则将目标速度设为最大速度 if (stepper.targetSpeed > stepper.maxSpeed) { stepper.targetSpeed = stepper.maxSpeed; } else if (stepper.targetSpeed < -stepper.maxSpeed) { stepper.targetSpeed = -stepper.maxSpeed; } // 根据当前速度和目标速度的比较,逐步调整步进电机的速度 if (stepper.speed < stepper.targetSpeed) { // 如果当前速度小于目标速度,则将当前速度逐步加速 stepper.speed = stepper.acc; if (stepper.speed > stepper.targetSpeed) { stepper.speed = stepper.targetSpeed; } } else if (stepper.speed > stepper.targetSpeed) { // 如果当前速度大于目标速度,则将当前速度逐步减速 stepper.speed -= stepper.acc; if (stepper.speed < stepper.targetSpeed) { stepper.speed = stepper.targetSpeed; } } ``` 总的来说,这段代码实现了精确的步进电机运动控制,并且通过PID控制算法实现了对步进电机位置和速度的精确控制。同时,该代码还考虑了步进电机的加速度、最大速度等因素,确保步进电机的运动过程中能够保持稳定和精确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值