极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16533|回复: 2

步进电机程序,它接收到字符只动一次,各位怎么解决呢

[复制链接]
发表于 2019-6-30 17:09:44 | 显示全部楼层 |阅读模式
自己弄个串口控制步进电机的程序,想接收A就连续转,接收B停止。这个只接收一次转一下,不知怎么改好
int timer = 10; // 延迟时间
void setup() {

Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}


void loop()
{
if (Serial.available())
{
char c=Serial.read();
if(c=='A')
{
zhengzhuan();
}

if(c=='B')
{
tingzhi();
}
}
}


void tingzhi()
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}


void zhengzhuan()
{
for (int thisPin = 2; thisPin < 6; thisPin++)
{
// 将LED打开:
digitalWrite(thisPin, HIGH);
delay(timer);
// 将LED关闭:
digitalWrite(thisPin, LOW);
}
}
回复

使用道具 举报

发表于 2019-7-5 08:44:13 | 显示全部楼层
本帖最后由 lllangxx 于 2019-7-5 08:59 编辑

int timer = 10; // 延迟时间

int control = 0;//控制标签

void setup() {

Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}


void loop()
{
        if (Serial.available())
        {
                char c=Serial.read();
                if(c=='A')
                {
                        control = 1;//一直转
                }


                if(c=='B')
                {
                        control = 0;//一直转
                        tingzhi();
                }
        }
       
        if( 1 == control)
        {
                zhengzhuan();       
        }
}


void tingzhi()
{
        digitalWrite(2, LOW);
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
}


void zhengzhuan()
{
        for (int thisPin = 2; thisPin < 6; thisPin++)
        {
                // 将LED打开:
                digitalWrite(thisPin, HIGH);
                delay(timer);
                // 将LED关闭:
                digitalWrite(thisPin, LOW);
        }
}
控制部分这么改你试试,zhengzhuan()不明白,为什么2345口?这是要控制几个啊貌似写得也有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-5 11:19:48 | 显示全部楼层
lllangxx 发表于 2019-7-5 08:44
int timer = 10; // 延迟时间

int control = 0;//控制标签

哈,谢谢,确实这样可以了,zhengzhuan()里面就是个四位流水灯来的,我想步进电机也是相当于流水灯样子控制的直接写在zhengzhuan()里面,判断那里直接代入zhengzhuan();就行了,简洁好看些
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 18:42 , Processed in 0.050154 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表