push button i czujnik halla problem z uruchomieniem - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Jak zacząć z Arduino (https://forum.arduinopolska.pl/dzial-jak-zacz%C4%85%C4%87-z-arduino) +--- Wątek: push button i czujnik halla problem z uruchomieniem (/watek-push-button-i-czujnik-halla-problem-z-uruchomieniem) |
push button i czujnik halla problem z uruchomieniem - PrzemazK - 11-01-2019 Cześć, czy może mi ktoś podpowiedzieć jak powinna wyglądać pętla loop żeby wystartować poniższe, za pomocą przycisku?? #include <AccelStepper.h> const int hallSensorPin = 8; // initialize the stepper library on pins 8 through 11: AccelStepper stepper1(1, 2, 3); void setup() { home(); boolean stan=0; } void home() { stepper1.setMaxSpeed(200); stepper1.moveTo (10000); stepper1.setSpeed(200); while (digitalRead(hallSensorPin) != 0) { stepper1.runSpeed(); } void loop(){ /* * ?????? * */ } RE: push button i czujnik halla problem z uruchomieniem - kaczakat - 11-01-2019 Dodaj sobie zmienną np. int, naucz się obsługiwać przycisk tak by wciśnięcie było prawidłowo rozpoznawane, możesz użyć biblioteki bounce2 (podobnych jest na kopy), jak przycisk wciśniesz zmień stan zmiennej na 1, jak zmienna ma wartość 1 ma wchodzić w ifa gdzie pozwalasz silnikowi na ruch if(zmienna) stepper1.run();. Program nie wejdzie do loop jeśli nie wyjdzie z pętli while. Wszystkie metody do klasy masz w pliku keywords.txt. Naucz się która do czego służy. RE: push button i czujnik halla problem z uruchomieniem - PrzemazK - 12-01-2019 dziękuję za pomoc (bounce2), wszystko działa. pozdrawiam RE: push button i czujnik halla problem z uruchomieniem - PrzemazK - 12-01-2019 Cześć, jednak nie do końca działa tak jak bym tego chciał. Naciskam przycisk silnik obraca do momentu włączenia czujnika halla i dalej nic ! Będę bardzo wdzięczny za kolejną podpowiedź #include <AccelStepper.h> #include <Bounce2.h> #define BUTTON_PIN 12 #define LED_PIN 13 int ledState = LOW; Bounce debouncer = Bounce(); const int hallSensorPin = 46; int hallState = LOW; AccelStepper stepper1(1, 2, 3); void setup() { debouncer.attach(BUTTON_PIN, INPUT_PULLUP); // Attach the debouncer to a pin with INPUT_PULLUP mode debouncer.interval(25); // Use a debounce interval of 25 milliseconds pinMode(LED_PIN, OUTPUT); // Setup the LED digitalWrite(LED_PIN, ledState); digitalWrite(hallSensorPin,hallState); } void ruszaj () { stepper1.moveTo (10); } void szukaj() { stepper1.setMaxSpeed(200); stepper1.moveTo (10000); stepper1.setSpeed(200); while (digitalRead(hallSensorPin) != 0) { stepper1.runSpeed(); } stepper1.setCurrentPosition(0); stepper1.stop(); } void loop() { debouncer.update(); // Update the Bounce instance if ( debouncer.fell() ) { // Call code if button transitions from HIGH to LOW ledState = !ledState; // Toggle LED state digitalWrite(LED_PIN, ledState); // Apply new LED state } if (ledState != 0) { szukaj(); delay(20); ruszaj(); } if ((ledState != 0) && (hallState != 0)) { delay(20); ruszaj(); delay(20); szukaj(); } } RE: push button i czujnik halla problem z uruchomieniem - kaczakat - 13-01-2019 Pierwszą podpowiedzią będzie użyj edycji i wstaw podany kod w "code". Druga to zależy, rozumiem, że czujnik halla to jakaś krańcówka, silnik powinien mieć pozwolenie na pracę tylko jeśli punkt docelowy jest w przeciwnym kierunku. Po osiągnięciu obecnego punktu powinieneś też wyzerować pozwolenie na pracę od przycisku. Lub nie, zależy co chcesz by robił. |