Paso 4: Finalmente cargar sketch de arduino y ajuste los parámetros del programa
Aquí está mi dibujo, tengo una subrutina para ejecutar el servo en velocidades mas lentas.
Te darás cuenta que código de despedida solo sólo sube el péndulo a una cierta altura. El doble rebote rutina eleva a una altura a una velocidad más lenta para que la bola libera más lentamente y luego mueve el resto del camino a atrapar la pelota en su segundo rebote.
¡Que te diviertas!
#include
Servo1 servo,
int servangle = 0;
int potPin = 4;
int ledPin = 13; selecciona el pin para el LED int val = 0; variable para almacenar el valor del sensor int
int delayTime = 0; Análogo Lee pernos const int buttonPin = 2;
void myServo (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum)
{Si (curAngle < newAngle) {}
para (ángulo int = curAngle; ángulo < newAngle; ángulo += angleInc) {}
Si (servoNum == 1) servo1.write(angle);
Si (servoNum == 2) servo2.write(angle);
Delay(incDelay); } }
else if (curAngle > newAngle) {}
para (ángulo int = curAngle; ángulo > newAngle; ángulo = angleInc) {}
Si (servoNum == 1) servo1.write(angle);
Si (servoNum == 2) servo2.write(angle);
Delay(incDelay); } } }
void setup() {}
Serial.Begin(9600);
pinMode (ledPin, salida);
declara el ledPin como salida
pinMode(buttonPin,INPUT);
servo1.Attach(11);
Delay(10);
servo1.Write(90); Delay(5000);
randomSeed(analogRead(0)); }
void loop() {}
Serial.Print ("retrasar val ="); Serial.Print(Val); Serial.Print ("ángulo de val ="); Serial.println(valPot2); digitalWrite(ledPin,HIGH);
salto dos veces a la izquierda myServo(120,73,1,20,1);
delay(500) izquierda;
myServo(73,65,1,20,1);
delay(2000) izquierda;
rebote una vez a la derecha
myServo(65,120,1,20,1);
derecho delay(2000);
rebote una vez a la izquierda
myServo(120,65,1,20,1);
delay(2000) izquierda;
rebote una vez a la derecha
myServo(65,120,1,20,1);
derecho delay(2000);
digitalWrite(ledPin,LOW);
CLI();
}