Coche del RC con dos Arduinos controlado por ordenador (4 / 8 paso)

Paso 4: Recibir Arduino: el código.

En la parte superior de este esbozo, también incluyen la Biblioteca Virtual del alambre:

 #include <VirtualWire.h> //Include required library 

También vamos a definir algunas constantes que vamos a utilizar para controlar nuestra coche:

 #define FORWARD '8' #define BACKWARD '5' #define STOP '0' #define LEFT '4' #define RIGHT '6' #define STRAIGHT '/' #define TIMEOUT 500UL 

Luego viene las variables para los pernos de motor. El valor de estas variables será cualquier pin del cable está conectado en el Arduino. Si usted había cableado suyo diferentemente Asegúrese de que actualizar su código aquí:

 int motor1Pin1 = 5; // pin 2 on L293D is connected to this pin on the Arduino int motor1Pin2 = 6; // pin 7 on L293D " int enablePin1 = 9; // pin 1 on L293D " int motor2Pin1 = 3; // pin 10 on L293D "int motor2Pin2 = 4; // pin 15 on L293D " int enablePin2 = 10; // pin 9 on L293D " 

Hay dos variables para controlar las velocidades del motor:

 int motor1Speed = 255; //max speed 255 int motor2Speed = 255; 

La última variable es para el contador de tiempo de espera:

 unsigned long counter; 

