Paso 3: Lectura de Servo! Con corte de señal!
Utilizando pulseIn(), puede cronometrar cuánto tiempo el pulso que sale de su receptor. Usando la salida de las señales de Servo de Arduino, pude calibrar las lecturas.
Aquí está el código para leer una señal. Nota, 520 y 2370 son valores de microsegundo que se utilizan para calibrar las lecturas. Utilicé la salida de Servo biblioteca Arduino calibrarla, y funcionó bien. PWMpin es una entrada del receptor RC. 20000 es un microsegundo que es utilizado como una característica de tiempo de espera. Si se alcanza el límite de tiempo de espera, sabemos que no estamos recibiendo señales desde el transmisor, y luego podemos usarlo para cortar los motores.
RCinput = pulseIn (PWMpin, alta, 20000);
ServoVal = mapa (RCinput, 520, 2370, 0, 180);
después de eso, hacemos un análisis de los datos! Tenga en cuenta que ThrottleServo es una salida que entrada de salida está conectado a un pin del Arduino. El PIN 13 es una salida que se utiliza para indicar un error.
if(RCinput== 0) {/ / señal agotado!
digitalWrite (13, HIGH); ALERTA!
ThrottleServo.write(97); Ir a la posición neutral del acelerador
}
}
Else {}
digitalWrite (13, bajo);
ThrottleServo.write(ServoVal); Repetir los datos ESC del camión
Serial.Print ("PulseMicros"); Esta parte se utiliza para depurar los valores de calibración
Serial.Print(RCinput);
Serial.Print ("ServoRead");
Serial.println(ServoVal);
}