I managed to write this code.
I have a phone witch sends a byte in ASCII code for the bluetooth functin -if-
For example: if bluetooth=='1' , it checks if the ASCII code sent from phone is 49. When any of the arrows/button are stopped being pressed the phone transmits the ASCII code corresponding to X.
I check with a servo motor every button if it works, and it does but strangely when I connect 2 servo motors, in paralel with 5V line and ground + the PWM accordingly to the axis, the motors shake and start moving randomly without pressing any keys.
The following code is:
#include <Servo.h>
int bluetooth=0;
Servo servo_moto1; //functia servo, de fapt e o functie liniara
Servo servo_moto2;
Servo servo_moto3;
Servo servo_moto4;
Servo servo_moto5;
Servo servo_moto6;
int angle1=1;
int angle2=1;
int angle3=1;
int angle4=1;
int angle5=1;
int angle6=1;
void setup()
{
servo_moto1.attach(3); // A1
servo_moto2.attach(4); // A2
servo_moto3.attach(5); // B1
servo_moto4.attach(6); // C1
servo_moto5.attach(7); // D1
servo_moto6.attach(8); // Cleste
Serial.begin(9600); //default comm
}
void loop()
{
if(Serial.available()>0)
{
bluetooth=Serial.read();
}
if(bluetooth=='1') //motorul A1 49,50
{
for(angle1; angle1 < 180; angle1 += 1)
{
servo_moto1.write(angle1);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='2')
{
for(angle1; angle1 >= 1; angle1 -= 1)
{
servo_moto1.write(angle1);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='3') //motorul A2 51,52
{
for(angle2; angle2 < 180; angle2 += 1)
{
servo_moto2.write(angle2);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='4')
{
for(angle2; angle2 >= 1; angle2 -= 1)
{
servo_moto2.write(angle2);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='5') //motorul B1 53,54
{
for(angle3; angle3 < 180; angle3 += 1)
{
servo_moto3.write(angle3);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='6')
{
for(angle3; angle3 >= 1; angle3 -= 1)
{
servo_moto3.write(angle3);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='7') //motorul C1 55,56
{
for(angle4; angle4 < 180; angle4 += 1)
{
servo_moto4.write(angle4);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='8')
{
for(angle4; angle4 >= 1; angle4 -= 1)
{
servo_moto4.write(angle4);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='9') //motorul D1 55,56
{
for(angle5; angle5 < 180; angle5 += 1)
{
servo_moto5.write(angle5);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='0')
{
for(angle5; angle5 >= 1; angle5 -= 1)
{
servo_moto5.write(angle5);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='A') //motorul cleste 65,66
{
for(angle6; angle6 < 180; angle6 += 1)
{
servo_moto6.write(angle6);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
if(bluetooth=='B')
{
for(angle6; angle6 >= 1; angle6 -= 1)
{
servo_moto6.write(angle6);
delay(20);
bluetooth=Serial.read();
if(bluetooth=='X')
{
break;
}
}
}
}
What I am doing wrong?