La función de configuración establecerá los pernos según se requiera. También fijó de arriba alambre Virtual:

 void setup() { //Set pin modes pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); pinMode(enablePin1, OUTPUT); pinMode(enablePin2, OUTPUT); //Set enablePin to the motors speed analogWrite(enablePin1, motor1Speed); analogWrite(enablePin2, motor2Speed); //Begin with motors off digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); Serial.begin(9600); //Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for RX Link Module vw_setup(2000); // Bits per sec vw_set_rx_pin(13); // We will be receiving on pin 23 (Mega) ie the RX pin from the module connects to this pin. vw_rx_start(); // Start the receiver } 

La función de bucle contendrá el siguiente código:

 void loop() { //variables for Virtual Wire uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; //If we got a message from the serial port if (Serial.available()) { //Reset the timeout counter counter = millis(); //Drive the requested motor drive(Serial.read()); //Otherwise check for a message from the reciever } else if (vw_get_message(buf, &buflen)) // check to see if anything has been received { //Reset timeout counter counter = millis(); int i; Serial.println("recieved"); //Debug message // Message with a good checksum received. //For each command recieved for (i = 0; i < buflen; i++) { drive(buf[i]); //Drive requested motors } //If the counter is greater than the timeout (No signal recieved) then stop the car. } else if(millis()-counter >= TIMEOUT) { drive(STOP); drive(STRAIGHT); } } 

Por último debemos definir la función Drive():

 void drive(int dir) { //Check which direction is requested (same for below) if (dir == FORWARD) { Serial.println("Forward");//Used for debugging //Set motor accordingly (same for below) digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); } else if (dir == BACKWARD) { Serial.println("Backward"); digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); } else if (dir == STOP) { Serial.println("Stop"); digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); } else if(dir == STRAIGHT) { Serial.println("Straight"); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); }else if (dir == LEFT) { Serial.println("Left"); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); }else if (dir == RIGHT) { Serial.println("Right"); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); } } 

Puede descargar el bosquejo completo desde aquí: https://dl.dropboxusercontent.com/u/63127140/RC_CA...

Artículos Relacionados

Arduino controlado por dimmer luz

Arduino controlado por dimmer luz

ADVERTENCIA: ¿ Algunas personas tratan de construir esto con un optoacoplador con coz zerocrossing derecho 'es mejor'? Algunos se dicen incluso en tiendas de electrónica es mejor utilizar tal un optoacoplador. MAL. Esto sólo funcionará con un optoaco
Conversión de Monitor VGA divisor en controlado por ordenador Monitor Switcher

Conversión de Monitor VGA divisor en controlado por ordenador Monitor Switcher

este instructable explica cómo un barata (20 euros) monitor VGA divisor que se utiliza para conectar una PC a monitor dos se puede convertir en un conmutador de monitor controlado por ordenador. El dispositivo final es controlado mediante el puerto p
¿Instalación de Bluetooth multifunción coche Smart para Arduino controlado por teléfono móvil

¿Instalación de Bluetooth multifunción coche Smart para Arduino controlado por teléfono móvil

por lo que usted quiere hacer un coche smart? ¿No sabes dónde empezar? Por qué aprender con equipo de ICStation.El Arduino Bluetooth coche Smart tiene la función de seguimiento, evitación del obstáculo, control remoto por infrarrojos y Bluetooth remo
Cómo controlar un bosquejo del proceso con dos entradas de Arduino

Cómo controlar un bosquejo del proceso con dos entradas de Arduino

Este tutorial le mostrará cómo construir un circuito básico de Arduino que puede controlar una divertida bola color sketch en el proceso.Se necesita:1 x placa Arduino (estoy usando un Uno)1 x Breadboard1 x foto-resistencia1 x 10 k Ohm Resistor (marró
CARduino - vehículo accionado Arduino, controlado por LabVIEW

CARduino - vehículo accionado Arduino, controlado por LabVIEW

El CARduino es un vehículo operado por control remoto que es controlado por un regulador conectado a un equipo que ejecute LabVIEW. El vehículo es accionado por el Arduino y se puede ampliar a través de la adición de sensores u otros dispositivos. Us
Cañón neumático accionado por Arduino controlado por Android

Cañón neumático accionado por Arduino controlado por Android

cada verano, Qualcomm celebra una batalla de la competencia de las escuelas, que ofrece a los empleados la oportunidad de representar a su Universidad de origen. Este año, las entradas debían ser artilugios caseros, y que fueron juzgados según lo gua
Hablando con una máquina expendedora de MDB con dos Arduinos

Hablando con una máquina expendedora de MDB con dos Arduinos

máquina expendedora de piezas todo habla uno al otro en un bus de ordenador conocido como MDB.  He escrito algo de código para ayudarle a conectar y escuchar su conversación en tiempo real.  Se necesita acceso físico a la máquina expendedora.¿Por qué
StrobeDuino - lámpara del estroboscópico/RGB controlado por ordenador

StrobeDuino - lámpara del estroboscópico/RGB controlado por ordenador

después de experimentar con Arduino y procesamiento de comunicación serial que quería hacer algo fresco. Tuve algunos LED RGB ahí así que pensé en hacer algo con ellos. Terminé con una lámpara del estroboscópico/controlada por un esquema de procesami
Tanque Oruga con vídeo, controlado por android (inventor de la aplicación) mediante bluetooth

Tanque Oruga con vídeo, controlado por android (inventor de la aplicación) mediante bluetooth

Bueno, el objetivo de este proyecto DIY es el poder proceso implementar un vehículo con orugas.El cual cuente con:Transmisión de vídeoLas instrucciones de desplazamiento mar por comandos a través de bluetoothEl "control" de este vehículo, o sea
Luces de Navidad Musical controlado por ordenador

Luces de Navidad Musical controlado por ordenador

en este Instructable, voy a enseñar todos los pasos básicos de cómo construir tu propio ordenador controlado musical luces de Navidad. Esta configuración es muy simple y común. Dentro de unas horas, también puede crear su propia exhibición ligera par
¿Interruptor controlado por ordenador

¿Interruptor controlado por ordenador

desea cambiar un tomacorriente entre encendido o apagado con el ordenador? ¿Por qué hacerlo con un mando a distancia? Suena nice - sé. Pero lo mejor es que puede hacerlo todo, y esto le dirá cómo..."¿Por qué querría encender una toma de corriente o i
Semáforo controlado por ordenador

Semáforo controlado por ordenador

Hice este semáforo controlados de ordenador para mi trabajo mostrar el estado del software que construir, pero ahorraré los detalles. También fue mi primer proyecto inicio con un controlador PIC.El semáforo es usar un viejo semáforo de Ikea destinado
Antena de TV de OTA controlado por ordenador.

Antena de TV de OTA controlado por ordenador.

Configuración para utilizar un motor paso a paso para controlar la dirección de una antena DTVPuerto paralelo complemento para establecer la orientación de una antena. podría ser utilizado para cualquier antena, pero lo hice para la antena de hdtv ()
Con Bluetooth Robot controlado por Arduino mediante aplicación Android

Con Bluetooth Robot controlado por Arduino mediante aplicación Android

Después de intentar robot seguimiento remoto por mando a distancia IR. He proceder para controlar la misma plataforma del robot por BluetoothControlador Arduino a través de la aplicación para Android. Este método es más confiable, más distancia, mejo