Vous êtes sur la page 1sur 3

#include <Servo.

h> // libreria que sirve para hacer funcionar un servomotor


#include <SoftwareSerial.h> // Incluimos la librería SoftwareSerial -------> libreria que sirve para el modulo
bluetooth
int bluetoothTx = 0; // bluetooth tx to 0 pin
int bluetoothRx = 1; // bluetooth rx to 1 pinlong distancia;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
char dato;
Servo codo, hombro, pinzas, base;
int pcodo, phombro, ppinzas, pbase, contador=0;

void setup()
{
//.attach() sirve para declarar en que pin se coloca cada servomotor
base.attach(9);
pinzas.attach(10);
codo.attach(11);
hombro.attach(12);
Serial.begin(9600); /// define a cuantos baudios se encuentra sincronizado el modulo bluetooth
}

void loop(){
// este ciclo funciona para darle una posicion inicial a cada servomotor una ves que se le alimente con energia (solo
entra una sola vez por este ciclo)

if(contador==0)
{
// Leer posicion inicial
pcodo=codo.read();
phombro=hombro.read();
ppinzas=pinzas.read();
pbase=base.read();

//Escribir posicion inicial

codo.write(pcodo); // escribe la cosicion que marca en cada caso


hombro.write(phombro);
pinzas.write(ppinzas);
base.write(pbase);
contador++;
}

dato='x'; // dato vacio cuando no se preciona ningun boton en la aplicacion indica que no se debe mover el rotbot
if(Serial.available()>0){
dato=Serial.read(); /// sirve para leer el valor que se esta recibiendo a traves del modulo bluetooth
}
switch(dato)
{

case 'C': //CODO ARRIBA


{ // posicion inicial
if(pcodo>=160)
pcodo=160;
while(Serial.read()!='x')// mientras se este presionando el boton con señal C la posicion incrementa
{
if(pcodo<=180 && pcodo>=0)
{
pcodo++; //posicion incrementa
codo.write(pcodo); // se escribe la socicion de acuerdo a pcodo
delay(15); // lo realiza a un tiempo de 15 milisegundos
}
}
break;
}
case 'c': //CODO ABAJO
{
if(pcodo<=5)
pcodo=5;
while(Serial.read()!='x')
{
if(pcodo<=180 && pcodo>=0)
{
pcodo--;
codo.write(pcodo);
delay(15);
}
}
break;
}
case 'I': //hombro ARRIBA
{
if(phombro>=160)
phombro=160;
while(Serial.read()!='x')
{
if(phombro<=180 && phombro>=0)
{
phombro++;
hombro.write(phombro);
delay(15);
}
}
break;
}
case 'i': //hombro ABAJO
{
if(phombro<=10)
phombro=10;
while(Serial.read()!='x')
{
if(phombro<=180 && phombro>=0)
{
phombro--;
hombro.write(phombro);
delay(15);
}
}
break;
}
case 'P': //PINZA ABRIR
{
if(ppinzas>=165)
ppinzas=165;
while(Serial.read()!='x')
{
if(ppinzas<=180 && ppinzas>=0)
{
ppinzas++;
pinzas.write(ppinzas);
delay(15);
}
}
break;
}
case 'p': //PINZA CERRAR
{
if(ppinzas<=15)
ppinzas=15;
while(Serial.read()!='x')
{
if(ppinzas<=180 && ppinzas>=0)
{
ppinzas--;
pinzas.write(ppinzas);
delay(15);
}
}
break;
}
case 'B': //BASE IZQUIERDA
{ if(pbase>=175)
pbase=175;
while(Serial.read()!='x')
{
if(pbase<=175 && pbase>=0)
{
pbase++;
base.write(pbase);
delay(15);
}
}
break;
}
case 'b': //BASE DERECHA
{
if(pbase<=5)
pbase=5;
while(Serial.read()!='x')
{
if(pbase<=180 && pbase>=0)
{
pbase--;
base.write(pbase);
delay(15);
}
}
break;
}
}
}

Vous aimerez peut-être aussi