Hello im pretty new in arduino and need some help making my school project. Im using arduino with bluetooth to rotate the stepper motor by 90, 180, 270 and 360 degrees. I made that. I got stuck making the motor turn left constantly or right and i don't know how to stop it. I make a loop function wich rotates the motor as long as my input is one HIGH and because its on high it ignores the entire code.i started to test some stuff at the end there. Any ideas?
Thanks to anyone.
HERE IS THE CODE:
#include<SoftwareSerial.h>
SoftwareSerial bt(2,3); /* (Rx,Tx) /
char stanje;
byte delayTime;
bool VHOD = 6;
byte L;
int x = 0;
void setup() {
bt.begin(9600); / Define baud rate for software serial communication /
Serial.begin(9600); / Define baud rate for serial communication */
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(6, INPUT);
pinMode(7, OUTPUT);
}
void loop() {
int x = 0;
delayTime = 15;
if (bt.available()) /* If data is available on serial port /
{
Serial.write(bt.read()); / Print character received on to the serial monitor */
}
stanje = bt.read();
switch(stanje){
case 'a': do{
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(delayTime);
Serial.println (x);
x++; }
while(x <12 );;;break;
default : break;
}
switch(stanje){
case 'b': do{
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(delayTime);
Serial.println (x);
x++; }
while(x <26 );
;break;
int x = 0;
default : break;}
switch(stanje){
case 'c': do{
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(delayTime);
Serial.println (x);
x++; }
while(x <37 );
;break;
default : break;
}
switch(stanje){
case 'd': do{
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
delay(delayTime);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(delayTime);
Serial.println (x);
x++; }
while(x <50 );;break;
default : break;}
switch(stanje){
case 'e':
digitalWrite(7, HIGH);
do {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(100);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
delay(100);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(100);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(100);
if ( VHOD == HIGH);
goto del;
default : break;}
while (VHOD == HIGH);
del :
switch(stanje){
case 's': digitalWrite(7, LOW);
default : break;
}
}
}
CODE.txt (4.04 KB)