Sunteți pe pagina 1din 2

#include <Servo.

h>
String mainString;
Servo ServoAndroid;
Servo ServoAndroid1;
int ang = 90; //�ngulo inicial 90 grados
int ang1=90;
int led_1 = 2;
int led_2 = 3;
int led_3 = 7;
int led_4 = 8;
int led_5 = 12;
byte redled =9;
byte greenled =10;
byte blueled = 11;
char valor; //Variable para indicar que llega una orden
void setup() {
Serial.begin(9600);
ServoAndroid.attach(5,600,2400); //Servomotor: PIN3 & AP(min)=600 AP(max)=2400
ServoAndroid1.attach(6,600,2400); //Servomotor: PIN3 & AP(min)=600 AP(max)=2400
Serial.begin(9600); //baudrate=9600
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(led_3, OUTPUT);
pinMode(led_4, OUTPUT);
pinMode(led_5, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) //Si el puerto serie (Bluetooth) est� disponible
{valor = Serial.read(); //Lee el dato entrante via Bluetooth
mainString=Serial.readString();
byte firstCommaIndex=mainString.indexOf(',');
byte secondCommaIndex=mainString.indexOf(',', firstCommaIndex+1);
String red =mainString.substring(0,firstCommaIndex);
String green =mainString.substring(firstCommaIndex+1,secondCommaIndex);
String blue=mainString.substring(secondCommaIndex+1);
int r =red.toInt();
int g =green.toInt();
int b =blue.toInt();
analogWrite(redled,255-r);
analogWrite(greenled,255-g);
analogWrite(blueled,255-b);
if (valor == 'A') //Si el dato que llega es una A
{
digitalWrite(led_1, HIGH); //Enciende el LED 1
}
if (valor == 'B') //Si el dato que llega es una B
{
digitalWrite(led_1, LOW); //Apaga el LED 1
}
if (valor == 'C') //Si el dato que llega es una C
{
digitalWrite(led_2, HIGH); //Enciende el LED 2
}
if (valor == 'D') //Si el dato que llega es una D
{
digitalWrite(led_2, LOW); //Apaga el LED 2
}
if (valor == 'E') //Si el dato que llega es una E
{
digitalWrite(led_3, HIGH); //Enciende el LED COCINA
}
if (valor == 'F') //Si el dato que llega es una F
{
digitalWrite(led_3, LOW); //Apaga el LED 1
}
if (valor == 'G') //Si el dato que llega es una G
{
digitalWrite(led_4, HIGH); //Enciende el LED BA�O
}
if (valor == 'H') //Si el dato que llega es una H
{
digitalWrite(led_4, LOW); //Apaga el LED 4
}
if (valor == 'I') //Si el dato que llega es una I
{
digitalWrite(led_5, HIGH); //Enciende el LED COCHERA
}
if (valor == 'J') //Si el dato que llega es una H
{
digitalWrite(led_5, LOW); //Apaga el LED 5
}
if (valor == 'Z'){
ang = ang + 90; //Se aumenta el angulo en 5 grados
Serial.print(ang); //Se envia el valor al celular
}
if (valor == 'Y'){
ang = ang - 90; //Se disminuye en 5 grados
Serial.print(ang);
}
if (valor == 'X'){
ang1 = ang1 + 90; //Se aumenta el angulo en 5 grados
Serial.print(ang1); //Se envia el valor al celular
}
if (valor == 'W'){
ang1 = ang1 - 90; //Se disminuye en 5 grados
Serial.print(ang1);
}
ang = constrain(ang,0,180); //Se limita los valores del angulo
ang1 = constrain(ang1,0,180); //Se limita los valores del angulo
}
ServoAndroid.write(ang); //Se ingresa el valor de "ang" en el Servo
ServoAndroid1.write(ang1); //Se ingresa el valor de "ang" en el Servo
delay(100); //tiempo de espera 100ms
}

S-ar putea să vă placă și