Arduino: control remoto de un coche RC

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.

ingrese la descripción de la imagen aquí

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)

¿Cuál sería el propósito de esa modificación? ¿Qué tiene que ver el Arduino con eso?
Oli señala que esta es una imagen de más de 6 megapíxeles. La próxima vez, ¿podría reducirlo a un máximo de 630 píxeles de ancho? (Ese es el ancho que muestra en la mayoría de los navegadores)
El propósito sería algo así como controlar el auto rc con la pc o el teléfono. Lo siento por la imagen.
Lo reduje para ti. Ahora es un 96 % más pequeño . Sin embargo, no veo ninguna pérdida de información. Si cree que la imagen original puede revelar detalles adicionales, publique la más pequeña y enlace al original.
¿Tienes un esquema para el controlador? ¿Puedes rastrear el circuito que se conecta a las ollas mirando el tablero? Estoy tratando de tener una idea de a qué tipo de circuito están conectados estos potenciómetros, para que podamos averiguar cómo controlarlo desde las salidas eléctricas.

Respuestas (4)

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 analogWritefunció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.

ingrese la descripción de la imagen aquí

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 V I norte verías la salida PWM de Arduino. Sonda en V O tu T 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:

ingrese la descripción de la imagen aquí

La línea superior es su cable rojo. V I norte es la salida del Arduino, tienes dos de esos. V O tu T porque uno de esos va al cable negro, el otro sale al amarillo.

"Es posible que tengas que amplificar la señal". Justo a eso se refiere mi pregunta. ¿Cómo puedo medir el alcance de los potenciómetros? no tengo multimetro Reemplacé el potenciómetro del control por otro que tiene la leyenda "B10k". Hace que el auto gire de derecha a izquierda en el último (o primer) dos por ciento del rango de mi potenciómetro.
La resistencia del potenciómetro no nos va a ayudar. Si hay 9 V a través de él, la posición intermedia dará 4,5 V, ya sea el potenciómetro actual de 10 k o uno de 100 k. Sin un multímetro puede ser difícil, pero vale la pena intentarlo: ¿puedes rastrear el voltaje de tu batería a los potenciómetros? Si tenemos suerte, el potenciómetro funciona directamente con el voltaje de la batería. Si no, tendrás que pedir prestado un multímetro en alguna parte, o mejor comprar uno. He visto precios tan bajos como 8 euros por un modelo básico, siempre vendrá bien.
Compré uno ;). Pongo los valores medidos en la pregunta.
¿Qué significan las flechas con Vin y Vout (perdón por esta pregunta de novato)? ¿Tengo que conectarlo al pin rojo o amarillo? Tal vez me equivoque, pero parece que el negro está molido y el amarillo es Vcc aquí.
@Toast: actualicé mi respuesta. ¿Puede confirmar que los voltajes negativos en los cables negro y amarillo se miden con la sonda negra (negativa) de su multímetro y la sonda roja (positiva) a su cable rojo?
Estoy un poco confundido. Espero que esta imagen pueda aclarar: enlace
@Toast - ¡Ahora también estoy confundido! :-) ¿Supongo que cuando insertas el conector amarillo está en la parte superior? Entonces estás midiendo entre amarillo y negro, mientras que en tu actualización mediste amarillo contra rojo y negro contra rojo.
Amarillo contra rojo y negro contra rojo se miden cuando el potenciómetro está conectado. Para saber que pines son Vcc y tierra medí el voltaje con el potenciómetro no conectado, como se muestra en la imagen. Eso es lo que quise explicar en la pregunta actualizada también.

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
}
No parece que la respuesta esté terminada. ¿Envío accidental?
@drxzcl - No lo sé. ¿Qué falta?
Pensé que el autor de la pregunta quería controlar el automóvil a través del arduino, no registrar los controles. ¿O estoy malinterpretando tu respuesta?
@drxzcl: en el comentario, dice: "El propósito sería algo así como controlar el auto rc con la computadora o el teléfono". Así que le digo cómo llevar las lecturas del potenciómetro a su PC. El resto está fuera del alcance de este sitio. Lo escucharé si quiere algo más.
Para controlar el automóvil, ¿no le gustaría "escribir los potenciómetros" (suponiendo que esa frase tenga sentido) del control remoto en lugar de leerlos?
@drxzcl - " desconecte los potenciómetros y colóquelos en dos pines Arduino para que Arduino pueda controlar el control remoto". Para eso da una solución mi respuesta. Nuevamente, si quiere decir algo más, simplemente tiene que decirlo, pero en mi opinión, eso es lo que está preguntando. No puedo leerlo de otra manera.
Quiero hacer algo como presionar un botón en mi PC que haga que el arduino envíe una señal al controlador para hacer que el automóvil gire hacia la izquierda. Entonces, el código arduino tiene una variable como de 0 a 255, mientras que 0 significa izquierda, 128 es el centro y 255 es la derecha y hace una escritura analógica para configurar el pin. Y mi pregunta se refería a cuál debe ser el circuito entre el pin arduino y el pin del control remoto.
(Pido disculpas por mi mala explicación de la pregunta, no soy un hablante nativo de inglés)
@Toast: está bien, yo tampoco, pero creo que deberías reformular la pregunta. De hecho, dices "desconecta los potenciómetros y colócalos en dos pines Arduino", lo que aparentemente no quieres en absoluto. Editaré mi respuesta.

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.