01-04-2018, 05:39 AM
buenos dias,
estoy intentando hacer un programilla con arduino y a la hora de compilar me da unos cuantos errores.
adjunto código a ver si alguien me puede echar una mano.
se trata de recibir datos por el puerto serie, que son enviados a través de una app, una vez recibidos actualiza la velocidad de unos motores y unos servos.
adjunto código:
// simulación roboping con sliders v1_1
# include <Servo.h>
# include <SoftwareSerial.h> // libreria para poder utilzar otros pins de comunicación
SoftwareSerial BT(7, 8); // RX, TX
int motor1 =3; //pin motor inferior
int motor2 =5; //pin motor superior izquierda
int motor3 =6; //pin motor superior derecha
int motor_elevador =11; //pin motor elevador
Servo servo_h; // crea el objeto servo horizontal
Servo servo_v; // crea el objeto servo vertical
int pos_horizontal = 0; //posición inicial del servo horizontal
int pos_vertical = 0; //posición inicial del servo vertical
void setup()
{
BT.begin(9600); // velocidad del puerto del módulo bluetooth
pinMode (motor1,OUTPUT); // declaramos los motores como salidas
pinMode (motor2,OUTPUT); // declaramos los motores como salidas
pinMode (motor3,OUTPUT); // declaramos los motores como salidas
pinMode (motor_elevador,OUTPUT); // declaramos los motores como salidas
servo_h.attach (9); // vincula el servo horizontal al pin 9
servo_v.attach (10); // vincula el servo vertical al pin 9
}
void loop()
{
// cuando haya datos disponibles
while (BT.available () > 0 )
{
int valor_servo_h = BT.parseInt(); //leemos el primer valor entero (servo horizontal) y lo almacenamos en la variable
int valor_servo_v = BT.parseInt(); //leemos el segundo valor entero (servo vertical) y lo almacenamos en la variable
int valor_motor3 = BT.parseInt(); //leemos el tercer valor entero (motor superior derecha) y lo almacenamos en la variable
int valor_motor2 = BT.parseInt(); //leemos el cuarto valor entero (motor superior izquierda) y lo almacenamos en la variable
int valor_motor1 = BT.parseInt(); //leemos el quinto valor entero (motor inferior) y lo almacenamos en la variable
int valor_m_elevador = BT.parseInt(); //leemos el último valor entero (motor elevador) y lo almacenamos en la variable
// cuando lea el carácter fin de línea ('\n') quiere de decir que ha finalizado el envío de los 6 valores
if (BT.read() =='\n')
{
//enviamos los valores recibidos de los sliders a los pines de los motores y servos
analogwrite (servo_h,valor_servo_h);
analogwrite (servo_v,valor_servo_v);
analogwrite (motor3,valor_motor3);
analogwrite (motor2,valor_motor2);
analogwrite (motor1,valor_motor1);
analogwrite (motor_elevador,valor_m_elevador);
}
}
delay (100);
}
estoy intentando hacer un programilla con arduino y a la hora de compilar me da unos cuantos errores.
adjunto código a ver si alguien me puede echar una mano.
se trata de recibir datos por el puerto serie, que son enviados a través de una app, una vez recibidos actualiza la velocidad de unos motores y unos servos.
adjunto código:
// simulación roboping con sliders v1_1
# include <Servo.h>
# include <SoftwareSerial.h> // libreria para poder utilzar otros pins de comunicación
SoftwareSerial BT(7, 8); // RX, TX
int motor1 =3; //pin motor inferior
int motor2 =5; //pin motor superior izquierda
int motor3 =6; //pin motor superior derecha
int motor_elevador =11; //pin motor elevador
Servo servo_h; // crea el objeto servo horizontal
Servo servo_v; // crea el objeto servo vertical
int pos_horizontal = 0; //posición inicial del servo horizontal
int pos_vertical = 0; //posición inicial del servo vertical
void setup()
{
BT.begin(9600); // velocidad del puerto del módulo bluetooth
pinMode (motor1,OUTPUT); // declaramos los motores como salidas
pinMode (motor2,OUTPUT); // declaramos los motores como salidas
pinMode (motor3,OUTPUT); // declaramos los motores como salidas
pinMode (motor_elevador,OUTPUT); // declaramos los motores como salidas
servo_h.attach (9); // vincula el servo horizontal al pin 9
servo_v.attach (10); // vincula el servo vertical al pin 9
}
void loop()
{
// cuando haya datos disponibles
while (BT.available () > 0 )
{
int valor_servo_h = BT.parseInt(); //leemos el primer valor entero (servo horizontal) y lo almacenamos en la variable
int valor_servo_v = BT.parseInt(); //leemos el segundo valor entero (servo vertical) y lo almacenamos en la variable
int valor_motor3 = BT.parseInt(); //leemos el tercer valor entero (motor superior derecha) y lo almacenamos en la variable
int valor_motor2 = BT.parseInt(); //leemos el cuarto valor entero (motor superior izquierda) y lo almacenamos en la variable
int valor_motor1 = BT.parseInt(); //leemos el quinto valor entero (motor inferior) y lo almacenamos en la variable
int valor_m_elevador = BT.parseInt(); //leemos el último valor entero (motor elevador) y lo almacenamos en la variable
// cuando lea el carácter fin de línea ('\n') quiere de decir que ha finalizado el envío de los 6 valores
if (BT.read() =='\n')
{
//enviamos los valores recibidos de los sliders a los pines de los motores y servos
analogwrite (servo_h,valor_servo_h);
analogwrite (servo_v,valor_servo_v);
analogwrite (motor3,valor_motor3);
analogwrite (motor2,valor_motor2);
analogwrite (motor1,valor_motor1);
analogwrite (motor_elevador,valor_m_elevador);
}
}
delay (100);
}