Paso 8: Montaje de circuito móvil
Conectar los 3.3V pin del arduino en el pin VDD del XBee, el pin RX del arduino del pin VIN de lo XBee y un conector de tierra de arduino con el conector de tierra de lo XBEE. Encontramos que necesitábamos alimentar los dos motores por separado desde el arduino ya que arduino no podría fuente corriente suficiente para alimentar los arduinos, así como el resto de componentes. Conecte los cables de alimentación de los servos entre sí y que el cable de la batería AAA. Conecte los cables de tierra de los servos entre sí y al cable de tierra de la batería AAA. La soldadura de los cables de tierra de los LEDs, el blacklights y los servos todos juntos, dejando un extremo libre enchufarlo a un conector de tierra. Conecte todos los componentes para las clavijas necesarias--utilizamos los pines 12 y 11 para blacklights, 10 y 9 para servos y 8, 7 y 6 LEDs.
Finalmente, la energía el arduino sí mismo. Hemos utilizado dos paquetes de baterías de dos AAs cada una conectadas en serie para darnos un 6V entrada; Usted puede también, como comentamos anteriormente, la energía arduinos de 4.5V; Utilizamos lo que teníamos disponible. Conecte el cable de alimentación al pin VIN y el cable de tierra a un pin GND. Por cierto, hemos encontrado que lleva en los paquetes de baterías de las linternas de soldadura funcionó bien, utilizamos uno de estos para alimentar los servos.
Ahora todo lo que necesitas hacer es programar el arduino. Utilizamos el siguiente código en el móvil arduino para el control de los diversos componentes.
#include < Servo.h >
int serial_val = 0;
Boolean motors_on = false;
Contadores para el LED intermitente
int x1 = 0;
int x2 = 0;
int x3 = 0;
Pernos de muestra para arduino móvil montado
Static int ledPin1 = 6;
Static int ledPin2 = 7;
Static int ledPin3 = 8;
Static int motorPin1 = 9;
Static int motorPin2 = 10;
Static int flashlightPin1 = 11;
Static int flashlightPin2 = 12;
Información de servo
Motor1 servo;
Motor2 servo;
int pos1 = 0; posición del motor1
int pos2 = 0; posición del motor2
void setup() {}
Código de configuración se ejecuta una vez al principio
Serial.Begin(9600); Inicia al monitor serial
Dile el arduino que los pernos se utilizarán para la salida; no pins se utilizará para la entrada en el móvil
pinMode (motorPin1, salida);
pinMode (motorPin2, salida);
pinMode (flashlightPin1, salida);
pinMode (flashlightPin2, salida);
pinMode (ledPin1, salida);
pinMode (ledPin2, salida);
pinMode (ledPin3, salida);
El PIN 13 es el integrado LED, usado generalmente para significar que el programa escribió correctamente
pinMode (13, salida);
digitalWrite (13, HIGH);
}
void loop() {}
Código principal, que corre varias veces
leer valor de (radio), restan 48 para una solución rápida de ASCII a int
if(serial.Available())
serial_val = Serial.read ()-48;
Verifique que el valor leído es razonable
Serial.println(serial_val);
if(serial_val > 0)
{
digitalWrite (13, HIGH);
}
otra cosa
{
digitalWrite (13, bajo);
}
Contadores de incremento
x1 = x1 + 1;
x2 = x2 + 1;
X3 = x3 + 1;
Comprobar los valores de los contadores; primos al azar se seleccionaron como atajos para los ciclos no preparar
Si (x1 > 20483) {}
x1 = 0;
} else {}
Si (x1 < 1000) {}
digitalWrite (ledPin1, HIGH); Enciende durante 1 segundo cada segundos 20,483
} else {}
digitalWrite (ledPin1, LOW); Desactivar el resto del tiempo
}
}
Si (x2 > 29303) {}
x2 = 0;
} else {}
Si (x2 < 1200) {}
digitalWrite (ledPin2, HIGH); Encender durante 1,2 segundos cada 29,303 segundos
} else {}
digitalWrite (ledPin2, LOW); Desactivar el resto del tiempo
}
}
Si (x3 > 18397) {}
X3 = 0;
} else {}
Si (x3 < 900) {}
digitalWrite (ledPin3, HIGH); Encienden de 0,9 segundos cada 18,397 segundos
} else {}
digitalWrite (ledPin3, LOW); Desactivar el resto del tiempo
}
}
Demora un poco para que el programa puede responder
Delay(1);
para activar el blacklights encendido / apagado:
Si (serial_val == 1 || serial_val == 3)
{
digitalWrite (flashlightPin1, HIGH);
digitalWrite (flashlightPin2, HIGH);
}
otra cosa
{
digitalWrite (flashlightPin1, bajo);
digitalWrite (flashlightPin2, bajo);
}
Apagar los motores
Este código realmente convierte encendido y apagado para chorros breves de montaje y desmontaje de los motores
porque de lo contrario corrían a una velocidad demasiado alta y las piezas de golpear unos a otros
Si (serial_val == 2 || serial_val == 3)
{
if(motors_on)
{
motors_on = false;
motor1.Detach();
motor2.Detach();
}
otra cosa
{
motors_on = true;
motor1.Attach(motorPin1); Adjuntar motor1 al pin correspondiente
motor2.Attach(motorPin2); Adjuntar motor2 al pin correspondiente
motor1.Write(0);
motor2.Write(0);
Delay(300);
}
}
otra cosa
{
if(motors_on)
{
motors_on = false;
motor1.Detach();
motor2.Detach();
}
}
}