Bieżnia na Arduino - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Silniki, Mechanika i Zasilanie (https://forum.arduinopolska.pl/dzial-silniki-mechanika-i-zasilanie) +--- Wątek: Bieżnia na Arduino (/watek-bie%C5%BCnia-na-arduino) |
Bieżnia na Arduino - jogo48 - 28-02-2021 Witam wszystkich Próbuję uruchomić bieżnie z uszkodzonym układem sterującym. Jak dotąd utworzyłem taki program: int predkosc = 0; int zmiana = 2; void setup() { pinMode(2,OUTPUT); // W góre pinMode(3,OUTPUT); // W dół pinMode(4,INPUT_PULLUP); // Start/Stop pinMode(5,OUTPUT); // Sterowanie prędkościa silnika PWM pinMode(6,INPUT_PULLUP); // Przycisk w gore pinMode(7,INPUT_PULLUP); // Przycisk w dol pinMode(8,INPUT_PULLUP); // Przycisk Przyspiesz pinMode(9,INPUT_PULLUP); // Przycisk Zwolnij pinMode(10,OUTPUT); //Brzeczek digitalWrite(10, HIGH); // Brak zasilania odlacza bieżnie digitalWrite(2,LOW); // Podnoszenie wylaczone digitalWrite(3,LOW); // Opuszczanie wylaczone digitalWrite(5,LOW); // Silnik wylaczony } void loop() { { if (digitalRead(4) == LOW) { //Jeśli przycisk jest wciśnięty digitalWrite(5, HIGH); //Włączenie silnika } else { //Jeśli przycisk nie jest wciśnięty digitalWrite(5, LOW); //Wyłączenie silnika } while (digitalRead(4) == LOW) { for (int i = 0; i <= 255; i++) { analogWrite(5, i); //Spokojne rozpędzanie silnika delay(25); } //Zatrzymujemy się w pustej pętli do ponownego zamknięcia okna delay(25); //W pętli wprowadzamy małe opóźnienie 25ms, aby niwelować zakłócenia } } { if (digitalRead(6) == LOW) { //Jeśli przycisk jest wciśnięty digitalWrite(2, HIGH); //Włączenie podnoszenia } else { //Jeśli przycisk nie jest wciśnięty digitalWrite(2, LOW); //Wyłączenie podnoszenia delay(2000); } } { if (digitalRead(7) == LOW) { //Jeśli przycisk jest wciśnięty digitalWrite(3, HIGH); //Włączenie opuszczania } else { //Jeśli przycisk nie jest wciśnięty digitalWrite(3, LOW); //Wyłączenie opuszczania delay(2000); } } } Program nie jest skończony gdyż dopiero sie go uczę. A teraz jakie otrzymałem wyniki. Wszystko podłączyłem na próbę przy użyciu równolegle diody aby widzieć czy program reaguje czy nie. Gdy włączę podnoszenie to przełącznik (relay) od podnoszenia się załacza - widać to również na płytce silnika. Ale bieżnia się nie podnosi. Dioda kontrolna zaswieca sie i po chwili gaśnie, ale dioda na sterowniku silnika zaswieca się ale już nie gaśnie. Gdy mostkuje Vref z podnoszeniem rowniez przekaznik się odblokowuje i podnoszenie działa. W przypadku uruchomienia opuszczania sytuacja wyglada identycznie. Arduino ze swoją diodą zaświeca się i gaśnie a sterownik silnika zaświeca się i już nie gaśnie. Gdy robię mostek miedzy Vref i PWM silnik natychmiast startuje. Gdy podłączam arduino do PWM słychać tylko pisk z sterownika silnika i po za tym nic się nie dzieje. No i po tej długiej wypowiedzi czas na pytania Co powinno zostać podłączone pod konkretne piny, aby móc wykorzystać bieżnię z tym sterownikiem? Dlaczego przekaznik sterownika nie wyłącza się razem z sygnałem z Arduino? Czy pisk z sterownika silnika może wynikać z zbyt małej mocy Arduino czy jest to bardziej wina zbyt małego wypałnienia sygnału PWM? RE: Bieżnia na Arduino - kaczakat - 02-03-2021 Nie rób sobie żartów z pogrzebu, na początek zrób jakieś jeżdżące/latające/pływające zabawki. Używanie delay w dynamicznie działającym urządzeniu mogącym złamać komuś rękę nie jest zabawne. RE: Bieżnia na Arduino - jogo48 - 03-03-2021 Nie bardzo rozumiem co złego jest w komendzie delay w tym przypadku. Dynamiczne podnoszenie, czy opuszczanie silnika raczej nie będzie miało miejsca. Dynamiczny start silnika może wystąpić ale nie jeżeli mamy przewidziane przyspieszenie do poziomu 25 z 255 możliwych, a to ja widzę jako 10% prędkości silnika. Tak jak pisałem Arduino ma spełniać rolę tylko i wyłącznie konsoli sterowniczej. Sterownik silnika ma swoje ograniczenia i ustalone prędkości silników oraz czujniki, więc wydaje mi się że całe zadanie dla konsoli to powiedzieć Start/Stop Przyspiesz, Zwolnij, W górę i w dół. A co do złamanej ręki to ryzykuję tylko swoją, ale "jak się nie przewrócisz to się nie podniesiesz" więc ryzykuję |