SYSTEM CENTER & TECHNOLOGY S.A.
Curso: Programación de Arduino Manual 2_1
Profesor: Acosta Jacinto, Rubén Eusebio
MANEJO DE UN MÓVIL POR BLUETOOTH
1.- DIAGRAMA DE CONEXIÓN DEL HARDWARE
En la figura 1 se muestra el diagrama de bloques de conexión del hardware de un móvil controlado por
BLUET00TH.
En este diagrama se emplea un puente H L298 para el manejo de dos motores DC de 6VDC.
Figura 1. Diagrama de conexión del hardware del móvil controlado por BLUETOOTH.
Delcomp-2014 Ing. Rubén Eusebio Acosta Jacinto 1
SYSTEM CENTER & TECHNOLOGY S.A.C
2.- DIAGRAMA DE FLUJO DEL FIRMWARE
En la figura 2, se presenta el diagrama de flujo de control del firmware que se ejecuta en la plataforma
Arduino uno.
Figura 2. Diagrama de flujo de control del firmware de la plataforma Arduino UNO.
Delcomp-2014 Ing. Rubén Eusebio Acosta Jacinto 2
SYSTEM CENTER & TECHNOLOGY S.A.C
2.- CÓDIGO DE CONTROL
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3); //COM VIRTUAL se define al Pin2 como RX, Pin3 como TX
int motor1Pin1 = 4; // pin 2 on L298n IC IN1_DIR1 del motor1
int motor1Pin2 = 5; // pin 7 on L298n IC IN2_DIR2 del motor1
int enable1Pin = 6; // pin 1 on L298n IC ENA Habilitador o PWM del motor1
int motor2Pin1 = 8; //pin 10 on L298n IC IN4_DIR2 del motor2
int motor2Pin2 = 9; // pin 15 on L298n IC IN3_DIR1 del motor2
int enable2Pin = 11; // pin 9 on L298n IC ENB Habilitador o PWM del motor2
int state;
int flag=0; //makes sure that the serial only prints once the state
int stateStop=0;
void setup() {
Serial.begin(9600); //inicializa la comunicación serial a 9600 de la consola serial del IDE
mySerial.begin(9600); //Inicializa COM virtual para el control x BLUETOOTH
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enable1Pin, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
pinMode(enable2Pin, OUTPUT);
digitalWrite(enable1Pin, HIGH);
digitalWrite(enable2Pin, HIGH);
}
void loop() {
state=mySerial.read();
if (state == 'w') {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(motor2Pin1, LOW); }
else if (state == 'd') {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(motor2Pin1, LOW);}
else if (state == 'q' ) {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(motor2Pin1, LOW);}
else if (state == 'a') {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(motor2Pin1, LOW); }
else if (state == 's') {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(motor2Pin1, HIGH); }
Delcomp-2014 Ing. Rubén Eusebio Acosta Jacinto 3