Stap 5: Echte code
byte-stepporty; //what deel van de stap naar
byte val = 3; //delay tussen stappen
byte db = 4; / / db, da, pb, pa, en in kunnen alle elke pin behalve pin 7 (digitale PIN2-, andalog-in1) op de standaard pin-layout
die pin moet de klok/stap invoer pin.
DB is out4
byte da = 3; //out3
byte pa = 0; //out1
byte pb = 1; //out2
byte in = 1; //direction invoer pin niet deze verandering
lange dsd = 100; //where willen we de motor te zijn
lange pos; het is //where
VOID Setup {}
Serial.begin(9600);
attachInterrupt (0, graaf, stijgt); //executes "ongeldig count" wanneer pin 7 (interrupt 0) is ingesteld op hoog
pinMode (db, OUTPUT); //sets uitgangen en ingangen
pinMode (da, OUTPUT);
pinMode (pb, OUTPUT);
pinMode (pa, OUTPUT);
pinMode (in, INPUT);
}
void loop {//this alleen gecontroleerd als het moet vooruit of achteruit en dienovereenkomstig verplaatst
Als (dsd! = pos) {}
if(DSD < POS) {}
Back();
delay(val);
}
Als (dsd > pos) {}
FWD();
delay(val);
// }
}}
VOID count() {//this verhoogt de gewenste positie wanneer deze pin wordt gebracht hoog
het moet dezelfde pincode gebruiken omdat
de attiny85 heeft slechts 5 pinnen (hoewel reset kan worden gebruikt als een i/o-pin, het kan niet
worden reprogramed nadat dit is gebeurd.
Als (analogRead(in) > 1) {//this wordt bepaald of richting hoge of lage
dont vragen mij waarom men werkt, maar het doet. Na ongeveer 7 rechte uren trying voor positiebepaling
dit één coderegel, ik niet geven een rat's achter waarom het werkt zolang het doet
DSD-= 1; doorsturen als positief
} else {}
DSD += 1; //backward als zijn niet
}}
VOID fwd() {//both fwd terug figuur welk deel van de stap volgende is en verhogen van de positie
en macht van de motor dienovereenkomstig.
POS ++;
schakelaar (stepporty) {}
Case 0:
One();
stepporty = 1;
breken;
Case 1:
onehalf();
stepporty = 2;
breken;
Case 2:
Two();
stepporty = 3;
breken;
Case 3:
twohalf();
stepporty = 4;
breken;
Case 4:
Three();
stepporty = 5;
breken;
Case 5:
threehalf();
stepporty = 6;
breken;
Case 6:
Four();
stepporty = 7;
breken;
Case 7:
fourhalf();
stepporty = 0;
breken;
} }
VOID back() {}
POS--;
schakelaar (stepporty) {}
Case 2:
One();
stepporty = 1;
breken;
Case 3:
onehalf();
stepporty = 2;
breken;
Case 4:
Two();
stepporty = 3;
breken;
Case 5:
twohalf();
stepporty = 4;
breken;
Case 6:
Three();
stepporty = 5;
breken;
Case 7:
threehalf();
stepporty = 6;
breken;
Case 0:
Four();
stepporty = 7;
breken;
Case 1:
fourhalf();
stepporty = 0;
breken;
} }
ongeldig fourhalf() {}
digitalWrite (db, hoge); //4
digitalWrite (da, laag);
digitalWrite (pb, laag);
digitalWrite (pa, hoge);
}
ongeldig four() {}
digitalWrite (db, hoge);
digitalWrite (da, laag);
digitalWrite (pb, laag);
digitalWrite (pa, laag);
}
ongeldig threehalf() {}
digitalWrite (db, hoge);
digitalWrite (da, hoge);
digitalWrite (pb, laag);
digitalWrite (pa, laag);
}
ongeldig three() {}
digitalWrite (db, laag);
digitalWrite (da, hoge);
digitalWrite (pb, laag);
digitalWrite (pa, laag);
}
ongeldig twohalf() {}
digitalWrite (db, laag);
digitalWrite (da, hoge);
digitalWrite (pb, hoge);
digitalWrite (pa, laag);
}
ongeldig two() {}
digitalWrite (db, laag);
digitalWrite (da, laag);
digitalWrite (pb, hoge);
digitalWrite (pa, laag);
}
ongeldig onehalf() {}
digitalWrite (db, laag);
digitalWrite (da, laag);
digitalWrite (pb, hoge);
digitalWrite (pa, hoge);
}
ongeldig one() {}
digitalWrite (db, laag); //1
digitalWrite (da, laag);
digitalWrite (pb, laag);
digitalWrite (pa, hoge);
}