Paso 15: El código
** Este código es para un pro-ag diseños Scoop bala que se configura con las válvulas de solenoide direccional
** Este código le permitirá recoger heno sin funcionar manualmente interruptores ** automatizado **
** 7 interruptores micro se utilizan para final topes 1 en 0ff/de interruptor y 3 interruptores de mama/en/mamá
** placa de relé 1 capaz de controlar 6 solenoides 12VDC @ 5 amperios
** Este código fue diseñado por Elijah Koehn julio de 2013.
** Este código ha sido actualizado 25/09/13 por ___ETK___
*/
Definición de ON y OFF
#define en 0
#define OFF 1
Nombres de Pin de iniciado
Salidas
#define BedUp 7
#define BedDown 8
#define ArmOut 9
#define ArmIn 10
#define LoaderDown 11
#define LoaderUp 12
Entradas
#define BedDownS 2
#define AutoPickUpB 3
#define AutoCloseB 4
#define ArmOutS A0
#define ArmInS A1
#define LoaderUpS A2
#define LoaderDownS A3
#define BaleInS A4
#define BaleCounterS A5
va a cambiar las variables:
variable para lectura del estado del interruptor
Viajes int = 0; Interruptor para viajeras BaleScoop ** viajes modo **
int campos = 0; Automáticamente recoger balas ** campo modo **
int BaleCS = 0; 5 Interruptor de bale
int BaleEngagedS = 0; Balas en el cargador
int LoaderUS = 0; El cargador es en posición
int LoaderDS = 0; Cargador está en la posición hacia abajo
int ArmIS = 0; Pala está en posición cerrada
int ArmOS = 0; Scoop es en posición abierta
int BedDS = 0; Cama está en posición hacia abajo
void setup() {}
Apagar todos los relés durante el arranque para arriba por lo que es movimiento de balescoop
digitalWrite (LoaderUp, OFF);
digitalWrite (LoaderDown, OFF);
digitalWrite (ArmIn, OFF);
digitalWrite (ArmOut, OFF);
digitalWrite (BedDown, OFF);
digitalWrite (BedUp, OFF);
inicializar los solenoides todas como salidas
pinMode (LoaderUp, salida);
pinMode (LoaderDown, salida);
pinMode (ArmIn, salida);
pinMode (ArmOut, salida);
pinMode (BedDown, salida);
pinMode (BedUp, salida);
inicializar todos los interruptores como entradas
pinMode (AutoCloseB, entrada);
pinMode (AutoPickUpB, entrada);
pinMode (ArmInS, entrada);
pinMode (ArmOutS, entrada);
pinMode (BaleInS, entrada);
pinMode (LoaderDownS, entrada);
pinMode (LoaderUpS, entrada);
pinMode (BedDownS, entrada);
pinMode (BaleCounterS, entrada);
}
void loop() {}
leer el estado de los valores del interruptor:
Campos = digitalRead(AutoPickUpB);
Viaja = digitalRead(AutoCloseB);
LoaderUS = digitalRead(LoaderUpS);
LoaderDS = digitalRead(LoaderDownS);
ArmIS = digitalRead(ArmInS);
ArmOS = digitalRead(ArmOutS);
BedDS = digitalRead(BedDownS);
BaleEngagedS = digitalRead(BaleInS);
BaleCS = digitalRead(BaleCounterS);
feild modo
Paso 1
Hace que el cargador es de manera
Si (campos == alto & & ArmOS == baja & & LoaderUS == LOW) {//Check posiciones
digitalWrite (LoaderUp, ON);} Sube Loader
Si (LoaderUS == HIGH) {//Check posición
digitalWrite (LoaderUp, OFF);} Paradas del cargador en posición
Paso 2
Hace Arm Swing hacia fuera
Si (campos == alto & & ArmOS == baja & & LoaderUS == alto & & BaleEngagedS == LOW) {//Check posiciones
digitalWrite (ArmOut, ON);} Brazo que hace pivotar hacia fuera
Si (ArmOS == HIGH) {//Check posición
digitalWrite (ArmOut, OFF);} Deja el brazo en posición
Paso 4
Trae cama abajo a la posición de inicio
Si (campos == alto & & LoaderUS == alto & & ArmOS == alto & & BedDS == baja) {/ / Verifique las posiciones de
digitalWrite (BedDown, ON); } //Bed desciende a la posición de inicio
Si (BedDS == HIGH) {//Check posición
digitalWrite (BedDown, OFF);} Dejar la cama en la posición hacia abajo
Paso 5 repite hasta completa
Trae cargador hacia abajo, listo
Si (campos == alta & & ArmOS == alto & & LoaderUS == alto & & LoaderDS == baja & & BaleCS == baja & & BedDS == HIGH) {//Check posiciones
digitalWrite (LoaderDown, ON); / * retardo (2000); digitalWrite (LoaderDown, OFF); retrasar (2000); * /} //Loader desciende
Si (LoaderDS == HIGH) {//Check posición
digitalWrite (LoaderDown, OFF);} Cargador se detiene en la posición hacia abajo
Paso 6 repeticiones hasta completa
Cuando balas en el cargador, cargador levanta
Si (campos == alta & & ArmOS == alto & & LoaderUS == baja & & BaleEngagedS == alto & & BedDS == HIGH) {//Check posiciones
digitalWrite (LoaderUp, ON);} El cargador sube y repite el paso 3
Paso 7
Una vez que se dedica a la 5thBale interruptor, cargador agarra 1 bala más y se detiene en la posición hacia arriba
cucharada de columpios en el y se detiene en ** modo de viaje **
Si (campos == alto & & ArmIS == baja & & BaleCS == alta & & LoaderUS == alto & & BaleEngagedS == HIGH) {//Check posiciones
digitalWrite (ArmIn, ON);} Brazo, va en
Si (ArmIS == HIGH) {//Check posición
digitalWrite (ArmIn, OFF);} Paradas del brazo posición cerrada
Auto cierre ** modo de viaje **
Paso 1
Levanta el cargador para no chocar con brazo
Si (viaja == HIGH & & LoaderUS == LOW) {/ / comprobar posiciones
digitalWrite (LoaderUp, ON); } //If interruptor dedicado cargador de levantar para arriba
Si (LoaderUS == HIGH) {//Check posición
digitalWrite (LoaderUp, OFF); } //Stop cargador en posición
Paso 2
Oscilaciones del brazo a la posición de inicio
Si (viaja == alto & & LoaderUS == alto & & ArmIS == LOW) {/ / Verifique las posiciones de
digitalWrite (ArmIn, ON); } //If interruptor enganchado y cargador para arriba, brazo de Swin
Si (ArmIS == HIGH) {//Check posición
digitalWrite (ArmIn, OFF);} Dejar el brazo en posición cerrada
Paso 3
Trae cama abajo a la posición de inicio
Si (viaja == alto & & LoaderUS == alto & & ArmIS == alto & & BedDS == baja) {/ / Verifique las posiciones de
digitalWrite (BedDown, ON); } //Bed desciende a la posición de inicio
Si (BedDS == HIGH) {//Check posición
digitalWrite (BedDown, OFF);} Dejar la cama en la posición hacia abajo
}