Sterownik łódki elektrycznej

Chciałbyś coś zrobić, ale nie wiesz jak? Pytaj śmiało.
ODPOWIEDZ
gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Sterownik łódki elektrycznej

Post autor: gwidon » 2 wrz 2015, 15:27

Witam.
Ostatnio znajomy poprosił mnie o zrobienie sterownika do łódki elektrycznej - takiej dla dzieci.
Chodziło o to, że po naciśnięciu przycisku łódka miała działać przez 5 minut a potem się wyłączyć do momentu kolejnego wciśnięcia przycisku. Później pojawił się pomysł zastąpienia przycisku modułem RFID RC522.
Wykonanie wydawało się łatwe. Układ zmontowany na płytce prototypowej działał bez zarzutu ale kiedy podłączyłem go do łódki zaczęły się problemy.
Oryginalnie silnik był połączony z akumulatorem poprzez przekaźnik 12V 40A. Niestety moje próby podłączenia sterownika tak, aby podawał napięcie z akumulatora na cewkę oryginalnego przekaźnika nie odniosły spodziewanego rezultatu. Przy załączeniu układu dochodziło do jakichś zakłóceń i układ się wyłączał. Później przeczytałem, że podczas załączenia cewki przekaźnika powstaje bardzo duże napięcie chwilowe, które jest skierowane przeciwnie do płynącego prądu i to może powodować zakłócenia.
Zdecydowałem się wyrzucić oryginalny przekaźnik i zastąpić go modułem przekaźnika do arduino SRD-05VDC-SL-C. Jako że dopiero zaczynam przygodę z elektroniką to wydawało mi się, że lepiej kupić gotowy moduł, który powinien być już odpowiednio zabezpieczony. Użyłem takiego właśnie modułu, ponieważ znajomemu zależało na czasie a ja nie miałem innego.
Wszystko wyglądało w porządku po około godzinie ciągłej pracy nic się nie grzało i nie było żadnych problemów. Niestety okazało się, że przy takim połączeniu układ co jakiś czas sam się włączał. Wyglądało to tak, że po 5 minutach następowało wyłączenie silnika i od razu samoczynne załączenie na kolejne 5 minut po tym czasie zwykle następowało wyłączenie prawidłowe.
Udało mi się kupić przekaźnik 30A SLA-05VDC-SL-C.
Pytanie: czy taki układ będzie działał prawidłowo? Czy powinienem coś dodać - może jakiś bezpiecznik (oryginalnie nie było żadnego)?

Wklejony schemat połączeń jest poglądowy. Nie miałem kilku części w bibliotece i jakoś musiałem sobie poradzić. Szczególnie podłączenie przekaźnika jest inne ponieważ jak już pisałem posiadam gotowy moduł.

Uwaga co do silnika: Niestety nie wiem co to za silnik. Zadzwoniłem nawet do sprzedawcy ale on też nie wiedział...
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Re: Sterownik łódki elektrycznej

Post autor: gwidon » 3 wrz 2015, 11:03

Nikt nie ma pomysłu?
To może jeszcze jedno pytanie:
Jeślibym chciał zamiast przycisku zastosować RFID RC522 to pojawi się taki problem, że użyte przeze mnie Arduino Pro Mini nie ma wyjścia 3,3V. Chciałem podłączyć to wykorzystując stabilizator napięcia LM1117T 3,3V (posiadam kilka takich) - napięcie poszłoby z VCC Arduino. Czy to dobre rozwiązanie? Czy może zastosować zwykły rezystor?
maglo18
Majsterkowicz
Posty: 119
Rejestracja: 25 wrz 2013, 12:06

Re: Sterownik łódki elektrycznej

Post autor: maglo18 » 3 wrz 2015, 15:54

Po co Ci stabilizator 12v i podłącznie do RAW? Daj od razu stabilizator 5V i podłącz do Vin. Tak rozwiązanie ze stabilizatorem na 3,3v jest dobre. Ja bym zastosował bezpiecznik pomiędzy akumulatorem a zasilaniem reszty w razie zwarcia spali bezpiecznik.
gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Re: Sterownik łódki elektrycznej

Post autor: gwidon » 8 wrz 2015, 13:46

Dzięki za odpowiedź.
Metodą prób i błędów doszedłem do tego, że błędy sterownika wynikają ze skoków napięcia zasilania.
Po podłączeniu sterownika jeśli szybko wyłączę i włączę zasilanie to sterownik zachowuje się tak samo jakby dostał sygnał i załącza przekaźnik. Bardzo to dziwne, ponieważ układ zasilany jest z akumulatora 12V oraz dodatkowo zastosowałem przetwornicę step down i ustawiłem ją na 9V.
Wydaje mi się, że w taki sam sposób powstają zakłócenia napięcia przy wyłączaniu silnika i przez to sterownik włącza się kiedy nie powinien.
Może ktoś wie w jaki sposób wyeliminować zakłócenia?
gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Re: Sterownik łódki elektrycznej

Post autor: gwidon » 15 wrz 2015, 19:41

Witam ponownie.
Wpis dotyczy trochę innego sterownika niż w temacie ale pasuje ponieważ objawy są dokładnie takie same.
Zrobiłem mały układ oparty na Arduino Pro Mini (klon). Tym razem nie korzystałem z gotowych modułów ale zrobiłem wszystko od początku do końca. Chodziło głownie o to, że było podejrzenie że arduino nie jest w stanie wydolić z zasilaniem przekaźników. Zakupiłem więc przekaźniki 12v 15A i podłączyłem zasilanie bezpośrednio z zasilacza (sterowane przez MOSFET i zabezpieczone optoizolacją).
Dodatkowo zmieniłem sygnał wejściowy z "masy" na +5v z arduino (piny wejściowe z INPUT_PULLUP na INPUT no i oczywiście podłączenie zgodnie ze wzorem na stronie arduino.cc).
Niestety problem samozałączania pozostał. Do tego zauważyłem, że do załączenia układu wystarczy, że dotknę drucikiem pinu odpowiedzialnego za załączanie - wcale nie muszę podawać tam napięcia. Do tego wystarczy, że podłączę jakikolwiek drucik do pinu wejściowego i dotknę go palcem a on się zachowuje jakby dostał impuls. Nie potrafię tego zrozumieć.
Czy może mi ktoś wyjaśnić dlaczego to tak działa?

To jest moja druga płytka, więc proszę o wyrozumiałość. W trakcie montażu sam zauważyłem kilka błędów.
Arduino powinno załączać przekaźniki jeśli widoczne na górze zdjęcia złącza zaciskowe zostaną zwarte odpowiednio według stron (lewe złącze załącza lewy przekaźnik itp.). Niestety załączenie następuje nawet kiedy przykręcę drucik do jednego pinu i go dotknę.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Re: Sterownik łódki elektrycznej

Post autor: gwidon » 15 wrz 2015, 22:43

Wysmarowałem nawet schemat. Może ktoś zechce zajrzeć i sprawdzić dlaczego to nie działa?
Pro Mini Sterownik Pomp przek 12v ver.3.pdf
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Sterownik łódki elektrycznej

Post autor: stiven » 16 wrz 2015, 16:02

gwidon pisze: Po podłączeniu sterownika jeśli szybko wyłączę i włączę zasilanie to sterownik zachowuje się tak samo jakby dostał sygnał i załącza przekaźnik. Bardzo to dziwne
A ustawiasz w setup stan na pinach sterujących przekaźnikami jaki ma być po włączeniu arduino? Nie zawsze po włączeniu jest stan niski, czasami może być wysoki, dlatego jeśli chcesz, żeby na pewno był stan niski, no to trzeba w setup ustawić.
gwidon pisze: Do tego wystarczy, że podłączę jakikolwiek drucik do pinu wejściowego i dotknę go palcem a on się zachowuje jakby dostał impuls. Nie potrafię tego zrozumieć.
Robiąc odczyty na pinie analogowym można zauważyć, że po podłączeniu jakiegoś przewodu do pinu zwiększają się odczytywane wartości (bez przewodu też nie jest dokładnie 0). Jak się dotknie ręką, to jeszcze większe są a tym bardziej jak ty masz taki drucik nieizolowany. Taki przewód po prostu zachowuje się jak antena. Chyba dodanie kondensatora na taki pin mogłoby zmniejszyć ten efekt.
No i chyba przydałby się program, bo pisałeś wcześniej o zmianach, które dzieją się co 5 minut. To tak wygląda jakby w programie to było tak napisane.
gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Re: Sterownik łódki elektrycznej

Post autor: gwidon » 16 wrz 2015, 19:10

Masz rację stiven rzeczywiście należałoby wstawić program.

Kod: Zaznacz cały

int button1 = 10; 
int button2 = 9; 
int relay1 = 3; 
int relay2 = 2; 
int buttonState1 = HIGH; 
int buttonState2 = HIGH; 
unsigned long relay1Time = millis(); 
unsigned long relay2Time = millis(); 

void setup() { 
  pinMode(button1, INPUT); 
  pinMode(button2, INPUT); 
  pinMode(relay1, OUTPUT); 
  pinMode(relay2, OUTPUT); 

  digitalWrite(relay1, LOW); 
  digitalWrite(relay2, LOW); 

} 

void loop() { 
 buttonState1 = digitalRead(button1); 
  if(buttonState1 == HIGH) { 
    delay(25); 
    digitalWrite(relay1, HIGH); 
    relay1Time = millis() + 10000; 
  } 
   if(buttonState1 == LOW) { 
    if(millis() >= relay1Time){ 
        digitalWrite(relay1, LOW); 
      } 
  } 
  
  
  buttonState2 = digitalRead(button2); 
  if(buttonState2 == HIGH) { 
    delay(25); 
    digitalWrite(relay2, HIGH); 
    relay2Time = millis() + 10000; 
    } 
  if(buttonState2 == LOW) { 
    if(millis() >= relay2Time) { 
      digitalWrite(relay2, LOW); 
      } 
  } 
}
Zaznaczam tylko, że w ostatnim wpisie poruszyłem temat trochę innego sterownika, niż w temacie. Różnica polega na tym, że w tym przypadku próbuję załączać silnik elektryczny na prąd zmienny 230V. Zrobiłem próbę na wentylatorze pokojowym i objawy są identyczne. Dodatkowo użyłem Arduino Uno, żeby sprawdzić czy to przypadkiem nie błąd kontrolera - objawy pozostały.
Jak się dotknie ręką, to jeszcze większe są a tym bardziej jak ty masz taki drucik nieizolowany. Taki przewód po prostu zachowuje się jak antena. Chyba dodanie kondensatora na taki pin mogłoby zmniejszyć ten efekt.
Wydawało mi się, że przy pinmode INPUT pin powinien reagować na podanie napięcia. Niestety dopiero się uczę i nie wszystko ogarniam.
Bardzo fajny pomysł z tym kondensatorem. Jak myślisz jaki zastosować?

Pozdrawiam.
gwidon
Młodszy majsterkowicz
Posty: 9
Rejestracja: 30 lip 2015, 23:11

Re: Sterownik łódki elektrycznej

Post autor: gwidon » 20 wrz 2015, 08:57

Kolego stiven. Przetestowałem pomysł z dodatkowym rezystorem i działa :) Bardzo dziękuję za pomysł.
Płytkę testowałem na wentylatorze i nie było żadnych zakłóceń w pracy urządzenia. Jutro podłączę wszystko w miejscu docelowym.

Odnośnie dotykania pinów czytałem, że jest to częsty błąd nowincjuszy :) Ogólnie nie należy tego robić, ponieważ można w skrajnym przypadku uszkodzić mikrokontroler.
Pozdrawiam.
ODPOWIEDZ

Strony partnerskie: