this code should work but it dosen't it post properly then in loop reads the pwm peoperly displays it properly as a degree then the write fuction just dose not do anything at first i thought it was my if stament but no i put in weapon.write(45); and it still stays at 180 degreese please help i have no idea what is going wrong
#include <Servo.h>
Servo weapon;
Servo drive1;
Servo drive2;
byte PWM_PIN1 = 8;
byte PWM_PIN2 = 7;
byte PWM_PIN3 = 6;// create servo object to control a servo
// twelve servo objects can be created on most boards
int pwm_weapon; //auxsilary button
int pwm_drive1; // throtle
int pwm_drive2; // steering
void setup() {
pinMode(PWM_PIN1, INPUT);
pinMode(PWM_PIN2, INPUT);
pinMode(PWM_PIN3, INPUT);
Serial.begin(9600);
weapon.attach(11);
drive1.attach(10);
drive2.attach(9);
drive1.write(95);
drive2.write(89);
weapon.write(90);//start up post
delay(500);
weapon.write(120);
delay(500);
weapon.write(45);
drive1.write(7);
drive2.write(1);
delay(500);
drive1.write(180);
drive2.write(174);
delay(500);
drive1.write(95);
drive2.write(89);
delay(500);
}
void loop() {
pwm_weapon = pulseIn(PWM_PIN1, HIGH);
pwm_weapon = pwm_weapon - 550;
pwm_weapon = pwm_weapon / 11;
Serial.println(pwm_weapon);
weapon.write(45);
if(pwm_weapon > 90 );{
weapon.write(45);
}
if(pwm_weapon < 80);{
weapon.write(180);
}
delay(10); //math to get an output of 0-180
pwm_drive1 = pulseIn(PWM_PIN2, HIGH);
pwm_drive1 = pwm_drive1 - 550;
pwm_drive1 = pwm_drive1 / 11;
delay(10);
pwm_drive2 = pulseIn(PWM_PIN3, HIGH);
pwm_drive2 = pwm_drive2 - 550;
pwm_drive2 = pwm_drive2 / 11;
delay(10);
//drive1.write(pwm_drive1);
//drive2.write(pwm_drive1);
delay(10);
//drive1.write(pwm_drive2);
//pwm_drive2 = pwm_drive2 * -1;
//drive2.write(pwm_drive2);
delay(10);
}