Identifique un componente dentro de un automóvil RC. Doble puente h?

2

Compré un auto RC de $ 10, y estoy tratando de reemplazar el control remoto con un arduino. He descubierto cuáles son la mayoría de los componentes de la placa de circuitos, pero uno de ellos me ha desconcertado. En el centro de la placa es lo que pensé que era un controlador de motor Dual H Bridge. Aparentemente, está tomando algún tipo de señal de entrada de CA de la antena RC, y no puedo hacer nada con ella. ¿Qué es esta cosa? ¿Tengo alguna esperanza de secuestrar sus entradas con un arduino?

Miconocimientosobreelectrónicaesautodidactaybastanteirregular.Escompletamenteposiblequehayaidentificadoerróneamentealgobastantebásico.Tratarédedarsuficientesdetallesparaquelaspersonasmásexperimentadaspuedandetectarmiserrores.Estoysegurodequelamayoríadeestosdetallessonirrelevantesparamipregunta.

FunciónbásicadeRCCarLasruedastraserassonaccionadasporunsolomotor.Lasruedasdelanterastienenunmotorparaladirección.Ambosmotorestienenavance,retrocesoyapagado,sincontroldevelocidad.EstoesconsistenteconuncontroladordemotorDualHBridge.

DescripcióndelaplacadecircuitoLaenergíadelabateríaentraenlapartesuperiordelaimagen,seejecutaatravésdeuninterruptorqueseencuentradebajodelaplacadecircuitosyfluyedesdeallíalosdiversoscircuitos.HaytresbateríasAA,quesuministranaproximadamente4.5V.Elterminalnegativodelabateríaestáenlaparteinferiordeltablero.Laantenaseconectaenlaesquinasuperiorizquierda.Inmediatamentepasaatravésdeuninductoryunabobinadealambreenvueltaalrededordeunasustanciacerosasólida(¿otroinductor?).Ambosdeestosseadjuntandebajodeltablero.Estánmarcadosenlaimagencomo"Conectado por inductor". Desde allí, la señal de la antena pasa por una maraña de circuitos, que he etiquetado como "señal mágica de la antena". No puedo identificar los componentes en esta área. Hay algunos tipos, ya sea cajas negras con números escritos o cajas marrones en blanco. Sé casi nada acerca de las señales de CA.

La zona mágica de la antena se conecta a una caja negra con 8 pines por lado. Creo que esta caja es una especie de controlador de motor Dual H Bridge. 8 de los 16 pines se pueden rastrear a motores, potencia o tierra. Los otros 8 se conectan a la zona de la antena.

Señales de entrada al controlador negro

Utilicé mi multímetro , y medí los voltajes de CC y CA entre los pines de la antena y la tierra, y luego Medido de nuevo con el motor de tracción en las ruedas traseras encendido. Todos los pines de la antena tienen un voltaje de CC entre 1.3 y 1.4 voltios. Para 7 de los 8 pines, esta tensión no cambia cuando el motor de accionamiento está activado; para el quinto pin de la izquierda cae a 1.1V. El tercer y cuarto pin de la izquierda tienen un voltaje de CA de 1 V cuando el motor de accionamiento está apagado. Ese voltaje salta a 1.5V cuando el motor de accionamiento está encendido. Supongo que esta es la señal de entrada.

No estoy seguro de qué significa exactamente una lectura de voltaje de CA. No tengo un osciloscopio para medir su frecuencia o cambio de fase. El paquete del auto dijo que usa una señal de 24 MHz. ¿Significa esto que la tensión de CA que mi multímetro está leyendo a 24 MHz? No pensé que mi multímetro incluso leería una señal con una frecuencia tan alta.

Escribiendo en chip El controlador tiene DK2991 BG0603 escrito en él. Googlear esto no resultó nada útil.

Resumen Tengo un pequeño chip que creo que es un controlador de motor de Puente H doble que funciona con señales de entrada de CA. ¿Cuáles son estas señales de entrada? ¿Es posible usar un arduino para replicarlos?

