Paso 20: códigos
Copiar y pegar los códigos en el software de Arduino. Los códigos que utilizamos para el carro puede ser visto aquí abajo.
Código para la
motores de engranajes
incluir archivos para agregar otros archivos o bibliotecas para el programa actual
#include
#include
#include
int estado = 0; crea una variable que se utilizará para probar las condiciones.
SoftwareSerial azul (10, 11); Configuración de RX, TX pines para comunicación Bluetooth
Adafruit_MotorShield AFMS = Adafruit_MotorShield(); Crear el objeto de escudo del motor con la dirección de I2C por defecto
Adafruit_DCMotor * myMotor = AFMS.getMotor(1); Seleccionar el puerto para conectar un motor. un motor va al puerto 1
Adafruit_DCMotor * myMotor2 = AFMS.getMotor(2); Seleccionar el puerto para conectar un motor. un motor va al puerto 2
void setup() {}
Serial.Begin(9600); Biblioteca Serial a 9600 bps
Blue.Begin(9600); establece la velocidad a 9600 bps
Blue.println ("es bluetooth trabaja?"); imprime una línea para probar si funciona el bluetooth
AFMS.begin(); configuración librería Serial a 9600 bps
}
void loop()
{
if(Blue.Available() > 0) {//this es utilizado para leer los valores por el módulo de X bluetooth de HC-0
Estado = blue.read(); la variable declarada ahora cambios su valor a lo que fue recibido por el módulo de bluetooth
}
todos estos si sirven para realizar determinadas acciones. por ejemplo: en la primera si se implementa el comando stop parando todos los motores.
dejar de establecer todos los motores a una velocidad de 0
Si (=='s de estado') {}
myMotor -> run(RELEASE); un motor se establece para detener
myMotor -> setSpeed(0); un motor se ajusta a la velocidad 0
myMotor2 -> run(RELEASE); motor dos está predispuesto para detener
myMotor2 -> setSpeed(0); motor dos es configurar a velocidad 0
}
adelante el ajuste de un motor para correr hacia adelante mientras el otro corre hacia atrás
Si (estado == 'w') {}
myMotor -> run(FORWARD); motor uno ocupa funcionar hacia adelante
myMotor -> setSpeed(255); se encuentra un motor a velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
myMotor2 -> run(BACKWARD); motor dos ocupa funcionar hacia atrás.
myMotor2 -> setSpeed(255); motor dos se establece en velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
}
al revés es el mismo código como adelante; el único cambio es que un motor ahora corre hacia atrás y motor2 corre hacia adelante.
Si (estado == 'x') {}
myMotor -> run(BACKWARD); motor uno ocupa funcionar al revés
myMotor -> setSpeed(255); se encuentra un motor a velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
myMotor2 -> run(FORWARD); motor dos ocupa funcionar hacia adelante
myMotor2 -> setSpeed(255); motor dos se establece en velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
}
Gire a la izquierda esta vez, ambos motores funcionan a la misma dirección
Si (estado == 'a') {}
myMotor -> run(FORWARD); motor uno ocupa funcionar hacia adelante
myMotor -> setSpeed(255); se encuentra un motor a velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
myMotor2 -> run(FORWARD); motor dos ocupa funcionar hacia adelante
myMotor2 -> setSpeed(255); motor dos se establece en velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
}
Gire a la derecha de que los motores se ejecutarán en la misma dirección, pero opuesta a la izquierda
Si (estado == había ') {}
myMotor2 -> run(BACKWARD); motor dos ocupa funcionar al revés
myMotor2 -> setSpeed(255); motor dos se establece en velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
myMotor -> run(BACKWARD); motor uno ocupa funcionar al revés
myMotor -> setSpeed(255); se encuentra un motor a velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
}
lenta vuelta a la izquierda los motores se gire a la izquierda lentamente. es el mismo código como para girar a la izquierda, pero con menor velocidad de
Si (estado == 'q') {}
myMotor2 -> run(FORWARD); motor dos ocupa funcionar hacia adelante
myMotor2 -> setSpeed(100); motor dos ocupa al 40% de velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
myMotor -> run(FORWARD); motor uno ocupa funcionar hacia adelante
myMotor -> setSpeed(100); un motor se establece en 40% de velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
}
lento a la derecha los motores se gire a la derecha lentamente. es el mismo código como para girar a la derecha, pero con menor velocidad de
Si (estado == 'e') {}
myMotor -> run(BACKWARD); motor uno ocupa funcionar al revés
myMotor -> setSpeed(100); motor uno se establece en 40% de la velocidad máxima es el mayor valor posible, considerando que 0 es el más bajo.
myMotor2 -> run(BACKWARD); motor dos ocupa funcionar al revés
myMotor2 -> setSpeed(100); motor dos ocupa al 40% de velocidad máxima. 255 es el mayor valor posible, considerando que 0 es el más bajo.
}
}
Código para servomotores (cortador de la espuma de poliestireno)
incluir archivos para agregar otros archivos o bibliotecas para el programa actual
#include
#include
Servo miServo; declara un servo
Servo miServo2; declara un servo
int estado = 0; crea una variable que se utilizará para probar las condiciones.
SoftwareSerial azul (10, 11); Configuración de RX, TX pines para comunicación Bluetooth
void setup() {}
Blue.Begin(9600); Biblioteca Serial a 9600 bps
Blue.println ("iniciar bluetooth"); establece la velocidad a 9600 bps
miServo.attach (3); Conecte el servo 1 a pin 3
miServo2.attach (5); Conecte el servo 2 al pin 5
}
void loop() {}
Si (blue.available() > 0) //this es utilizada para leer los valores por el módulo de X bluetooth de HC-0
{
Estado = blue.read(); la variable declarada ahora cambios su valor a lo que fue recibido por el módulo de bluetooth
pinMode (7, salida); utilizado para encender la primera arma. esta arma consistió en un cortador de tecnopor (poliestireno expandible) que permite el coche quemar los globos en contacto.
pinMode (4, salida); utilizado para encender la segunda arma.
}
todos estos si sirven para realizar determinadas acciones. por ejemplo: en la primera si, el servo
Si (estado == 'a') {}
miServo.write(70); el servo se mueve en esta posición
digitalWrite (7, bajo); se activa el arma atado servo.
}
Si (estado == de ') {}
miServo.write(120); el servo se mueve en esta posición
digitalWrite (7, alto); se activa el arma atado servo.
}
Si (estado == 'k') {}
miServo2.write(30); el servo se mueve en esta posición
digitalWrite (4, alto); se activa el arma atado servo.
}
Si (estado == 'g') {}
miServo2.write(100); el servo se mueve en esta posición
digitalWrite (4, bajo); se activa el arma atado servo.
}
}