Witam Chciałbym sie dowiedziec czy ten kod będzie działał tak jak należy czyli: kiedy wcisne przycisk 1 (Sw1) to silnik krokowy bedzie otrzymywał prze tranzystor oczywiscie stan niski co 100ms na inną cewkę co będzie oczywiście powodowało że bedzie się kręcil np. w prawo i co 300 ms będzie sie zapalała dioda led 1 (Ll) $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = Output Portb = &B11111111 Config Portd = Input Portd = &B1111111 Sw1 Alias Pind.1 Sw2 Alias Pind.2 C1 Alias Portb.1 C2 Alias Portb.2 C3 Alias Portb.3 Ll Alias Portb.4 Lp Alias Portb.5 Do Do If Sw1 = 0 Then Ll = 0 Waitms 100 C1 = 0 C2 = 1 C3 = 1 Waitms 100 C1 = 1 C2 = 0 C3 = 1 Waitms 100 C1 = 1 C2 = 1 C3 = 0 End If Loop Do If Sw2 = 0 Then Lp = 0 Waitms 100 C1 = 1 C2 = 1 C3 = 0 Waitms 100 C1 = 1 C2 = 0 C3 = 1 Waitms 100 C1 = 0 C2 = 1 C3 = 1 End If Loop Loop
|
|||
Re: Kod
drugie pętle do loop wewnątrz tej głównej sa niepoprawne.... nigdy nie wykona się ta druga pętla do loop bo program będzie krążył cały czas w tej pierwszej. Poza trym nie wiem jakim silnikiem chcesz sterować co ma 3 cewki. Może czegoś nie wiem ale takiego jeszcze nie widziałem.
Poza tym to trzeba sprawdzić w praktyce, z kodu wynika że dioda led Ll zawsze będzie się świeciła, stan 0 będzie zawsze
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Co do diody to jest to bez
Co do diody to jest to bez znaczenia chcialem zyby mrugla kiedy silnik wykona jeden obrót ale jesli tak nie bedzie to to nie bedzie problem.
Co do sterowania to jak najlepiej zorganizowac sterowanie silnikiem krokowym.
Co do cewek to sie pomylilem chodzilo o 6 cewek.
Jestem początkujący w BASCOM.
Re: Silnik krokowy
Poczytaj najpierw informacje o silnikach krokowych http://www.wobit.com.pl/download/pdf/silniki/podstawowe%20informacje.pdf dodatkowo był jeszcze cykl artykułów w EdW na ten temat. Ile twój silnik ma wyprowadzeń? Może chodziło Ci o 6 wyprowadzeń? skąd masz taki silnik? daj link do opisu lub napisz gdzie kupiłeś lub z czego wymontowałeś? Od typu silnika zależy jego sterowanie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Moj silnik ma 4 wyprowadzenia
Moj silnik ma 4 wyprowadzenia (1 minus i 3 do cewek)dal mi go kumpel ale nie pamieta z czego to silnik. Ma ok. 2,5-3cm. średnicy i ok 3 dlugosci
czy taki kod bedzie
czy taki kod bedzie poprawny
Re: Silnik krokowy
Po pierwsze zacznij od programu, który w pętli głównej ma:
Po co próbujesz oprogramować przyciski diody i wszystko na raz jak nawet jedna z tych rzeczy nie chce Ci działać. Trzeba zrobić to pokolei. Poza tym na waitach możesz napisać sobie taki programik jak dałem Ci wyżej. Cokolwiek innego chcesz dodać to będzie do kitu. każdy wait wstrzymuje działanie programu i jak dioda Będzie Ci zaświecać to silnik bedzie czekał. Trzeba to zrobić na timerach, pomogę ci to napisać ale najpierw musisz mi powiedzieć więcej na temat tego silnika.
Po pierwsze czy mierzyłeś miernikiem wyprowadzenia silnika i faktycznie są to trzy cewki zwarte w jednym punkcie a nie np dwie oddzielne cewki? Czy podłaczałeś silnik do napięcia i pokolei za pomocą przewodu (dotykając do wyprowadzeń silnika)podawałeś napięcia na cewki aby sprawdzić czy silnik się przekręca?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Quote:Czy podłaczałeś silnik
A jesli chodzi o diode to mogę ją sobie odpuscic. A jak by to zrealizowac na timerach i dlaczego tak nie moze byc???
Re: Silnik Krokowy
Na początek może być za pomocą wait, ale jeśli będziesz chciał uzyskać jakąkolwiek precyzję lub dołożyć do programu cokolwiek innego, np odczytywanie stanu klawiatury, która coś robi, sprawdzanie stanów na innych pinach i wyświetlanie czegoś to będzie problem ....
Na początek uruchom program w wersji najprostszej tak jak opisałem wyżej, potem dodasz sprawdzanie przycisku i zobaczysz czy działa. Na koniec dodasz dwa przyciski z dwoma kierunkami obrotu:
Przyciski powinny działać (zwieranie do masy) w Do loop tak jak pisałeś wcześniej:
Pamiętaj że przy takim zapisie waitms 100 jeden krok silnika trwa długo w zależności od tego ile jest kroków na obrót da Ci to jeden obrót na kilka - kilkanaście sekund
Tak na marginesie nikt nie powiedział że na waitach nie może być, tylko pisząc coś odrobine bardziej złożonego zobaczysz sam że jest to niewygodne i dlatego od razu mówię że trzeba się przyzwyczajać do timerów i przerwań.
Narazie wypróbuj te różne fragmenty programu i napisz czy się to wogóle kręci, potem możesz zmniejszyć waitms 100 na 50 i zobaczyc czy przyspieszył dwukrotnie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam Zrobiłem to i
Witam
Zrobiłem to i podłaczyłęm silnik i wszystko ladnie pykało tylko potem dałem 50ms i silnik wydawał sie krecic szybciej i płynniej na 100ms "skakał".
Teraz chciałbym przerobic kod zeby sterowac szybkością tylko nie wiem jak wyelminować to "skakanie".
I jak zrealizowac timery ponieważ na razie ich za bardzo nie rozumiem..
Re: Silnik krokowy
Silnik krokowy zawsze będzie skakał, czym dasz mniejsze opóźnienie tym wydaje się że płynniej działa, bo nie widzisz kroków. Możesz jeszcze spróbować sterowania półkrokowego, gdzie zasilane są jedna lub dwie cewki naraz. To znaczy zasilana jest pierwsza cewka, potem pierwsza i druga potem druga, druga i trzecia, trzecia, trzecia i pierwsza, pierwsza..... itd. Nie wiem czy dla twojego silnika takie sterowanie będzie dobre ale warto spróbować.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Zrobilem tak jak powiedziales
Zrobilem tak jak powiedziales i silnik dzialal bardzo dobrze, z dioda sobie tez poradzilem w ten sposob ze gdy na c1 jest 0 wtydy zapala dioda, na razie dla moich potrzeb i tak to wystarczy.
Dzieki za wszystkie posty mirley.
Re: Silnik krokowy
Pamiętaj tylko że jeśli idą dwie cewki naraz to pobór prądu jest większy, ale jednocześnie silnik może więcej uciągnąć, ma większy moment obrotowy. Różnica jest znaczna... a przynajmniej w takich silnikach z czterema cewkami.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam. Przystosowałem kod z
Witam.
Przystosowałem kod z pierwszego postu do swoich potrzeb. Tyle ,że potrzebuję aby silnik zatrzymywał się kiedy puszczę Sw1/Sw2 i ruszał dalej od tego miejsca. Da się w prosty sposób coś dopisać czy trzeba napisać program bardziej skomplikowany od nowa? Szukałem w necie ale nie znalazłem nic interesującego , a samodzielne próby dopisania kodu wywalały błędy.
Prawie mi się udało. Oto
Prawie mi się udało. Oto fragment kodu
Kręci w jedną stronę jak trzeba, a w drugą cofa tylko do momentu gdy Sw1=0 i się zatrzymuje. Próbowałem różnych kombinacji ale nie działa. Jaki warunek trzeba jeszcze dopisać? Czy robić to przez polecenie case ?
Re: KOD
Sprawdź tak:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Pomogło. Mam jeszcze jakieś
Pomogło. Mam jeszcze jakieś skoki i brzęczy na postoju ale najważniejsze że działa tak jak chciałem. Spróbuje jeszcze dokleić impulsator bo sterowanie potencjometrem to dla mnie za wiele. Obecnie wygląda tak
Dziękuję za podpowiedź.