• 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
Bieżnia na Arduino
#1
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 [Obrazek: icon_wink.gif]
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?
 
Odpowiedź
#2
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
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ę
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości