Tengo un control remoto Carson Reflex Wheel para mi auto RC. Tiene dos potenciómetros, uno para acelerar y otro para dirección.
Mi objetivo es controlar el RC Car desde mi PC enviando comandos a través de la conexión en serie al arduino.
Me gustaría desconectar los potenciómetros y colocar los pines (en el cuadro blanco -> ver imagen) en dos pines de Arduino para que Arduino pueda controlar el control remoto. Esto excluiría los potenciómetros del circuito y haría que el arduino los reemplazara.
El control remoto funciona a 12V.
Los dos potenciómetros están conectados con los cables negro rojo amarillo.
¿Qué circuito tengo que usar entre los pines (en el cuadro blanco -> ver imagen) del control remoto y el Arduino?
ACTUALIZACIÓN: Recientemente obtuve un multímetro. El voltaje entre los pines amarillo y negro es de 5V (constante). Entre los otros pines no hay voltaje a menos que el potenciómetro esté conectado. En este caso el voltaje entre el negro y el rojo varía de -4,9 (izquierda), -2,9 (centro) a -0,4 (derecha). Entre rojo y amarillo es 0 (izquierda), -2 (centro) y -4,4 (derecha). (según la posición del volante)
Si desea controlar el automóvil desde la PC a través de Arduino, deberá configurar el puerto serie para recibir los comandos y generar una señal PWM para emular los potenciómetros.
Realmente no soy un hombre de Arduino, pero su código debería verse un poco así. Recibe +y -comanda desde el PC y aumenta o disminuye la posición del potenciómetro virtual. Tenga en cuenta que esto es solo un marco; no hay pruebas de posición mínima o máxima, por ejemplo.
const int analogOutPin = 9; // Analog output pin that the LED is attached to
int outputValue = 0; // value output to the PWM (analog out)
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}
void loop() {
if ( Serial.available()) {
char ch = Serial.read();
switch(ch) {
case '+':
outputValue+;
break;
case '-':
outputValue-;
break;
}
}
// change the analog out value:
analogWrite(analogOutPin, outputValue);
}
Filtre la señal de salida con un filtro RC. Esto le dará un voltaje entre 0 V y 5 V. Mida el rango de voltaje de los potenciómetros e informe. Es posible que tengas que amplificar la señal.
editar después de la información actualizada en la pregunta
¡Bien! Entonces, los potenciómetros le brindan un rango de salida de 0 V a 5 V, que es exactamente lo que hará la salida de Arduino también. Entonces puede usar la analogWrite
función como en el código de ejemplo anterior. Tenga en cuenta que los chicos de Arduino lo llaman "analógico", pero el AVR no tiene una salida analógica, por lo que probablemente sea solo PWM. El Arduino no tiene un filtro RC para convertirlo en CC, por lo que tendrá que agregar la resistencia y el condensador usted mismo.
Un valor de 100 kΩ para la resistencia y 1 µF para el capacitor probablemente estén bien.
edite después de sus medidas y comente
Las flechas en el esquema del filtro RC indican un voltaje. La punta de flecha apunta a la señal cuyo valor desea medir, el extremo posterior de la flecha a la referencia contra la que está midiendo, que generalmente es tierra. Entonces, si conectara el pin de tierra de la sonda de un alcance a la conexión inferior, y la punta de la sonda a
verías la salida PWM de Arduino. Sonda en
y el PWM se promediará a un voltaje de CC con alguna ondulación. Eso es lo que queremos si queremos emular a los potenciómetros.
Si entiendo correctamente, los cables negro y amarillo llevan los valores de los potenciómetros y se refieren al cable rojo, que es de +5 V. (Esto es confuso; ¡generalmente se acepta que el negro está conectado a tierra!). Puede buscar tierra en la PCB, pero también podemos usar la referencia de +5 V, solo tendremos que voltear el filtro:
La línea superior es su cable rojo. es la salida del Arduino, tienes dos de esos. porque uno de esos va al cable negro, el otro sale al amarillo.
editar
Esta respuesta se basa en la frase de la pregunta "desconecte los potenciómetros y colóquelos en dos pines Arduino". Aparentemente, OP quiere que sea al revés. Lea mi otra respuesta para eso.
(fin de la edición)
Si desea controlar el automóvil desde su PC, el circuito de Arduino es simple. Conecte los dos potenciómetros a dos de las entradas analógicas de Arduino, donde conecta los extremos de los potenciómetros a tierra y +5 V resp.
A continuación, utilice la conexión USB como puerto COM virtual para enviar las lecturas de ADC a la PC.
void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
}
void loop()
{
Serial.println("Data:"); // sync
Serial.println(analogRead(0), DEC); // read ADC channel 0 and send to PC as decimal
Serial.println(analogRead(1), DEC); // same for channel 1
delay(100); // wait 100 ms before sending next readings
}
Estás leyendo los valores analógicos que te dan los potenciómetros, así que quieres que tu Arduino los lea y luego puedes escribir el código para hacer lo que quieras con los datos. Asegúrese de conectar los pines analógicos de Arduino directamente a los potenciómetros, y no a otro punto de la placa de circuito de su controlador (si desea los resultados sin procesar, que creo que es lo que está buscando).
El código de Steven es correcto.
La mayoría de los conjuntos RC proporcionales, a excepción de los conjuntos PCM (que en HF/VHF tendían a ser más caros; son comunes en 2,4 GHz, pero esa no es una antena de 2,4 GHz) utilizan una cadena de pulsos modulados por ancho de pulso para señalar las posiciones del canal.
Si puede encontrar esta señal, tal vez entre el codificador IC y el circuito transmisor real, sería ideal inyectar una salida PWM desde el Arduino.
stevenvh
stevenvh
Tostada
stevenvh
drxzcl