|
|
1.arduino UNO R3
2.LD3320免编译模块LP-ICR V1.4
3.L298N
4.28byj-48步进电机
目前步进电机已经能按照我的 意思旋转90°了。。。
可是 加上语音控制以后,对他说话没用,电机不转。
自带语言 是 说“左转” 给 HIGH 说“又转”给 LOW
可是他就是不转怎么办。求大神来帮帮忙
下面是我的代码。代码编译没错。
#include <Stepper.h>
int _step = 0;
int stepperSpeed = 1;
int stepsum=0;
void setup(){
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop(){
if(Serial.available()){
int inByte = Serial.read();
switch(inByte)
{
case 0x00:
for(int i=0;i<135;i++)
{
switch(_step){
case 0:
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
break;
case 1:
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
break;
case 2:
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
break;
case 3:
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
break;
case 4:
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
break;
case 5:
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
break;
case 6:
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
break;
case 7:
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
break;
}
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
delay(stepperSpeed);
stepsum++;
if(stepsum==1080)
{
Serial.println(stepsum);
stepsum=0;
delay(5000);
}
case 0x01
:
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
break;
}
}
} |
|