Étape 15 : Le CODE
** Ce code se rapporte à une pro-ag designs Scoop de Bale qui est mis en place avec des électrovannes directionnel
** Ce code vous permettra de ramasser le foin sans actionner manuellement les commutateurs ** automatique **
** 7 micro commutateurs sont utilisés pour fin s’arrête 1/0ff/sur bascule et maman/sur/maman 3 interrupteurs à bascule
** 1 relais Conseil capable de contrôler 6 solénoïdes 12VDC @ 5 amp
** Ce code était disigned par Elijah Koehn juillet 2013.
** Ce code a été mis à jour 25/09/13 par ___ETK___
*/
Définition ON et OFF
#define sur 0
#define OFF 1
Noms de Pin de lancement
Sorties
#define BedUp 7
#define cantonnement 8
#define ArmOut 9
#define ArmIn 10
#define LoaderDown 11
#define LoaderUp 12
Entrées
#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
variables vont changer :
variable pour la lecture de l’état de commutation
Voyages int = 0 ; Interrupteur pour Homeing BaleScoop ** voyage Mode **
int champs = 0 ; Automaticaly ramasser balles ** champ Mode **
int BaleCS = 0 ; 5 interrupteur de bale
int BaleEngagedS = 0 ; Balle dans le chargeur
int LoaderUS = 0 ; Chargeur est en position haute
int LoaderDS = 0 ; Chargeur est en position basse
int ArmIS = 0 ; Scoop est en position fermée
int ArmOS = 0 ; Scoop est en position ouverte
int BedDS = 0 ; Lit est en position basse
void setup() {}
Désactiver tous les relais lors du démarrage vers le haut donc il y a mouvement de balescoop
digitalWrite (LoaderUp, OFF) ;
digitalWrite (LoaderDown, OFF) ;
digitalWrite (ArmIn, OFF) ;
digitalWrite (ArmOut, OFF) ;
digitalWrite (cantonnement, OFF) ;
digitalWrite (BedUp, OFF) ;
initialiser les solénoïdes tous comme sorties
pinMode (LoaderUp, sortie) ;
pinMode (LoaderDown, sortie) ;
pinMode (ArmIn, sortie) ;
pinMode (ArmOut, sortie) ;
pinMode (cantonnement, sortie) ;
pinMode (BedUp, sortie) ;
initialiser les commutateurs tous comme entrées
pinMode (entrée, AutoCloseB) ;
pinMode (entrée, AutoPickUpB) ;
pinMode (entrée, ArmInS) ;
pinMode (entrée, ArmOutS) ;
pinMode (entrée, BaleInS) ;
pinMode (entrée, LoaderDownS) ;
pinMode (entrée, LoaderUpS) ;
pinMode (entrée, BedDownS) ;
pinMode (entrée, BaleCounterS) ;
}
void loop() {}
lire l’état des valeurs de l’interrupteur :
Champs = digitalRead(AutoPickUpB) ;
Voyage = digitalRead(AutoCloseB) ;
LoaderUS = digitalRead(LoaderUpS) ;
LoaderDS = digitalRead(LoaderDownS) ;
ArmIS = digitalRead(ArmInS) ;
ArmOS = digitalRead(ArmOutS) ;
BedDS = digitalRead(BedDownS) ;
BaleEngagedS = digitalRead(BaleInS) ;
BaleCS = digitalRead(BaleCounterS) ;
Feild Mode
Étape 1
Fait certain Loader est hors de
Si (champs == HIGH & & ArmOS == LOW & & LoaderUS == faible) {//Check postes
digitalWrite (LoaderUp, Ontario);} Chargeur Monte
Si (LoaderUS == HIGH) //Check position {
digitalWrite (LoaderUp, OFF);} Chargeur s’arrête en position haute
Étape 2
Établit les bras balancent
Si (champs == HIGH & & ArmOS == LOW & & LoaderUS == HIGH & & BaleEngagedS == faible) {//Check postes
digitalWrite (ArmOut, ON);} Balançoires de bras dehors
Si (ArmOS == HIGH) //Check position {
digitalWrite (ArmOut, OFF);} Bras s’arrête en position
Étape 4
Apporte le lit jusqu'à la position de maison
Si (champs == HIGH & & LoaderUS == HIGH & & ArmOS == HIGH & & BedDS == faible) {/ / vérifier les postes
digitalWrite (cantonnement, Ontario) ; } //Bed descend vers la position maison
Si (BedDS == HIGH) //Check position {
digitalWrite (cantonnement, OFF);} Arrêter le lit en Position basse
Étape 5 répétitions jusqu’au complet
Porte chargeur vers le bas, position "prêt"
Si (champs == HIGH & & ArmOS == HIGH & & LoaderUS == HIGH & & LoaderDS == LOW & & BaleCS == LOW & & BedDS == haute) {//Check postes
digitalWrite (LoaderDown, Ontario) ; / * retarder (2000) ; digitalWrite (LoaderDown, OFF) ; retarder (2000); * /} //Loader tombe en panne
Si (LoaderDS == HIGH) //Check position {
digitalWrite (LoaderDown, OFF);} Loader s’arrête en position basse
Étape 6 répétitions jusqu’au complet
Lorsque la balle engagée dans le chargeur, chargeur soulève vers le haut
Si (champs == HIGH & & ArmOS == HIGH & & LoaderUS == LOW & & BaleEngagedS == HIGH & & BedDS == HIGH) {//Check postes
digitalWrite (LoaderUp, Ontario);} Chargeur monte et répète l’étape 3
Étape 7
Une fois que 5thBale touche est enfoncée, Loader saisit 1 balle plus et s’arrête en position haut
sautes d’évider dos dans et s’arrête à ** voyage Mode **
Si (champs == HIGH & & ArmIS == LOW & & BaleCS == HIGH & & LoaderUS == HIGH & & BaleEngagedS == HIGH) {//Check postes
digitalWrite (ArmIn, ON);} Bras va dans
Si (ArmIS == HIGH) //Check position {
digitalWrite (ArmIn, OFF);} Position fermée du bras s’arrête
Auto close ** voyage Mode **
Étape 1
Déclenche chargeur vers le haut, donc il ne touche le bras
Si (voyages == HIGH & & LoaderUS == faible) {/ / vérifier les postes
digitalWrite (LoaderUp, Ontario) ; } //If commutateur engagé chargeur Raise up
Si (LoaderUS == HIGH) //Check position {
digitalWrite (LoaderUp, OFF) ; } //Stop loader en position haute
Étape 2
Balançoires de bras à la position de maison
Si (voyages == HIGH & & LoaderUS == HIGH & & ArmIS == faible) {/ / vérifier les postes
digitalWrite (ArmIn, Ontario) ; } //If commutateur engagés et chargeur vers le haut, Swin Arm dans
Si (ArmIS == HIGH) //Check position {
digitalWrite (ArmIn, OFF);} Arrêter le bras en Position fermée
Étape 3
Apporte le lit jusqu'à la position de maison
Si (voyages == HIGH & & LoaderUS == HIGH & & ArmIS == HIGH & & BedDS == faible) {/ / vérifier les postes
digitalWrite (cantonnement, Ontario) ; } //Bed descend vers la position maison
Si (BedDS == HIGH) //Check position {
digitalWrite (cantonnement, OFF);} Arrêter le lit en Position basse
}