• 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 DC z komparatorem
#1
Cześć,
Wyciągnąłem ze starych reflektorów silniczki elektrycznej regulacji świateł i próbuję sterować nimi z wykorzystaniem Arduino.
Jest to układ wykorzystujący silniczek DC (12V) oraz posiadający komparator. Idea jego sterowania jest taka, że w aucie znajduje się pokrętło do regulacji, a już sam silniczek posiada układ który w zależności od rezystancji obraca silnikiem w lewo lub prawo i poprzez wbudowany potencjometr na ośce wie jaka jest obecna pozycja, a układ sprawdza czy zgadza się ona z zadaną przez pokrętło.

Układ potrzebuje 3 przewodów - plus 12V, masa oraz sygnał sterujący.
Aby zasymulować jego działanie i ustawienie w odpowiednim położeniu wystarczy połączyć +12V z sygnałem odpowiednim rezystorem (10 omów - trzpień maksymalnie wysunięty, 150 kOm - maksymalnie schowany). Czyli środkowy pin z prawym patrząc na zdjęcie.
Mam problem by "zasymulować" położenie takiego rezystora między pinami z wykorzystaniem Arduino. Korzystałem z tranzystorów, by podać 12V z zasilacza i wykorzystując jeden z rezystorów, ale po podłączeniu silnik tylko nieznacznie się porusza.

Układ sterujący można odłączyć i jest możliwość zostawienia samego silniczka oraz przekładni, która steruje trzpieniem. Myślałem nad zewnętrznym układem, np. L298N, ale wtedy powstaje problem: po wyłączeniu zasilania układ nie będzie pamiętał, w którym miejscu jest trzpień (dlatego skłaniam się do fabrycznego układu). Wymagany byłby potencjometr, tak jak w fabrycznym rozwiązaniu i odczytywanie wskazań.

Załączam jak wygląda cały silniczek poziomowania, oraz samą fabryczną płytkę. Wrzucam też układ który zbudowałem, ale nie działa on prawidłowo. Będę wdzięczny za każdą pomoc.
Pozdrawiam.

[Obrazek: index.php?action=dlattach;topic=695184.0;attach=372902]

[Obrazek: Ccni8Yg.jpg]
[Obrazek: index.php?action=dlattach;topic=695184.0;attach=372834]
 
Odpowiedź
#2
Źle to robisz, sygnał jest sygnałem analogowym 0-12V , wystarczył by transoptor wysterowany w PWM.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
Bingo! Podłączyłem silnik do zasilania oraz korzystając z przetwornicy wpiąłem się między masę i sygnał, regulując napięcie zmieniało się jego położenie. Reagował od 1.5V (minimalne wysunięcie) do 12V (maksymalne). Błędnie i w ciemno założyłem, że łatwo będzie to wysterować tak jak robi to potencjometr w aucie.
Odizolowanie Arduino od zasilania silnika i sterowanie PWMem wydaje się być idealne, bo nie dość że zabezpiecza elektronikę, to zyskam płynną regulację wysunięcia trzpienia.
Spróbuję wykorzystać posiadane tranzystory 2N2222 oraz optoizolator PC817.
Bardzo dziękuję za naprowadzenie, już zaczynam rozumieć jak ten układ miał funkcjonować...
 
Odpowiedź
#4
Myślę że wystarczył by sam PC817 i rezystor po stronie emitera..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#5
Spróbuję też tak zrobić, w tym przypadku silnik będzie zasilany niezależnie, więc nie będę przepuszczał przez układ wyższych prądów, jedynie sygnał sterujący (czyli odpowiednie napięcie).
Chcę jeszcze mieć możliwość włączenia fabrycznego potencjometru przez przełączenie przycisku. Domyślam się, że złym pomysłem byłoby wpięcie się równolegle z tym układem (jednoczesne sterowanie sygnałem przez Arduino i potencjometr pewnie by się kłóciło). Pomyślałem, by korzystając z tranzystora sterować przekaźnikiem samochodowym 12V. Sprawdzałbym stan na wejściu z przyciskiem, a następnie podając napięcie na przekaźnik przełączał sterowanie między optoizolatorem, a pokrętłem. Musiałbym tylko uciąć przewód z sygnałem.
 
Odpowiedź
#6
A po co takie kombinacje, jak oryginalny przycisk to potencjometr zasil go z 5v podłącz do pinu analogowego i odczytuj napięcia i w programie połącz.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#7
Faktycznie to dużo prostsze rozwiązanie i mające szersze możliwości. Ewentualnie jeszcze pomyślałem by zupełnie nie mieszać Arduino w pracę z przełącznikiem. Wystarczy podać na przycisk 12V i po przełączeniu podawać napięcie na cewkę przekaźnika, a następnie skorzystać ze styku NO i NC.
 
Odpowiedź
#8
Złożyłem układ i teoretycznie wszystko jest dobrze - w zależności od wartości sygnału PWM zmienia się napięcie na wyjściu w zakresie 0.11V-14V (podane 14.3V na wejściu). Niestety, w praktyce silnik co prawda pracuje oraz dąży do wskazanego miejsca, ale robi to bardzo wolno i wydaje przy tym przeraźliwy dźwięk (buczenie, piszczenie).
Próbowałem zasilić silnik i układ z innych zasilaczy, jednak nic to nie zmienia (nie jest to problem z niewydolnością zasilacza).
Podłączenie optoizolatora PC817C: anoda - do pinu Arduino przez rezystor 220 omów, katoda do masy Arduino, emiter - do pinu sterującego w silniku z wpiętym szeregowo rezystorem 3.3 kOm do masy silnika, kolektor do +12V.
Może zastosować na wyjściu filtr RC? Być może problem polega w samym PWM, który nie jest wygładzony i przez to sterownik silnika sam nie wie co robić z takim sygnałem?

PS. Dodam jeszcze, że gdy silnik już dotrze we wskazane miejsce, to wykonuje ciągle delikatne ruchy lewo-prawo, nie potrafi się całkowicie zatrzymać, co też skłania mnie w kierunku charakterystyki PWM.
 
Odpowiedź
#9
A jaką częstotliwość masz sygnału? 3.3kOhm to bardzo dużo daj 1kOhm. a nawet i niżej jak trzeba..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#10
Według producenta Nano generuje sygnał o częstotliwości 490 Hz (korzystam z pinu 3).
Użyłem opornika 3.3 kOm, bo przy 220 omach nie mogłem osiągnąć 12V na wyjściu.
Zmieniłem na 1 kOm, potem na 470 omów ale nic to nie zmieniło.
Docelowo zostawiłem 1 kOm oraz zastosowałem na wyjściu z sygnałem filtr RC (100 uF, 1 kOm).
Teraz wszystko działa jak należy, mechanizm pracuje identycznie jakby był sterowany potencjometrem.
Jeszcze raz @Jarewa0606 ogromne podziękowania za pomoc Smile
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości