Microcontrolled jordbruksutrustning (15 / 16 steg)
Steg 15: Koden
** Denna kod är en pro-ag mönster Bale skopa som ställs in med riktad magnetventiler
** Den här koden gör att du kan plocka upp hö utan manuellt verksamma växlar ** Automated **
** 7 mikrobrytare används för slutet stannar 1 på/0ff/på Vippbrytare och 3 mamma/på/mamma vippströmbrytare
** 1 relay board kan kontrollera 6 solenoider 12VDC @ 5 a.
** Denna kod var Patissier av Elijah Koehn juli 2013.
** Denna kod har varit uppdaterad 9/25/13 av ___ETK___
*/
Definiera ON och OFF
#define på 0
#define av 1
Inledande Pin namn
Utgångar
#define BedUp 7
#define BedDown 8
#define ArmOut 9
#define ArmIn 10
#define LoaderDown 11
#define LoaderUp 12
Ingångar
#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
variabler som ändras:
variabel för att läsa Switch status
int resor = 0; Strömbrytare för Homeing BaleScoop ** resa läge **
int fält = 0; Automaticaly plocka upp balarna ** fältet läge **
int BaleCS = 0; 5. bale Switch
int BaleEngagedS = 0; Bale i Loader
int LoaderUS = 0; Lastaren är i position
int LoaderDS = 0; Lastaren är i nere position
int ArmIS = 0; Scoop är i stängt läge
int ArmOS = 0; Scoop är i öppet läge
int BedDS = 0; Sängen är i ner position
void setup() {
Stänga av alla reläer under start så det finns rörelse av balescoop
digitalWrite (LoaderUp, OFF);
digitalWrite (LoaderDown, OFF);
digitalWrite (ArmIn, OFF);
digitalWrite (ArmOut, OFF);
digitalWrite (BedDown, OFF);
digitalWrite (BedUp, OFF);
initiera alla solenoider som utgångar
pinMode (LoaderUp, OUTPUT);
pinMode (LoaderDown, OUTPUT);
pinMode (ArmIn, OUTPUT);
pinMode (ArmOut, OUTPUT);
pinMode (BedDown, OUTPUT);
pinMode (BedUp, OUTPUT);
initiera alla växlarna som ingångar
pinMode (AutoCloseB, indata);
pinMode (AutoPickUpB, indata);
pinMode (ArmInS, indata);
pinMode (ArmOutS, indata);
pinMode (BaleInS, indata);
pinMode (LoaderDownS, indata);
pinMode (LoaderUpS, indata);
pinMode (BedDownS, indata);
pinMode (BaleCounterS, indata);
}
void loop() {
Läs staten Switch värden:
Fält = digitalRead(AutoPickUpB);
Resor = digitalRead(AutoCloseB);
LoaderUS = digitalRead(LoaderUpS);
LoaderDS = digitalRead(LoaderDownS);
ArmIS = digitalRead(ArmInS);
ArmOS = digitalRead(ArmOutS);
BedDS = digitalRead(BedDownS);
BaleEngagedS = digitalRead(BaleInS);
BaleCS = digitalRead(BaleCounterS);
feild läge
Steg 1
Gör säker Loader är ur vägen
om (fält == hög & & ArmOS == låg & & LoaderUS == låg) {//Check positioner
digitalWrite (LoaderUp, ON);} Lastaren går upp
om (LoaderUS == hög) {//Check position
digitalWrite (LoaderUp, OFF);} Loader stopp i position
Steg 2
Gör armsving
om (fält == hög & & ArmOS == låg & & LoaderUS == hög & & BaleEngagedS == låg) {//Check positioner
digitalWrite (ArmOut, ON);} Arm svänger ut
om (ArmOS == hög) {//Check position
digitalWrite (ArmOut, OFF);} Hållplatser arm i ståndpunkt
Steg 4
För sängen ner till hemmet position
om (fält == hög & & LoaderUS == hög & & ArmOS == hög & & BedDS == låg) {/ / kolla positioner
digitalWrite (BedDown, ON); } //Bed går ner till hem position
om (BedDS == hög) {//Check position
digitalWrite (BedDown, OFF);} Stoppa säng i ner Position
Steg 5 repetitioner tills full
Sänker Loader, färdigställning
om (fält == hög & & ArmOS == hög & & LoaderUS == hög & & LoaderDS == låg & & BaleCS == låg & & BedDS == hög) {//Check positioner
digitalWrite (LoaderDown, ON); / * fördröja (2000); digitalWrite (LoaderDown, OFF); fördröjning (2000); * /} //Loader går ner
om (LoaderDS == hög) {//Check position
digitalWrite (LoaderDown, OFF);} Hållplatser Loader i ner position
Steg 6 upprepas tills full
När bale bedriver loader, höjer loader upp
om (fält == hög & & ArmOS == hög & & LoaderUS == låg & & BaleEngagedS == hög & & BedDS == hög) {//Check positioner
digitalWrite (LoaderUp, ON);} Lastaren går upp och upprepar steg 3
Steg 7
När 5thBale switch är engagerade, Loader griper 1 mer bale och stannar i upp position
gungor scoop tillbaka i och stopp i ** Travel Mode **
om (fält == hög & & ArmIS == låg & & BaleCS == hög & & LoaderUS == hög & & BaleEngagedS == hög) {//Check positioner
digitalWrite (ArmIn, ON);} Arm går i
om (ArmIS == hög) {//Check position
digitalWrite (ArmIn, OFF);} Hållplatser-arm stängt läge
Auto nära ** Travel Mode **
Steg 1
Höjer lastat upp så det inte hit arm
om (reser == hög & & LoaderUS == låg) {/ / kolla positioner
digitalWrite (LoaderUp, ON); } //If switch engagerade höja lastat upp
om (LoaderUS == hög) {//Check position
digitalWrite (LoaderUp, OFF); } //Stop loader i position
Steg 2
Gungor Arm till hemmet position
om (reser == hög & & LoaderUS == hög & & ArmIS == låg) {/ / kolla positioner
digitalWrite (ArmIn, ON); } //If switch engagerad och lastat upp, Swin Arm i
om (ArmIS == hög) {//Check position
digitalWrite (ArmIn, OFF);} Stoppa armen i stängt läge
Steg 3
För sängen ner till hemmet position
om (reser == hög & & LoaderUS == hög & & ArmIS == hög & & BedDS == låg) {/ / kolla positioner
digitalWrite (BedDown, ON); } //Bed går ner till hem position
om (BedDS == hög) {//Check position
digitalWrite (BedDown, OFF);} Stoppa säng i ner Position
}