Paso 3: código
Aquí está el código por favor, respeto el tiempo que tomó para esto:
RC serie PulseIn leída por: Nick Poole
extendido por Jason Mclaughlin
2015
#include < Servo.h > / / para servo en ejemplo
Servo myservo; //servo entidad
int pos = 0; posición de servo
int ch1; Aquí es donde guardamos nuestro canal valores //servo 2
int ch2; motores
int ch3; servo
const int channel_a_enable = 6;
const int channel_a_input_1 = 4;
const int channel_a_input_2 = 7;
const int channel_b_enable = 5;
const int channel_b_input_3 = 3;
const int channel_b_input_4 = 2;
void setup() {}
pinMode (channel_a_enable, salida); Canal A habilitar
pinMode (channel_a_input_1, salida); Entrada de canal 1
pinMode (channel_a_input_2, salida); Entrada de canal 2
pinMode (channel_b_enable, salida); Canal B permiten
pinMode (channel_b_input_3, salida); Entrada del canal B 3
pinMode (channel_b_input_4, salida); Entrada del canal B 4
myservo.Attach(11);
pinMode (10, entrada); Configurar los pines de entrada como tal
pinMode (9, entrada);
pinMode (8, entrada);
Serial.Begin(9600); Vierta una taza de la serie
}
void loop() {}
CH1 = pulseIn (10, alto, 25000); Leer la anchura del pulso de
CH2 = pulseIn (9, alta, 25000); cada canal
CH3 = pulseIn (8, alta, 25000);
Serial.Print ("canal 1:"); Imprimir el valor de
Serial.println(CH1); cada canal
Serial.Print ("canal 2:");
Serial.println(CH2);
Serial.Print ("canal 3:");
Serial.println(CH3);
Si ((ch3 > = 1500) & & (ch3 < = 1600)) {/ / la posición del centro de control
Serial.println("between");
pos = 90; //set servo al centro
myservo.Write(POS); ajustar a la posición que es 90
}
else if ((ch3 > = 1100) & & (ch3 < = 1490)) {}
Serial.println("Right");
pos = 180;
myservo.Write(POS); va de 180 grados a 0 grados
espera 15ms para el servo a la posición
}
Else {}
Serial.println("left");
(pos = 0); va desde 0 grados a 180 grados
en pasos de 1 grado
myservo.Write(POS);
Dile el servo a la posición en la variable 'pos'
}
motor
Si ((ch1 > = 1000) & & (ch1 < = 1060)) {}
Serial.println ("motor apagado");
analogWrite (channel_a_enable, 125,5);
digitalWrite (channel_a_input_1, bajo);
digitalWrite (channel_a_input_2, bajo);
analogWrite (channel_b_enable, 125,5);
digitalWrite (channel_b_input_3, bajo);
digitalWrite (channel_b_input_4, bajo);
Delay(50);
}
else if ((ch1 > = 1060) & & (ch1 < = 1500)) {}
Serial.println ("motores medio");
analogWrite (channel_a_enable, 50);
digitalWrite (channel_a_input_1, HIGH);
digitalWrite (channel_a_input_2, bajo);
analogWrite (channel_b_enable, 50);
digitalWrite (channel_b_input_3, HIGH);
digitalWrite (channel_b_input_4, bajo);
Delay(50);
}
Else {}
Serial.println ("motores alto");
analogWrite (channel_a_enable, 255);
digitalWrite (channel_a_input_1, HIGH);
digitalWrite (channel_a_input_2, bajo);
analogWrite (channel_b_enable, 255);
digitalWrite (channel_b_input_3, HIGH);
digitalWrite (channel_b_input_4, bajo);
Delay(50);
}
Delay(100); Pongo esto aquí para hacer el terminal
ventana más feliz
}