• 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
Sterowanie silnikiem-kilka funkcji
#1
Witam wszystkich. Mam na imię Daniel, i Arduino zajmuję się od niedawna. Przyszedł mi do głowy pomysł projektu, w którym wykorzystał bym moduł zdalnego sterowania oraz Arduino. Moduł RC to prosty układzik wyciągnięty z zabawkowego samochodu, który działał na zasadzie O/I. Zamysł był taki, by układ RC podłączyć do wejść cyfrowych w Arduino, Który miał by zliczać impulsy i konwertować je na stopnie wychylenia serwa, w moim przypadku prędkość silnika. Silnik sterowany jest regulatorem modelarskim, który działa na takiej samej zasadzie jak serwo. Po podłączeniu układu, napisaniu i wgraniu kodu wszystko działa jak należy. Arduino w zależności od sygnału (pin 0 jazda do przodu, pin 1, stopniowe zatrzymanie) odejmuje lub dodaje impulsy, przelicza na stopnie i steruje silnikiem. Problem tkwi w tym, że aby cały układ zareagował na przyciśnięcie przycisku na pilocie, przycisk trzeba trzymać wciśnięty około 3-4 sekundy. To tylko silnik, do tego dojdzie jeszcze kierunek (taka sama zasada działania) i czujnik odległości, (po dojechaniu do przeszkody, auto ma się zatrzymać i zawrócić). Jaka jest możliwość zmniejszenia czasu czekania na efekt? dziękuję za wszelkie porady.
mój kod:

Kod:
#include <Servo.h> //Biblioteka odpowiedzialna za serwa
 
Servo silnik;
int RUCH = 0;
int PRZOD = 0;
void setup()
{  
 silnik.attach(6);
 pinMode(0, INPUT_PULLUP);
 pinMode(1, INPUT_PULLUP);
 silnik.write(180);
 delay(2000);
 silnik.write(0);
 delay(2000);
}

void loop(){
if (  digitalRead(0) == LOW) { // jeśli przyciśnięte, dodaj 10 do ruchu
 RUCH = 10 + RUCH;
} else {
 RUCH= RUCH;
}
if (  digitalRead(1) == LOW) { // jeśli przyciśnięte, odejmij 10 od ruchu
 RUCH = RUCH - 10;
} else {
 RUCH = RUCH;
}
PRZOD = map(RUCH, 0, 5, 90, 180); //przelicz na stopnie
delay(200);
silnik.write(PRZOD); // poruszaj silnikiem
delay(200);
}

Ps.: Linijki poruszające silnikiem w funkcji setup, służą do zalogowania się regulatora.
 
Odpowiedź
  


Wiadomości w tym wątku
Sterowanie silnikiem-kilka funkcji - przez Modelarz_daniel - 16-01-2016, 20:29

Skocz do:


Przeglądający: 1 gości