Xenio-bot "Bil kontrolleras av Bluetooth" (5 / 6 steg)
Steg 5: Gör din egen skriptkod i Arduino eller använda våra egna script-kod!
Det sista vi har gjort är en app för android-enheter är huvudsyftet med vår app Bluetooth kommunikationen mellan den smarta telefonen och modulen.
Vårt arduino koden är:
#include < SoftwareSerial.h >
Inicializacion de los pines
int bluetoothTx = 1;
int bluetoothRx = 0;
Variablerna que corresponden en cada stifts del Arduino, se omiten el pin 0 y pin 1 ya que estos se utilizan en la comunicación seriell que se establece entre el Arduino y el módulo Bluetooth
int pin2 = 2;
int pin3 = 3;
int pin4 = 4;
int pin5 = 5;
int pin6 = 6;
int pin7 = 7.
int pin8 = 8;
int pin9 = 9.
int pin10 = 10;
int pin11 = 11;
int pin12 = 12;
int pin13 = 13.
Varables de kontroll utilizadas para controlar la velocidad de los fenor DC
int velocidad = 255;
int velocidad2 = 255;
SoftwareSerial bluetooth (bluetoothTx, bluetoothRx);
Declaracion de los metodos que vamos en utilizar
void adelante();
void reversa();
void giro_derecha();
void giro_izquierda();
void pararMotorTraccion();
void pararMotorDireccion();
void encenderLuz();
void apagarLuz();
void encenderComponente();
void apagarComponente();
void encenderComponente2();
void apagarComponente2();
void encenderComponente3();
void apagarComponente3();
void modificarVelocidad (int vel);
void setup()
{
Iniciamos la comunicacion seriell con el USB-y declaramos como salidas los pines que vamos en utilizar
Serial.BEGIN(9600);
pinMode (pin2, produktionen);
pinMode (pin3, produktionen);
pinMode (pin4, produktionen);
pinMode (pin5, produktionen);
pinMode (pin6, produktionen);
pinMode (pin7, produktionen);
pinMode (pin8, produktionen);
pinMode (pin9, produktionen);
pinMode (pin10, produktionen);
pinMode (pin11, produktionen);
pinMode (pin12, produktionen);
pinMode (pin13, produktionen);
Configuramos la conexion seriell del bluetooth con el android
Bluetooth.BEGIN(115200);
Bluetooth.Print("$$$");
Delay(100);
Bluetooth.println("U,9600,N");
Bluetooth.BEGIN(9600);
}
void loop()
{
Leemos del Bluetooth y escribimos en el följetong
IF(Bluetooth.available())
{
röding fick = bluetooth.read();
char toSend = (char)bluetooth.read();
Serial.Print(toSend);
}
SI el android le manda algo al arduino este metodo toma el caracter que mando
y en basera en eso ejecuta el metodo deseado
IF(Serial.available())
{
char toSend = (char)Serial.read();
Bluetooth.Print(toSend);
Switch(toSend)
{
SI recibe una C entra en el modo de kontroll por medio de la pantalla Cardux
fallet "C":
Lee el siguiente pin y en bas al numero o letra enciende el pin correspondiente
IF(Serial.available())
{
char toSend2 = (char)Serial.read();
Bluetooth.Print(toSend2);
Switch(toSend2) {
Botón de adelante presionado
fallet "W": adelante (pin5, pin6); bryta;
Botón de reversa presionado
fallet ": reversa (pin5, pin6); bryta;
Botón de izquierda presionado
ärende 'A': giro_izquierda (PIN2-, pin3); bryta;
Botón de Izquierda presionado
fallet skulle ': giro_derecha (PIN2-, pin3); bryta;
Este medoto se ejecuta al dejar de presionar el boton de adelante o reversa
fallet "Z": pararMotor (pin5, pin6); bryta;
Este medoto se ejecuta al dejar de presionar el boton de Izquierda o izquierda
ärende 'X': pararMotor (PIN2-, pin3); bryta;
Cuando el växla de Luces esta sv estado encendido
fallet "I": encenderLuz(pin4); bryta;
Cuando el växla de Luces esta sv estado apagado
fallet ' o ': apagarLuz(pin4); bryta;
Cuando el switch de Dator1 esta sv estado encendido
"H" i mål: encenderComponente(pin8); bryta;
Cuando el switch de Dator1 esta sv estado apagado
ärende 'B': apagarComponente(pin8); bryta;
Cuando el switch de KOMP2 esta sv estado encendido
"J" i mål: encenderComponente(pin9); bryta;
Cuando el switch de KOMP2 esta sv estado apagado
fallet 'N': apagarComponente(pin9); bryta;
Cuando el switch de comp3 esta sv estado encendido
"K" i mål: encenderComponente(pin10); bryta;
Cuando el switch de comp3 esta sv estado apagado
fallet är ": apagarComponente(pin10); bryta;
SI la aplicación se pausa por ejemplo al salir de la aplicación o al entrar una llamada apaga los fenor que están conectados en los Pines 5 y 6, y en los Pines 2 y 3
para evitar que estos sigan girando y se tenga FN: s kontroll del proyecto, si quieres apagar algo más solo agrega la línea de código que quieres que se ejecute
fallet "x":
pararMotor (pin5, pin6);
pararMotor (PIN2-, pin3);
bryta;
Metodo de kontroll de velocidad del motor de tracción en el carrito
fallet "V":
IF(Serial.available())
{
char toSend3 = (char)Serial.read();
Bluetooth.Print(toSend3);
Switch(toSend3) {
en basera al valor que recibe es la velocidad que el carrito camina 64 es la más baja y 255 la más alta
ärende '0': modificarVelocidad(64); bryta;
ärende '1': modificarVelocidad(96); bryta;
ärende '2': modificarVelocidad(128); bryta;
ärende '3': modificarVelocidad(172); bryta;
ärende '4': modificarVelocidad(255); bryta;
}
}
bryta;
} //Fin del switch toSend2
} //Fin de om
bryta;
}
void adelante (int Pin1, int Pin2) {
analogWrite(Pin1,LOW);
analogWrite(Pin2,velocidad);
digitalWrite(pin13,HIGH);
}
void reversa (int Pin1, int Pin2) {
analogWrite(Pin1,velocidad);
analogWrite(Pin2,LOW);
digitalWrite(pin13,HIGH);
}
void pararMotor (int Pin1, int Pin2) {
digitalWrite(Pin1,LOW);
digitalWrite(Pin2,LOW);
digitalWrite(pin13,LOW);
}
void modificarVelocidad (int vel) {
Velocidad = vel;
}
void modificarVelocidad2 (int vel) {
velocidad2 = vel;
}
void giro_izquierda (int Pin1, int Pin2) {
digitalWrite(Pin2,LOW);
digitalWrite(Pin1,velocidad2);
digitalWrite(pin13,HIGH);
}
void giro_derecha (int Pin1, int Pin2) {
digitalWrite(Pin2,velocidad2);
digitalWrite(Pin1,LOW);
digitalWrite(pin13,HIGH);
}
void encenderLuz (int Pin) {
digitalWrite(Pin,HIGH);
}
void apagarLuz (int Pin) {
digitalWrite(Pin,LOW);
}
void encenderComponente (int Pin) {
digitalWrite(Pin,HIGH);
}
void apagarComponente (int Pin) {
digitalWrite(Pin,LOW);
}
void encenderPin (int Pin) {
digitalWrite (Pin, hög);
}
void apagarPin (int Pin) {
digitalWrite (Pin, låg);
}