Stap 4: Testen van code
Ik selecteer vervolgens een knop waarmee de servo op de klauw. Wanneer ik op een knop drukt, wordt het digitale signaal gewijzigd in 0 en de klauw sluit; Wanneer ik een knop loslaat, wordt het digitale signaal wordt 1 en de klauw opent. Ik heb de tabel voor PWM in het zevende project waarnaar als volgt:
Servo laagste PWM Movement hoogste PWM Movement
S1 500 rechts 2500 links
S2 500 tot 2500 omlaag
S3 500 beneden 2500 omhoog
S4 500 beneden 2500 omhoog
S5 500 tegenwijzerzin 2500 met de klok mee
S6 900 open klauw 1700 nauwe klauw
Om te controleren de servo's met servo controller, moeten we weten van de opdracht en dit is in de structuur als volgt:
#P ........... T
Ik wil de klauw nadert 1.5 seconde en kunnen we het schetsen van de code als volgt:
#6P1700T1500
Servo beheersing van de klauw is S6 en PWM klauw te sluiten is 1700.
Wanneer ik op een knop drukt, stuurt Arduino deze opdracht naar servo controller via seriële communicatie. Servo controller leest het en hij draagt de klauw te sluiten.
int A_button = 2;int B_button = 3;int C_button = 4;int D_button = 5;int E_button = 6;int F_button = 7;int Analog = 8;int x_axis = A0;int y_axis = A1;void setup() { Serial.begin(9600); pinMode(A_button, INPUT); pinMode(B_button, INPUT); pinMode(C_button, INPUT); pinMode(D_button, INPUT); pinMode(E_button, INPUT); pinMode(F_button, INPUT); pinMode(Analog, INPUT);}void loop() { int A_button_state = digitalRead(A_button); int B_button_state = digitalRead(B_button); int C_button_state = digitalRead(C_button); int D_button_state = digitalRead(D_button); int E_button_state = digitalRead(E_button); int F_button_state = digitalRead(F_button); int Analog_state = digitalRead(Analog); int x_axis_state = analogRead(x_axis); int y_axis_state = analogRead(y_axis); if (A_button_value == 1) { move(6, 900, 1500); } if (A_button_value == 0) { move(6, 1700, 1500); }}void move(int servo, int position, int time) { Serial.print("#"); Serial.print(servo); Serial.print("P"); Serial.print(position); Serial.print("T"); Serial.println(time); delay(time);}
Voordat u deze code uploadt, zorg ervoor dat beide pin 0 en 1 zijn verbroken
van Joystick Shield. Anders is de upload mislukt. We kunnen deze twee pinnen aan Joystick Shield opnieuw opnieuw verbinden nadat de schets is geüpload.
U kunt nu de klauw door één druk op een knop. Kunt u ook de code in void loop te wijzigen en de toetsen één voor één testen.: D