• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem ze sterowaniem silnika krokowego
#1
Cześć Smile
Nie ukrywam faktu iż w Arduino jest stosunkowo nowym aspektem moich poczynań. 
Stworzyłem stosunkowo prosty układ. Arduino UNO, ULN2003 do sterowania silnikiem krokowym (w moim przypadku 28byj-48) oraz krańcówka. Układ ma za zadanie wykonywać ciągły obrót silnika, jednak w przypadku naciśnięcia krańcówki ma się zatrzymać na określony czas (jak narazie zadałem 2 sekundy) a następnie wykonywać dalej obrót. Jednak... założenie jest takie, że krańcówka pozostaje dalej wciśnięta. Napisałem kod:
#include <Stepper.h>
#define KROKI 32
Stepper Silnik(KROKI,8,9,10,11);
void setup() {
  // put your setup code here, to run once:
pinMode(6,INPUT_PULLUP);
}
void loop() {
  // put your main code here, to run repeatedly:
while (digitalRead(6)==LOW){
Silnik.setSpeed(500);
Silnik.step(1);
}
while(digitalRead(6)==HIGH){
delay(2000);
Silnik.setSpeed(500);
Silnik.step(1);
}
}

Jednak wciśnięcie krańcówki powoduje tylko zatrzymanie się mechanizmu, a chciałbym, żeby mimo wciśniętej krańcówki mechanizm rozpoczął ruch. 
Mam nadzieje że wyczerpująco wytłumaczyłem o co mi chodzi. 
Pozdrawiam i z góry dziekuję za pomoc
 
Odpowiedź
#2
If(krancowka and !zmienna), zmienna=1, delay(2000) i więcej nie wejdzie do tego if by zrobić pauze dopóki nie wyzerujesz zmienna.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości