Stap 15: Klauw code en testen
Ik vond een andere duim joystick, dus we die gebruiken voor het bepalen van het openen en sluiten van de klauw.
Dit is dezelfde code gebruikt om te controleren de rotatiemotor (voor verhogen en verlagen van de klauw), op uitsluitend heeft verschillende pin-toewijzingen en namen van variabelen.
Als ik een oude PS2 controller graven zal ik hack die en gebruiken als de belangrijkste controller.
Na het testen van deze zal het met de rest van de code worden gevouwen.
Hier is een video. De code is hieronder.
Arduino Code / / /
Klauw controle / / /
verklaar pinnen voor gelijkstroommotor B / / klauw openen/sluiten
int potPin_B = 3; Selecteer de invoer pin voor de pot
int val_B = 0; variabele de waarde afkomstig van de sensor opslaan
Declareer variabelen voor DC motor B
int k = 0;
int Dir_B = 7;
int Speed_B = 6; PWM
VOID Setup {}
Setup DC motor B pinnen
pinMode (Dir_B, uitvoer);
pinMode (Speed_B, uitvoer);
}
void loop {}
DC MOTOR B - LEZEN EN CONTROLEREN / / /
Lezen van locatie voor joystick en berekenen van de afstand en vanuit Midden
val_B = analogRead(potPin_B); luiden naar de waarde van de sensor
k = val_B - 517; 517 is center posities - hoe ver van centrum
k = abs(k); absolute waarde
sommige grenzen op j te houden PWM waarden nuttige plaatsen
onder 100 de motor niet verplaatst en PWM max is 255
Als (k > = 510) {}
k = 510; de meest de PWM-pin kan doen is 255
}
Als (k < = 200 & & k > = 10) {}
k = 200; onder 100 PWM de motor maakt een hoge pek klinken en niet beweegt
}
Als (k < = 10) {}
k = 0; minder dan 10 is de joystick zeer dicht bij het centrum
}
Uitvoeren van gelijkstroommotor B op basis van analoge ingang joystick
Als (val_B > = 530) {}
digitalWrite (Dir_B, hoge); andere richting
analogWrite (Speed_B, k/2); PWM uit (delen door 2 omdat max is 255)
}
Als (val_B < = 500) {}
digitalWrite (Dir_B, laag); //
analogWrite (Speed_B, k/2); //
}
Als (val_B < = 530 & & val_B > = 500) {}
analogWrite (Speed_B, 0); uitschakelen als de joystick in het midden
}
}