No tengo equipo de lujo a la mano, pero estoy más que dispuesto a realizar más pruebas.

    
pregunta BobTheAverage

4 respuestas

3

Hola, tuve la oportunidad de descubrir este chip hoy y esto es lo que obtuve. Supervisé la señal que entraba en el chip desde el lado rf y recreé las mismas señales en mi arduino y realmente funciona. ;). Aquí es donde puede conectar el arduino a la placa rc.

Y aquí está el boceto arduino:

void setup() {
  pinMode(8, OUTPUT); // Output to r6 on rc car
}


void loop() {
  rcLeft(5);
  rcRight(5);
  rcFWD(20);      //Send forward signal 20 times;
  rcFWDLeft(20);  // forward left 20 times and so on.
  rcFWDRight(20);
  rcREV(20);
  rcREVLeft(20);
  rcREVRight(20);
  rcLeft(2);
  rcRight(2);
  rcLeft(2);
  rcRight(2);
  delay(500);
}

void rcRight (int loops) {
  for (int f = 0; f < loops; f++) { //left
    for (int i = 0; i < 58; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcLeft (int loops) {
  for (int f = 0; f < loops; f++) { //left
    for (int i = 0; i < 64; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcFWD (int loops) {
  for (int f = 0; f < loops; f++) { //forward
    for (int i = 0; i < 10; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcREV (int loops) {
  for (int f = 0; f < loops; f++) { //Reverse
    for (int i = 0; i < 40; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcFWDRight (int loops) {
  for (int f = 0; f < loops; f++) { //FR
    for (int i = 0; i < 28; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcFWDLeft (int loops) {
  for (int f = 0; f < loops; f++) { //FL
    for (int i = 0; i < 34; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcREVRight (int loops) {
  for (int f = 0; f < loops; f++) { //RR
    for (int i = 0; i < 52; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

void rcREVLeft (int loops) {
  for (int f = 0; f < loops; f++) { //RL
    for (int i = 0; i < 46; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(640);
      digitalWrite(8, LOW);
      delayMicroseconds(750);
    }
    for (int i = 0; i < 4; i++) {
      digitalWrite(8, HIGH);
      delayMicroseconds(2000);
      digitalWrite(8, LOW);
      delayMicroseconds(740);
    }
  }
}

Me divertí averiguando esto y espero que ayude a alguien. Diviértete con tu coche arduino.

    
respondido por el Brad Wedlock
4

El chip que está mirando no es solo un puente H, sino también un receptor de RF (24 Mhz), un decodificador de comando y un control de motor. El control de RF puede ser cualquier cosa, modulación de FM o AM, y si tiene un control remoto que funcione, debería poder capturar los comandos que está enviando. Desafortunadamente, se necesitará un "equipo elegante" para capturar y decodificar, y no se puede hacer con un "dedo mojado", como un multímetro.

Será más barato reemplazar la electrónica completa del juguete con un puente H conocido (o simplemente con un protector del controlador de motor estándar) si desea controlar el juguete con Arduino.

    
respondido por el Ale..chenski
1

Esta es la versión 2016 de la tabla RC de $ 10 de New Bright. No es amigable para los hackers como la versión 2015, que tiene discretos puentes en H. Vea mi truco aquí: enlace

    
respondido por el Eric O
1

Hay una manera más fácil. No es necesario aplicar ingeniería inversa al chip chino (tampoco pude encontrar ninguna información). Solo usa el Arduino para tomar el control remoto. El control remoto tiene cuatro botones pulsadores que son lógicas digitales de baja corriente para enviar los comandos al motor. Solo conecte las salidas digitales del Arduino a la salida del interruptor. El tablero es lo suficientemente pequeño como para colocarlo sobre el tablero en el automóvil. No es super eficiente, y no aprendes lo que están haciendo las entrañas de la electrónica, ¡pero súper fácil! Construyendo uno mañana con mi hijo ..

    
respondido por el Dr. D

Lea otras preguntas en las etiquetas