/*
 Servo motora kontrole no Rx PWM kanāla.
 No raidītāja padodot -100% servo motors nostājās vidus pozīcijā
 No raidītāja padodot vairāk par -80% servo motors kostās no viens
 gala pozīcijas līdz otrai , tā intensitāte pieaug palielinot %
 pie +100% servo kustās ar vislielāko ātrumu
 No raidītāja pults regulējot attiecīgā kanāla -100% limitu
 var ieregulēt servo neitrālo pozīciju
 */
 /// Uzstādījumi ///
 int limitUP = 2000; // maksimālais servo gājiens uz augšu/leju 1500-2100
 int limitDOWN = 1000; // maksimālais servo gājiens uz leju/augšu 800-1500
 int neitral = 500; // servo vidus pozīcija 400-600
 int UPspeed = 40; // servo kustības vidējais ātrums uz augšu 5-100
 int DOWNspeed = 40; // servo kustības vidējais ātrums uz leju 5-100

// Programma - šeit neko nemainiet ///
#include <Servo.h>
 Servo servo; // servo object
byte PWM_PIN = A0; // PWM input
 int pwm_value; // value from the PWM input
 int pwm_servo; // PWM out value
 int sweep; // sweep rigt
 void setup() {
servo.attach(9); // attaches the servo to D9
 pinMode(PWM_PIN, INPUT); // PIN mode
 sweep = (0); // sweep value to right
 //Serial.begin(115200);
 }
void loop() {
pwm_value = pulseIn(PWM_PIN, HIGH); // read PWM value
// detect neitral position
 if (pwm_value < 1200) {
 pwm_servo = pwm_value + neitral;
 delay (2);
 }
 // detect sweep to right
 if ((pwm_value > 1200) && (sweep == 0)) {
 pwm_servo = (pwm_servo + ((pwm_value / (pwm_servo / UPspeed ))));
 }
 // end sweep to right
 if (pwm_servo > limitUP) {
 sweep = (1);
 }
 // detect sweep to left
 if ((pwm_value > 1200) && (sweep == 1)) {
 pwm_servo = (pwm_servo - ((pwm_value / (pwm_servo / DOWNspeed ))));
 }
 // end sweep to left
 if (pwm_servo < limitDOWN) {
 sweep = (0);
 }
 servo.write(pwm_servo); // drive servo
 // Serial.println(pwm_servo);
}