código brazo

Download Código Brazo

If you can't read please download the document

Upload: juan-alberto-londono

Post on 10-Nov-2015

214 views

Category:

Documents


0 download

DESCRIPTION

algoritmo de programacion de un brazo robotico utilizando arduino y lenguaje C y C++, ademas se controlaran servomotores ,sensores cny 70 y pulsadores

TRANSCRIPT

#include // incluimos la biblioteca Servo Servo Trola; // creamos un objecto servo para controlar el motor Servo Puyuo; // creamos un objecto servo para controlar el motorServo Servo3; // creamos un objecto servo para controlar el motor Servo Servo4; // creamos un objecto servo para controlar el motor Servo Servo5; // creamos un objecto servo para controlar el motor unsigned char dato;int valPot1 = 0; // variable para guardar el valor del potenciometro int angulo1 = 0; // variable para guardar la posicion del servo int valPot2 = 0; // variable para guardar el valor del potenciometro int angulo2 = 0; // variable para guardar la posicion del servo int valPot3 = 0; // variable para guardar el valor del potenciometro int angulo3 = 0; // variable para guardar la posicion del servoint valPot4 = 0; // variable para guardar el valor del potenciometro int angulo4 = 0; // variable para guardar la posicion del servoint valPot5 = 0; // variable para guardar el valor del potenciometro int angulo5 = 0; // variable para guardar la posicion del servoint pulsador = 13;int datoSensor=12;int activeSensor=8;int dato0=0;int dato1=0;int led=7;void setup() { Trola.attach(3); // liga el servo al pin 3Puyuo.attach(5); // liga el servo al pin 5Servo3.attach(6); // liga el servo al pin 6Servo4.attach(11); // liga el servo al pin 9Servo5.attach(10); // liga el servo al pin 10pinMode(pulsador, INPUT);pinMode(datoSensor, INPUT);pinMode(activeSensor, OUTPUT);pinMode(led, OUTPUT);Serial.begin(9600);}void loop() { Servo4.write(180); for(int i=20; i=0; i--){ Servo4.write(i); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion } for(int i=80; i>=15; i--){ Servo3.write(i); delay(40); } for(int i=140; i>=110; i--){ Servo5.write(i); // manda al servo la posicion delay(10); // espera unos milisegundos para que el servo llegue a su posicion } delay(1000); dato0=digitalRead(pulsador); while(dato0==1){ digitalWrite(activeSensor, HIGH); dato1=digitalRead(datoSensor); if(dato1==1){ Trola.write(90); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Puyuo.write(35); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo3.write(90); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo4.write(90); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo5.write(90); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion } else{ Puyuo.write(125); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo3.write(90); // manda al servo la posicion delay(1000); Trola.write(90); delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo4.write(90); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo5.write(90); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion } dato0=digitalRead(pulsador); if(!dato0){ digitalWrite(activeSensor, LOW); digitalWrite(led, LOW); break; } } if (Serial.available()){ dato = Serial.read(); while(dato == '0') { valPot1 = analogRead(A0); // leemos el valor del potenciometro angulo1 = map(valPot1, 0, 1023, 0, 180); // convertimos los valores del potenciometro a los del servo Trola.write(angulo1); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion valPot2 = analogRead(A1); // leemos el valor del potenciometro angulo2 = map(valPot2, 0, 1023, 0, 180); // convertimos los valores del potenciometro a los del servo Puyuo.write(angulo2); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion valPot3 = analogRead(A2); // leemos el valor del potenciometro angulo3 = map(valPot3, 0, 1023, 0, 180); // convertimos los valores del potenciometro a los del servo Servo3.write(angulo3); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion valPot4 = analogRead(A3); // leemos el valor del potenciometro angulo4 = map(valPot4, 0, 1023, 0, 180); // convertimos los valores del potenciometro a los del servo Servo4.write(angulo4); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion valPot5 = analogRead(A4); // leemos el valor del potenciometro angulo5 = map(valPot5, 0, 1023, 0, 180); // convertimos los valores del potenciometro a los del servo Servo5.write(angulo5); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion } if(dato == '1') { Trola.write(180); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Puyuo.write(0); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Trola.write(45); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo3.write(45); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Servo4.write(45); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion Trola.write(120); // manda al servo la posicion delay(1000); // espera unos milisegundos para que el servo llegue a su posicion } }}