koristim a988 driver, kojem je enable spojen na pin 3 arduina, a limit switch na pin 2 i koristim njegov interni pullup. (arduino je nano inace, sa ebay-a).
Trenutni dio koda koji pokusavam upogonit je da se motor vrti dok se ne stisne prekidac, i onda ga zaustavi (zato nemam nista u loopu), tj. pin 3 postane high i tako se iskljuci driver i zasvjetli ledica na pinu 13, a situacija je da se motor trenutno vrti cijelo vrijeme bez obzira na stanje prekidaca.
Kod koji koristim (prema onom sta znam c-a sa faxa je):
Code: Select all
const int dirPin = 7;
const int stepperPin = 6;
const int homepolozaj = 2;
const int paljenjeMotora = 3;
const int ledPin = 13;
byte stanje;
void setup() {
pinMode(dirPin, OUTPUT); //smjer
pinMode(stepperPin, OUTPUT);
pinMode(homepolozaj, INPUT); // limitswitch pin 2
digitalWrite(homepolozaj, HIGH); // pali interni pullup
pinMode(paljenjeMotora, OUTPUT); // pali gasi driver pin 3
pinMode(ledPin, OUTPUT); // ledica
pocetak();
}
void loop() {
}
void pocetak () {
digitalWrite(dirPin, HIGH); // promjena smjera
stanje = digitalRead(homepolozaj); // cekam prekidac
while (stanje == HIGH)
{
digitalWrite(stepperPin, HIGH);
delayMicroseconds(40000);
digitalWrite(stepperPin, LOW);
delayMicroseconds(40000);
digitalWrite(ledPin, LOW);
stanje = digitalRead(homepolozaj);
}
digitalWrite(ledPin, HIGH);
digitalWrite(paljenjeMotora, HIGH); // gasi motor
}