Paso 15: La garra del código y las pruebas
Encontré otro joystick de pulgar, por lo utilizaremos para controlar la apertura y cierre de la garra.
Este es el mismo código que se utiliza para controlar el motor (para subir y bajar la garra), sólo tiene asignaciones de pines diferentes y nombres de variables.
Si desenterrar un antiguo controlador de PS2 me hackear y usar como controlador principal.
Después de probar esto va ser doblado con el resto del código.
Aquí hay un video. El código está a continuación.
Código de Arduino / / /
La garra control / / /
declarar los pernos para el motor de la C.C. B / / apertura y cierre de la garra
int potPin_B = 3; Seleccione la entrada de pin para el bote
int val_B = 0; variable para almacenar el valor que viene desde el sensor
Declarar las variables para el motor de la C.C. B
int k = 0;
int Dir_B = 7;
int Speed_B = 6; PWM
void setup() {}
configuración de pines de motor B DC
pinMode (Dir_B, salida);
pinMode (Speed_B, salida);
}
void loop() {}
DC MOTOR B - LEER Y CONTROLAR / / /
Lea la ubicación de la palanca de mando y calcular la distancia y del centro de
val_B = analogRead(potPin_B); leer el valor del sensor
k = val_B - 517; 517 es centro - cuán lejos del centro de
k = abs(k); valor absoluto
poner algunos límites en j para mantener valores PWM útil
por debajo de 100 no se mueva el motor y PWM máximo es 255
Si (k > = 510) {}
k = 510; lo más que puede hacer el pin PWM es de 255
}
Si (k < = 200 & & k > = 10) {}
k = 200; por debajo de 100 PWM el motor hace un pich alta sonido y no se mueve
}
Si (k < = 10) {}
k = 0; debajo de 10 el joystick es muy cercano al centro
}
Funcionamiento motor de la C.C. B basado en las entradas analógicas de joystick
Si (val_B > = 530) {}
digitalWrite (Dir_B, alto); otra dirección
analogWrite (Speed_B, k/2); PWM salida (dividir por 2, ya que máximo es 255)
}
Si (val_B < = 500) {}
digitalWrite (Dir_B, bajo); //
analogWrite (Speed_B, k/2); //
}
Si (val_B < = 530 & & val_B > = 500) {}
analogWrite (Speed_B, 0); Apagar si el joystick está en el centro
}
}