Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 15 cze 2025, o 01:42


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 26 lis 2014, o 19:01 
    Offline
    Nowy

    Dołączył(a): 16 lis 2014
    Posty: 6
    Pomógł: 0

    Witam!
    Od kilku dni tworzymy ze znajomymi linefolower'a i mam problem...
    Otóż nie mogę za diabła znaleźć jak sterować silnikiem. Używam C++ w AtmelStudio, tworze amatorskie gry w 2D, ale z robotyką stykam się pierwszy raz. Mógłby ktoś podrzucić jakiś poradnik jak ustawić silnik, albo to wytłumaczyć? Potrafię zrobić już migającą diodę i odczytać czy czujnik łapie linię... Znaczy chyba umie, bo mam tak bystrych znajomych że przez nich programuję na ślepo, bez możliwości sprawdzenia czy działa... Tak czy inaczej chodzi mi głównie o sterowanie PWM i jak skonfigurować wejście + i -. Tylko proszę, bez technicznych zwrotów, bo jestem niezłym programistą, ale na elektronice nie znam się ani trochę.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lis 2014, o 19:52 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 09 kwi 2013
    Posty: 22
    Pomógł: 1

    Do wysterowania silnika DC potrzebujesz mostka H.
    W skrócie jest to układ 4 tranzystorów.

    Aby silnik zaczął się obracać, musisz "włączyć" tranzystory w odpowiedniej sekwencji:

    S1 i S2 - silnik obraca się w jedną stronę.
    S3 i S4 - silnik obraca się w drugą stronę.

    Tak naprawdę możesz połączyć bazy tranzystorów w tych parach powyżej i do sterowania silnika używać tylko dwóch pinów uC.
    Dwa silniki? Dwa mostki H :)

    Migasz diodą, więc prędkość obracania wirnika możesz regulować poprzez... odpowiednie zmienianie stanów na pinach mikrokontrolera.
    Takie pseudo programowe PWM. Najprostsze rozwiązanie .

    Oczywiście możesz od razu użyć sprzętowego PWM, ale powoli. Popróbuj na pinach, łopatologicznie.
    Poćwiczcie płynną zmianę prędkości obrotów silnika, kierunków obrotu.

    A sam algorytm sterowania linefollowerem wyjdzie w praniu :)

    Obrazek

    Edit:
    Poprawione zdjęcie.



    Ostatnio edytowano 26 lis 2014, o 20:01 przez majjki, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lis 2014, o 19:59 
    Offline
    Nowy

    Dołączył(a): 16 lis 2014
    Posty: 6
    Pomógł: 0

    Mostki i wszystko chyba jest, ja się nie znam. Chodzi mi o czyste programowanie. bo włączenie diody to zmiana z 0 na 1, a jeśli chodzi o PWM to dochodzi jeszcze skala i tu zaczynają się problemy



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lis 2014, o 20:05 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 09 kwi 2013
    Posty: 22
    Pomógł: 1

    Napisałem jak to wygląda ogólnie. Jak ma działać program w Waszym przypadku - pokażcie schemat.
    To, czy jest chyba, czy na pewno, to ma znaczenie :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lis 2014, o 22:05 
    Offline
    Nowy

    Dołączył(a): 16 lis 2014
    Posty: 6
    Pomógł: 0

    Obrazek

    Chyba to to, ja nie rozumie schematów, ja jestem tu od programowania



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 lis 2014, o 16:09 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 09 kwi 2013
    Posty: 22
    Pomógł: 1

    Aktywujesz wyjścia (atmega) na silniki pinami PD7 i PB0. Obydwa na stan wysoki.
    Teraz interesują Cię piny sterujące kierunkiem obrotu silników, w parach (atmega):

    silnik lewy: PC3 i PC4
    silnik prawy: PC1 i PC2

    Obrazek

    Obrazek

    Jak płynnie zmieniać prędkość obrotową silników (miękki start/stop)?
    Przy tym podłączeniu musisz zastosować programowy PWM:
    Zakładamy, że kręcisz jednym silnikiem, w jedną stronę.
    Stan wysoki na jednym z pinów (np. PC2) jest wysoki, więc silnik kręci się z max prędkością.
    Teraz spójrz:

    Obrazek

    W krótkim okresie czasu ustawiasz stan wysoki, po chwili niski, i tak w kółko...
    W sensie - migasz jak diodą, tylko zamiast diody masz cewkę silnika a po drodze jeszcze l298, ale to nie ma znaczenia :)
    Logika jest taka sama.

    Powiel to teraz 4x i będziesz sterował 4 kierunkami dwóch silników.

    Może być tak, że przy małej wartości wypełnienia silnik w ogóle nie ruszy, bo wartość średnia prądu dla danego okresu będzie za niska, dlatego dla testów stosujcie wypełnienie >50/60%.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 lis 2014, o 19:15 
    Offline
    Nowy

    Dołączył(a): 16 lis 2014
    Posty: 6
    Pomógł: 0

    Aha, już rozumiem, wielkie dzięki!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO