I am making a bluetooth car cam remote with a servo a pro mini and a HD duel car cam and I can control it just fine with my Droidx2, tilt, left and right, presets, but with my coding i can not get it to come out of a do/while of a switch/case for switch (qualifier) case "a" switch (dataByte) case "4"
any one have any ideals?
thanks
DrMCP
#include <Servo.h>
#define ledA 13
#define ledB 11
Servo servo0;
Servo servo1;
#define S0 0
#define S1 1
#define DServo0 1600 // default position for servo0 on "power up" - 1500uS is center position on most servos
#define DServo1 1600 // default position for servo1 on "power up" - 1500uS is center position on most servos
int qualifier;
Servo Servo0; // define servos
Servo Servo1; // define servos
int dataByte;
int pos = 0;
void setup()
{
Servo0.attach(S0); // attach servo to I/O pin
Servo1.attach(S1); // attach servo to I/O pin
Servo0.writeMicroseconds(DServo0); // set servo to default position
Servo1.writeMicroseconds(DServo1); // set servo to default position
Serial.begin(115200);
pinMode(ledA,OUTPUT);
pinMode(ledB,OUTPUT);
pinMode(1,OUTPUT);
servo0.attach(14); //analog pin 0
servo1.attach(15); //analog pin 1
}
void loop()
{
if(Serial.available()>1)
{
qualifier=Serial.read();
dataByte=Serial.read();
}
switch (qualifier)
{
case 'A':
//Serial.print("aux big button was pushed number ");
// delay(1700);
// Serial.print(dataByte);
switch (dataByte)
{
case 1:
servo1.write(1000);
break;
case 2:
servo1.write(1600);
break;
case 3:
servo1.write(2200);
break;
case 4:
do
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
servo1.write(pos); // tell servo to go to position in variable 'pos'
delay(25); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
servo1.write(pos); // tell servo to go to position in variable 'pos'
delay(25); // waits 15ms for the servo to reach the position
}
}
while (dataByte = 4);
}
break;
case 'C':
// Serial.print("received command number ");
// delay(1700);
// Serial.print(dataByte);
{
case 5:
servo1.write(1000);
break;
case 6:
servo1.write(1500);
break;
case 7:
servo1.write(2000);
break;
}
break;
case 'D':
Serial.print("Direction button was pushed number ");
// delay(1700);
Serial.print(dataByte);
break;
case 'G':
Serial.print("Send data box 1 contains ");
// delay(1700);
Serial.print(dataByte);
break;
case 'H':
Serial.print("send data box 2 contains ");
// delay(1700);
Serial.print(dataByte);
break;
case 'L':
analogWrite(ledA,dataByte);
servo0.write(dataByte);
break;
case 'R':
analogWrite(ledB,dataByte);
servo1.write(dataByte);
break;
case 'X':
analogWrite(ledA,dataByte);
servo0.write(dataByte);
break;
case 'Y':
analogWrite(ledB,dataByte);
servo1.write(dataByte);
break;
}
qualifier=0;
dataByte=0;
}
/*void sweep()
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
servo1.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
servo1.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}*/