problem while increasing motor speed

hi
i am using dtmf decoder to control the quad copter... so i have fixed 1 button(in mobile) to increase the speed of all four motors simltenously.. it was working fine earlier.. but now i am getting some problem... that is, while increasing the speed of motors it is increasing for a while and after takeoff the speed reduces by itself...and on serial monitor i am getting the expected value but motor is not responding.

#include <Servo.h>
Servo m1,m2,m3,m4;
int led = 12;
int led1 = 7;
int s1,s2,s3,s4=0;
int val,val1,val2,val3,val4;
void setup()
{
pinMode(2,INPUT);
pinMode(4,INPUT);
pinMode(6,INPUT);
pinMode(8,INPUT);
pinMode(10,INPUT);
pinMode(led,OUTPUT);
pinMode(led1,OUTPUT);
m1.attach(3);
m2.attach(5);
m3.attach(9);
m4.attach(11);
attachInterrupt(0,dtmf,RISING);
Serial.begin(9600);
}
void loop()
{
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(led1, LOW);
delay(10000);
digitalWrite(led, HIGH);
delay(75);
digitalWrite(led, LOW);
delay(40000);
if(val!=0)
{
Serial.println(val);
val = 0;
}
}
void dtmf()
{
for(int i=1;i<5;i++)
{
if(digitalRead(i+i+2)==1)
{
val =digitalRead(4)+2digitalRead(6)+4digitalRead(8)+8*digitalRead(10);
switch (val)
{
case 1:
s1=583;
s2=583;
s3=583;
s4=583;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
break;
case 5:
for(i=0;i<20;i++)
{
s1=s1+1;
s2=s2+1;
s3=s3+1;
s4=s4+1;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 8:
for(i=0;i<10;i++)
{
s1=s1-1;
s2=s2-1;
s3=s3-1;
s4=s4-1;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 4:
for(i=1;i<5;i++)
{
s2=s2+1;
s1=s1;
s3=s3;
s4=s4;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 6:
for(i=1;i<5;i++)
{
s1=s1+1;
s2=s2;
s3=s3;
s4=s4;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 7:
for(i=1;i<5;i++)
{
s4=s4+1;
s1=s1;
s2=s2;
s3=s3;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 9:
for(i=1;i<5;i++)
{
s3=s3+1;
s1=s1;
s2=s2;
s4=s4;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
default:
for(s1=0;s1<110;s1++)
{
val1 = map(s1, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
m1.write(val1);
m2.write(val1);
m3.write(val1);
m4.write(val1);// sets the servo position according to the scaled value
}
break;
}
}
}
}

Why do repeat so much code?
Why do you assign variables to themselves?
Where are the comments?
Where are the code tags?

niraj3189:
hi
i am using dtmf decoder to control the quad copter... so i have fixed 1 button(in mobile) to increase the speed of all four motors simltenously.. it was working fine earlier.. but now i am getting some problem... that is, while increasing the speed of motors it is increasing for a while and after takeoff the speed reduces by itself...and on serial monitor i am getting the expected value but motor is not responding.

#include <Servo.h>
Servo m1,m2,m3,m4;
int led = 12;
int led1 = 7;
int s1,s2,s3,s4=0;
int val,val1,val2,val3,val4;
void setup()
{
pinMode(2,INPUT);
pinMode(4,INPUT);
pinMode(6,INPUT);
pinMode(8,INPUT);
pinMode(10,INPUT);
pinMode(led,OUTPUT);
pinMode(led1,OUTPUT);
m1.attach(3);
m2.attach(5);
m3.attach(9);
m4.attach(11);
attachInterrupt(0,dtmf,RISING);
Serial.begin(9600);
}
void loop()
{
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(led1, LOW);
delay(10000);
digitalWrite(led, HIGH);
delay(75);
digitalWrite(led, LOW);
delay(40000);
if(val!=0)
{
Serial.println(val);
val = 0;
}
}
void dtmf()
{
for(int i=1;i<5;i++)
{
if(digitalRead(i+i+2)==1)
{
val =digitalRead(4)+2digitalRead(6)+4digitalRead(8)+8*digitalRead(10);
switch (val)
{
case 1:
s1=583;
s2=583;
s3=583;
s4=583;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
break;
case 5:
for(i=0;i<20;i++)
{
s1=s1+1;
s2=s2+1;
s3=s3+1;
s4=s4+1;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 8:
for(i=0;i<10;i++)
{
s1=s1-1;
s2=s2-1;
s3=s3-1;
s4=s4-1;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 4:
for(i=1;i<5;i++)
{
s2=s2+1;
s1=s1;
s3=s3;
s4=s4;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 6:
for(i=1;i<5;i++)
{
s1=s1+1;
s2=s2;
s3=s3;
s4=s4;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 7:
for(i=1;i<5;i++)
{
s4=s4+1;
s1=s1;
s2=s2;
s3=s3;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
case 9:
for(i=1;i<5;i++)
{
s3=s3+1;
s1=s1;
s2=s2;
s4=s4;
val1 = map(s1, 0, 1023, 0, 179);
val2 = map(s2, 0, 1023, 0, 179);
val3 = map(s3, 0, 1023, 0, 179);
val4 = map(s4, 0, 1023, 0, 179);
m1.write(val2);
m2.write(val4);
m3.write(val1);
m4.write(val3);
}
break;
default:
for(s1=0;s1<110;s1++)
{
val1 = map(s1, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
m1.write(val1);
m2.write(val1);
m3.write(val1);
m4.write(val1);// sets the servo position according to the scaled value
}
break;
}
}
}
}

again i've another problem...in starting all motors are working as i power on at 583 but now one motor is running on 783,2nd one at 733,3rd one at 583 and 4th one is not running...
please tell me what is actual problem in arduino board or connections....