Paso 31: Código que utiliza interruptores de
Dado que este controlador es sólo un montón de interruptores, nos podemos tirar todo el código que tenía que ver con la potentiameters que estaban en los joysticks de pulgar. Esto significa que no tenemos control sobre la velocidad.
Aquí está el controlador en acción:
Aquí está el código para ejecutar el juego de la grúa usando el regulador del salto de la rana. Solo usa 6 push bottons para controlar el motor paso a paso y los dos motores DC.
Código de Arduino / / /
Velocidades de
int Delay_X = 1000; retraso de paso: microsegundos (por retardo = velocidad más lenta
int Speed_S = 255; velocidad 0-255
int Speed_C = 255; Clow velocidad 0-255
PERNOS DE PASO A PASO
Salidas
int Step_X = 13;
int Dir_X = 12;
int Enable_X = 8;
Entradas
int izquierda = 16;
int derecha = 17;
variables
int val_Left = bajo;
int val_Right = bajo;
PERNOS DE EJE
Salidas
int Dir_A = 4;
int Speed_A = 5;
Entradas
int alto = 14;
int abajo = 15;
variables
int val_Up = bajo;
int val_Down = bajo;
PERNOS DE GARRA
Salidas
int Dir_B = 7;
int Speed_B = 6;
Entradas
int Open = 18;
int = cierre 19;
variables
int val_Open = bajo;
int val_Close = bajo;
void setup () {}
configuración de pines de paso a paso
pinMode (Step_X, salida);
pinMode (Dir_X, salida);
pinMode (Enable_X, salida);
pinMode (izquierda, entrada);
pinMode (derecha, entrada);
configuración de pines de motor A CC - para eje
pinMode (Dir_A, salida);
pinMode (Speed_A, salida);
pinMode (Up, entrada);
pinMode (abajo, entrada);
instalación de pernos de motor B DC - para garra
pinMode (Dir_B, salida);
pinMode (Speed_B, salida);
pinMode (abierto, entrada);
pinMode (cierre, entrada);
}
void loop() {}
CONTROL Y LEER PASO A PASO / /
val_Left = digitalRead(Left);
val_Right = digitalRead(Right);
Si (val_Left == HIGH) {}
digitalWrite(Enable_X,HIGH); permiten
digitalWrite (Dir_X, alto); Sistema de dirección
digitalWrite(Step_X,HIGH);
delayMicroseconds(2);
digitalWrite(Step_X,LOW);
delayMicroseconds(Delay_X);
}
Si (val_Right == HIGH) {}
digitalWrite(Enable_X,HIGH); permiten
digitalWrite (Dir_X, bajo); Establecer dirección (dirección contraria)
digitalWrite(Step_X,HIGH);
delayMicroseconds(2);
digitalWrite(Step_X,LOW);
delayMicroseconds(Delay_X);
}
Si ((val_Left == LOW) & & (val_Right == LOW)) {}
digitalWrite (Enable_X, bajo); paso a paso de
}
EJE LECTURA Y CONTROL / /
val_Up = digitalRead(Up);
val_Down = digitalRead(Down);
Si (val_Up == HIGH) {}
digitalWrite (Dir_A, alto);
analogWrite (Speed_A, Speed_S);
}
Si (val_Down == HIGH) {}
digitalWrite (Dir_A, LOW);
analogWrite (Speed_A, Speed_S);
}
Si ((val_Up ==LOW) & & (val_Down == LOW)) {}
analogWrite (Speed_A, 0);
}
LECTURA DE GARRA Y CONTROL / /
val_Open = digitalRead(Open);
val_Close = digitalRead(Close);
Si (val_Open == HIGH) {}
digitalWrite (Dir_B, alto);
analogWrite (Speed_B, Speed_C);
}
Si (val_Close == HIGH) {}
digitalWrite (Dir_B, bajo);
analogWrite (Speed_B, Speed_C);
}
Si ((val_Open ==LOW) & & (val_Close == LOW)) {}
analogWrite (Speed_B, 0);
}
}