Arduino Polska Forum
Problem ze sterowaniem silnika krokowego - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Problem ze sterowaniem silnika krokowego (/watek-problem-ze-sterowaniem-silnika-krokowego)



Problem ze sterowaniem silnika krokowego - Moro_XDDD - 20-12-2021

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


RE: Problem ze sterowaniem silnika krokowego - kaczakat - 21-12-2021

If(krancowka and !zmienna), zmienna=1, delay(2000) i więcej nie wejdzie do tego if by zrobić pauze dopóki nie wyzerujesz zmienna.