Schritt 15: Der CODE
** Dieser Code ist für eine Pro-ag-Designs Bale-Kugel, die mit direktionalen Magnetventile eingerichtet ist
** Dieser Code ermöglicht es Ihnen, Heu abholen, ohne manuell Schalter ** Automated **
** 7 Mikroschalter werden für Ende Anschläge 1/0ff/on Kippschalter und 3 Mama/auf/Mom Kippschalter eingesetzt.
** 1 Relaiskarte Steuern 6 Magnete 12VDC @ 5 Ampere
** Dieser Code wurde Ausgangsprodukte von Elijah Koehn Juli 2013.
** Dieser Code wurde aktualisiert 25.09.13 von ___ETK___
*/
Definition von ON und OFF
#define auf 0
#define aus 1
Intiating Pin-Namen
Ausgänge
#define BedUp 7
#define BedDown 8
#define ArmOut 9
#define ArmIn 10
#define LoaderDown 11
#define LoaderUp 12
Eingänge
#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 Zählwerke A5
Variablen werden geändert:
Variable für das Lesen des Schaltzustand
Int-Reisen = 0; Schalter für Homeing BaleScoop ** Reisen-Modus **
Int Felder = 0; Automatisch abholen Ballen ** Feld Modus **
Int BaleCS = 0; 5. Ballen Schalter
Int BaleEngagedS = 0; Ballen im Loader
Int LoaderUS = 0; Lader ist Position
Int LoaderDS = 0; Lader ist Position
Int ArmIS = 0; Schaufel ist im geschlossenen Zustand
Int ArmOS = 0; Scoop ist in geöffneter position
Int BedDS = 0; Bett befindet sich in Position
void setup() {}
Deaktivieren alle Relais beim Start so gibt es Bewegung von balescoop
DigitalWrite (LoaderUp, OFF);
DigitalWrite (LoaderDown, OFF);
DigitalWrite (ArmIn, OFF);
DigitalWrite (ArmOut, OFF);
DigitalWrite (BedDown, OFF);
DigitalWrite (BedUp, OFF);
initialisieren Sie alle Magnete als Ausgänge
PinMode (LoaderUp, OUTPUT);
PinMode (LoaderDown, OUTPUT);
PinMode (ArmIn, OUTPUT);
PinMode (ArmOut, OUTPUT);
PinMode (BedDown, OUTPUT);
PinMode (BedUp, OUTPUT);
alle Schalter als Eingänge initialisieren
PinMode (AutoCloseB, Eingabe);
PinMode (AutoPickUpB, Eingabe);
PinMode (ArmInS, Eingabe);
PinMode (ArmOutS, Eingabe);
PinMode (BaleInS, Eingabe);
PinMode (LoaderDownS, Eingabe);
PinMode (LoaderUpS, Eingabe);
PinMode (BedDownS, Eingabe);
PinMode (Zählwerke, Eingabe);
}
void loop() {}
Lesen Sie den Zustand der Switch-Werte:
Felder = digitalRead(AutoPickUpB);
Reisen = digitalRead(AutoCloseB);
LoaderUS = digitalRead(LoaderUpS);
LoaderDS = digitalRead(LoaderDownS);
ArmIS = digitalRead(ArmInS);
ArmOS = digitalRead(ArmOutS);
BedDS = digitalRead(BedDownS);
BaleEngagedS = digitalRead(BaleInS);
BaleCS = digitalRead(BaleCounterS);
Feild Modus
Schritt 1
Macht sicher Loader ist Weg
Wenn (Felder == HIGH & & ArmOS == LOW & & LoaderUS == LOW) {//Check Positionen
DigitalWrite (LoaderUp, ON);} Lader nach oben geht.
Wenn (LoaderUS == HIGH) {//Check Position
DigitalWrite (LoaderUp, OFF);} Lader-Stopps in Position
Schritt 2
Macht Armschwung
Wenn (Felder == HIGH & & ArmOS == LOW & & LoaderUS == HIGH & & BaleEngagedS == LOW) {//Check Positionen
DigitalWrite (ArmOut, ON);} Arm schwingt
Wenn (ArmOS == HIGH) {//Check Position
DigitalWrite (ArmOut, OFF);} Haltestellen Arm in Position
Schritt 4
Bett bringt unten Home position
Wenn (Felder == HIGH & & LoaderUS == HIGH & & ArmOS == HIGH & & BedDS == LOW) {/ / Positionen
DigitalWrite (BedDown, ON); } //Bed sinkt auf home Position
Wenn (BedDS == HIGH) {//Check Position
DigitalWrite (BedDown, OFF);} Bett in Position nach unten zu stoppen
Schritt 5 Wiederholungen unbebaut voll
Loader, bereit um Position nach unten bringt
Wenn (Felder == HIGH & & ArmOS == HIGH & & LoaderUS == HIGH & & LoaderDS == LOW & & BaleCS == LOW & & BedDS == HIGH) {//Check Positionen
DigitalWrite (LoaderDown, ON); / * Verzögerung (2000); DigitalWrite (LoaderDown, OFF); Verzögerung (2000); * /} //Loader untergeht
Wenn (LoaderDS == HIGH) {//Check Position
DigitalWrite (LoaderDown, OFF);} Haltestellen-Loader in Position
Schritt 6 Wiederholungen unbebaut voll
Wenn sich Ballen im Lader, erhebt Lader
Wenn (Felder == HIGH & & ArmOS == HIGH & & LoaderUS == LOW & & BaleEngagedS == HIGH & & BedDS == HIGH) {//Check Positionen
DigitalWrite (LoaderUp, ON);} Loader geht nach oben und wiederholt Schritt 3
Schritt 7
Sobald 5thBale Schalter aktiviert ist, Loader packt 1 mehr Ballen und stoppt in der neuesten Stelle
Schaukeln zu schöpfen, Kährs und Haltestellen in ** Travel Modus **
Wenn (Felder == HIGH & & ArmIS == LOW & & BaleCS == HIGH & & LoaderUS == HIGH & & BaleEngagedS == HIGH) {//Check Positionen
DigitalWrite (ArmIn, ON);} Arm geht in
Wenn (ArmIS == HIGH) {//Check Position
DigitalWrite (ArmIn, OFF);} Haltestellen zu bewaffnen Schließstellung
Auto-Nähe ** Travel Modus **
Schritt 1
Lader erhebt, so dass es nicht Arm getroffen
Wenn (reist == HIGH & & LoaderUS == LOW) {/ / Positionen
DigitalWrite (LoaderUp, ON); } //If Switch engagiert Raise Lader bis
Wenn (LoaderUS == HIGH) {//Check Position
DigitalWrite (LoaderUp, OFF); } //Stop Loader in Position
Schritt 2
Schwingt Arm, Grundstellung
Wenn (reist == HIGH & & LoaderUS == HIGH & & ArmIS == LOW) {/ / Positionen
DigitalWrite (ArmIn, ON); } //If Switch-engagierte und Loader bis, Swin Arm in
Wenn (ArmIS == HIGH) {//Check Position
DigitalWrite (ArmIn, OFF);} Stop Arm in geschlossener Position
Schritt 3
Bett bringt unten Home position
Wenn (reist == HIGH & & LoaderUS == HIGH & & ArmIS == HIGH & & BedDS == LOW) {/ / Positionen
DigitalWrite (BedDown, ON); } //Bed sinkt auf home Position
Wenn (BedDS == HIGH) {//Check Position
DigitalWrite (BedDown, OFF);} Bett in Position nach unten zu stoppen
}