Paso 6: conectar y configurar los servos
Tuve en mano 3 servos de un proyecto de control remoto no comenzó hace años así que pensé que este sería el momento perfecto para usarlos.
Son servos futaba - tres son los que van sólo hasta ahora en una dirección entonces parar.
Uno tenía la cabeza de 4 vías en los otros dos tienen círculos conectados.
Esperemos que las fotos le proporcionará buenos detalles en cuanto a lo que voy a describir.
Tuve en mano algunos plástico blanco grueso de 1/4" y 16" de largo que corté 2 tiras de aproximadamente 3/4" de ancho.
Estos perforados a través de los orificios de los bordes de los tornillos pequeños caber a través. Creo que he encontrado esos tornillos pequeños con algunos interruptores que compré en una tienda de excedentes.
Taladré los orificios a través del servo cabeza monta al mismo tiempo para que los orificios se alineen. Entonces era cuestión de montar los servos en la madera contrachapada.
Para montar los servos en la madera contrachapada, me cortar rectángulos en la madera y atornillar los servos con algunos tornillos pequeños. Creo que son tornillos de interruptores de luz. el tipo que Instale interruptores y enchufes en sus cajas de conexión.
Pongo los servos espaciados para que las escobillas limpiaparabrisas casi quisiera tocar cada uno otro pero no del todo. Luego una vez en los servos, pongo los agujeros de la bola en el lugar.
He intentado colocar los orificios para que el servo "limpiaparabrisas" sacar la bola en el agujero.
Debajo de los orificios es plástico tubería de 2 pulgadas ABS para dirigir las bolas a los lados.
Aquí es cómo configuré los servos.
1. registrar los servos
Los servos son capaces de aceptar un número como un grado de giro.
Usé el construido en biblioteca de servo para el arduino http://www.arduino.cc/en/Reference/Servo
Así que para les reloj, había conectado a arduino y que se vaya a 0.
luego puse los brazos en que se apunta en todos los ámbitos.
Cuando los servos reciben energía, parece que se mueven-90 o tal. No pude averiguar por qué lo hacen pero quería estar seguro no se queman ellos mismos ya -90 hace empuje sus brazos contra la pared - me los puse en el tablero en el ángulo equivocado. Antes de montarlos debe reloj de los servos. Hice lo contrario...
2. ejecutar los servos
Usando la biblioteca de servo, que quería para que el limpiaparabrisas se comporte un poco al azar, hasta generar un nivel aleatorio de movimiento, un número aleatorio para decidir qué limpiador para moverse, y un retardo aleatorio para hacer una pausa entre los trapos.
Durante el ciclo de pausa, tengo el código de comprobar todos los sensores de entrada de manera que si una pelota pasa en uno de los dos orificios de 300W, la máquina reacciona - esto es un intento manual de una interrupción.
así que aquí está el código estoy usando actualmente para funcionar los limpiaparabrisas. (este es un extracto del código general)
#include
largo rndSrvoPos; variable para almacenar la posición del servo
largo rndPause; tiempo de pausa al azar
largo whichServo; elegir qué servo para mover
Servo wiper1; primer objeto de limpiaparabrisas de servo
Servo wiper2; segundo objeto de limpiaparabrisas de servo
void setup()
{
wiper1.Attach(14); se fija el servo en el pin 14 al objeto servo
wiper2.Attach(15); se fija el servo en el pin 14 al objeto servo
parpadeará 3 veces para indicar el inicio
Blink3x();
}
void loop()
{
barrer los servos al azar ascienden hasta 80 grados
Pausar un periodo aleatorio de tiempo entre 10 y 250 ms
rndSrvoPos = random(0,22);
rndPause = random(250,500);
whichServo = random(100);
MoveServo(whichServo,0,rndPause);
MoveServo(whichServo,80,rndPause);
}
void MoveServo (int servoNum, largo pos, int pausa)
{
Si (servoNum > = 50)
{
wiper1.Write(POS);
} else {}
wiper2.Write(POS);
}
para (i = 0; i {}
ReadandReport();
Si (analogRead(impSensorPin) < 90) {StartMotor();}
ReadNailPin();
retardo (1);
}
}
void Blink3x()
{
Ciclo Power en Self Test
wiper1.Write(80);
wiper2.Write(80);
}