Min nionde projekt: Robotarm med Joystick sköld (5 / 6 steg)
Steg 5: Modifierade koden
Testet går perfekt! Men det finns ett problem: jordluckraren öppnas när jag släpper knappen. Om jag vill behålla stängs jordluckraren och då måste jag tryck på knappen. Som ett resultat jag placera PWM värdet för varje servo och tillsätt / minus 100 när jag trycker på knappen.
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;
int value6 = 1000;
int value5 = 1000;
int value4 = 1000;
int value3 = 1000;
int value2 = 1000;
int värde1 = 1000;
void setup()
{
Serial.BEGIN(9600);
pinMode (A_button, indata);
pinMode (B_button, indata);
pinMode (C_button, indata);
pinMode (D_button, indata);
pinMode (E_button, indata);
pinMode (F_button, indata);
pinMode (Analog, indata);
}
void flytta (int servo, int position, int tid)
{
Serial.Print("#");
Serial.Print(servo);
Serial.Print("P");
Serial.Print(position);
Serial.Print("T");
Serial.println(Time);
Delay(Time);
}
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);
x_axis_state = karta (x_axis_state, 0, 1000, -1, 1);
y_axis_state = karta (y_axis_state, 0, 1000, -1, 1);
om (A_button_state == låg)
{
om (value6 < 1700)
{
value6 = value6 + 100.
flytta (6, value6, 100);
}
annat
{
flytta (6, value6, 100);
}
}
om (B_button_state == låg)
{
om (value6 > 900)
{
value6 = value6 - 100.
flytta (6, value6, 100);
}
}
om (C_button_state == låg)
{
om (value5 < 2500)
{
value5 = value5 + 100.
flytta (5, value5, 100);
}
annat
{
flytta (5, value5, 100);
}
}
om (D_button_state == låg)
{
om (value5 > 500)
{
value5 = value5 - 100.
flytta (5, value5, 100);
}
}
om (E_button_state == låg)
{
om (value4 < 2500)
{
value4 = value4 + 100.
flytta (4, value4, 100);
}
annat
{
flytta (4, value4, 100);
}
}
om (F_button_state == låg)
{
om (value4 > 500)
{
value4 = value4 - 100.
flytta (4, value4, 100);
}
}
om (Analog_state == låg)
{
om (value3 < 2500)
{
value3 = value3 + 100.
flytta (3, value3, 100);
}
annat
{
flytta (3, value3, 100);
}
}
om (y_axis_state == -1)
{
om (värde2 < 2500)
{
value2 = värde2 + 100.
flytta (2, värde2; 100);
}
annat
{
flytta (2, värde2; 100);
}
}
om (y_axis_state == 1)
{
om (värde2 > 500)
{
value2 = värde2 - 100.
flytta (2, värde2; 100);
}
}
om (x_axis_state == -1)
{
om (värde1 < 2500)
{
värde1 = värde1 + 100.
flytta (1, värde1; 100);
}
annat
{
flytta (1, värde1; 100);
}
}
om (x_axis_state == 1)
{
om (värde1 > 500)
{
värde1 = värde1 - 100.
flytta (1, värde1; 100);
}
}
}