Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

AVR - C - Amatorski pomysł na zdalny regulator obrotów silnika...

Razjelson 28 Gru 2013 19:17 2712 20
  • #1 28 Gru 2013 19:17
    Razjelson
    Poziom 6  

    Witam wszystkich!
    Obmyślam od jakiegoś czasu pewien projekt, a mianowicie układ zdalnego sterowania obrotami silnika. Chcę go zrobic wstępnie na Attiny2313 a program będzie w języku C. Ustaliłem, że do odczytania poziomu napięcia na wejściu można użyć biblioteki ADC i wartości ztabelyzować na bazie np. takiego wzoru:
    ((m/n)^k)*255 ( literówka moja )

    m - liczby całkowite z przedziału od 1 do n
    n - liczba komórek w tabeli
    k - współczynnik od którego zależy nachylenie krzywej ( dla 1 jest to prosta; im wyższe k tym krzywa jest bardzie krzywa )
    255 - rozdzielczość ( tu 8 BIT )
    [informacja znaleziona na elektrodzie]

    Do kontroli napięcia i prądu na wyjściu można wykorzystać wyjścia PWM (choć jeszcze nie wiem jak to ma wyglądać).
    Ile wyjść PWM ma lub może mieć ATtminy 2313? Czy wszystkie porty określone jako wyjścia mogą być wyjściami PWM?

    Pozostaje kwestia komunikacji między dwoma uC. Czy można ją rozwiązać na bazie interfejsu szeregowego USART? Czy informacja przesłana przez ten interfejs może być wykorzystana jako komenda dla uC?

    Może polecacie mi lepszy lub prostszy sposób na zrealizowanie mojego pomysłu?

    0 20
  • Pomocny post
    #2 28 Gru 2013 21:25
    szczywronek
    Poziom 27  

    Do odczytania napięcia na wejściu można wykorzystać przetwornik analogowo-cyfrowy, którego wspomniany mikrokontroler nie posiada.

    O co chodzi z wzorem i tabelaryzacją... nie mam pojęcia :)

    Attiny2313 ma 4 wyjścia, które mogą generować sygnał PWM w sposób sprzętowy. PWM to rodzaj modulacji sygnału - każde wyjście może generować sygnał PWM tworzony programowo.

    Mikrokontrolery mogą się komunikować poprzez UART - to co "odbiorca" zrobi z otrzymaną informacją, zależy już tylko od oprogramowania.

    Nie obraź się, ale wydaje mi się, że obrałeś trochę zbyt ambitny cel jak na początek.

    0
  • #3 28 Gru 2013 22:44
    Razjelson
    Poziom 6  

    Bardzo cenne informacje, dziękuję :D
    Nie obrażam się, co więcej jeszcze bardziej się nakręcam... Może i cel zbyt ambitny ale jak się uda? Ależ będzie frajda (poza tym po drodze będę robił prostsze rzeczy, żeby nabyć wiedzę i umiejętności do tego o czym mowa)
    Czy jakiekolwiek uC z rodziny ATmega lub ATtiny mają wbudowany przetwornik a/c?
    Czy żeby skożystać z ADC uC musi mieć przetwornik a/c?

    Cytat:
    Attiny2313 ma 4 wyjścia, które mogą generować sygnał PWM w sposób sprzętowy.

    Są one w jakiś sposób wyróźnione?

    Jest temat na elektrodzie, w którym ktoś zastosował ADC do mierzenia napięcia wejściowego i poprzez tabelkę przypisał napięcie wejściowe do wartości wyjściowej (w jego przypadku zrobił skalę logarytmiczną).
    Link

    0
  • Pomocny post
    #4 28 Gru 2013 23:01
    szczywronek
    Poziom 27  

    Tylko żebyś się nie zniechęcił w razie niepowodzeń ;)

    1. Do attiny2313 możesz dołączyć zewnętrzny przetwornik ADC jeśli lubisz wyzwania.
    2. Z rodziny Attiny przetwornika nie mają tylko attiny2313/28/4/4313/9;
    jeśli chodzi o Atmegi to: Atmega162/16u2/32u2/8u2/8515 są bez a/c
    3. Jeśli będziesz kiedyś szukał mikrokontrolera AVR o danych parametrach (np. takiego który ma ADC) to najłatwiej jest skorzystać ze strony Atmel'a - jest tam wyszukiwarka produktów z filtrami. Inna opcja - dystrybutorzy części również umożliwiają na swoich stronach wyszukiwanie parametryczne (np. Farnell, TME).
    4. Wyróżnione tzn? Wszystko jest opisane w nocie katalogowej mikrokontrolera :)
    5. Jeżeli chcesz odczytać napięcie na wejściu przetwornika a/c (w woltach) to wystarczy prosty wzorek, który znajdziesz w nocie katalogowej. Nie widzę za bardzo związku z tematem o sterowaniu logarytmicznym.

    Przetwornik a/c = przetwornik analogowo cyfrowy = analog to digital converter = ADC ;)

    0
  • #5 28 Gru 2013 23:05
    Razjelson
    Poziom 6  

    Ej bo się spale ze wstydu :D
    Myśle, żęby użyć AtTmegi 328. Prawie na pewno ma przetwornik a/c.
    Nie przejmuj się tak tą moją ambicją, ja ledwo zaczynam, ale mam znajomych którzy mi pomogą, po prostu teraz nie mam z nimi kontaktu ;)

    0
  • #6 28 Gru 2013 23:13
    szczywronek
    Poziom 27  

    Przetwornik a/c i ADC to to samo.

    Razjelson napisał:
    czy posiadanie a/c jest jednoznaczne z posiadaniem wejść analogowych

    Zależy jak zdefiniujesz "wejście analogowe". Attiny2313 nie ma przetwornika analogowo-cyfrowego, ale ma analogowy komparator. W pewnym sensie ma więc wejścia analogowe.

    0
  • #7 28 Gru 2013 23:15
    Razjelson
    Poziom 6  

    Komparator powiadasz? Ale do czego prównuje wartość skoro pracuje na wartościach logicznych?
    Musi mieć przecież jakiś punkt odniesienia... może porównuje dwa dwa sygnały analogowe?

    0
  • #8 28 Gru 2013 23:25
    BlueDraco
    Specjalista - Mikrokontrolery

    Odpowiedź na wszystkie Twoje pytania znajdziesz w dokumentach, które możesz ściągnąć z Atmela. Nie zaśmiecaj forum.

    0
  • #9 28 Gru 2013 23:38
    Razjelson
    Poziom 6  

    Tak to jest jak człowiek prosi o pomoc...ZERO wyrozumiałości. Niektórzy na elektrodzie tak długo pracują z maszynami, że się nimi stają...
    Mogę się założyć, że nie minie 1 min i ten post wyląduje w koszu, ale zrozum, że jako początkujący potrzebuję słowa od człowieka (prostego wytłumaczenia), i nic mi po setkach stron przeczytanych dokumentacji z czego połowa do niczego mi się nie przyda a ćwierci części nie zrozumiem.

    0
  • #10 28 Gru 2013 23:57
    BlueDraco
    Specjalista - Mikrokontrolery

    Naprawdę nie jesteś w stanie w opisie mikrokontrolera znaleźć tych paru stron o komparatorze? Jeśli tak - to może zmień hobby. Mikrokontrolery to nie są dobre zabawki dla leniwych.

    0
  • #11 29 Gru 2013 00:27
    Razjelson
    Poziom 6  

    Tego nie powiedziałem... źle mnie zrozumiałeś, możliwe że ja ciebie też, ale napisałeś:

    Cytat:
    Odpowiedź na wszystkie Twoje pytania

    Podkreślam słowo wszystkie. Jeśli przez wszystkie miałeś na myśli:
    Cytat:
    Komparator powiadasz? Ale do czego prównuje wartość skoro pracuje na wartościach logicznych?
    Musi mieć przecież jakiś punkt odniesienia... może porównuje dwa dwa sygnały analogowe?

    To zmienia postać rzeczy. W tym wypadku nie zgadza się tylko to:
    Cytat:
    Nie zaśmiecaj forum.

    Bo to pytanie było częścią dyskusji na poważniejszy temat...

    Jeśli jednak przez wszystko miałeś na myśli wszystkie pytania jakie padły w tym temacie to myślę, że jesteś w błędzie

    Pytanie podsumowujące: czy jesteś świadomy, że dyskusje i posty takie jak twoje i moje dwa ostatnie zaśmiecają forum znacznie bardziej, niż moje pytania odnośnie tematu przeze mnie założonego???

    0
  • #12 29 Gru 2013 10:43
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zanim kupisz procesor, lub napalisz się na jakieś rozwiązanie najpierw poznaj teorię. Tu ci pomoże, tak, jak pisze kolega BlueDraco nota użytego procesora. Nawet nie trzeba znać angielskiego, żeby się zorientować jak AC (komparator) w procesorze działa - masz schematy blokowe.
    Skoro zaczynasz to przejrzyj dokładnie blog:
    http://mikrokontrolery.blogspot.com/
    Masz tam konkretne informacje jak zacząć, jak posługiwać się ADC itd.

    0
  • #13 29 Gru 2013 11:45
    jarek_lnx
    Poziom 43  

    Cytat:
    Może polecacie mi lepszy lub prostszy sposób na zrealizowanie mojego pomysłu?

    Skoro jesteś aż tak zielony należało by spytać na samym początku:
    1. Jaki to silnik, na jakie napięcie jakiej mocy? nie wszystkie silniki się reguluje PWM.
    2. Co podasz na wejście analogowe
    3. Czy wiesz jak zbudować hardware?
    4. Czy zależy ci na dokładnej regulacji (stabilizacja prędkości obrotowej)

    Z użyciem komparatora możesz zrobić prymitywnego ADC'a, jeden kanał, kiepska dokładność, ale pozwala użyć mniejszego mikrokontrolera.

    0
  • #14 29 Gru 2013 14:37
    Razjelson
    Poziom 6  

    1.Na początek chce użyć silników jakie aktualnie posiadam (z helikoptera rc). Działają one na napięciach 3 - 5 V. Nie są to silniki krokowe. Jeśli chodzi o moc to muszę sprawdzić jaki prąd pobierają.

    2.Na wejście analogowe chcę podać napięcie 0 - 5v... Widziałem jak ktoś zrobił to za pomocją potencjometru w roli dzielnika napęcia, ale myśle, żeby to wysterować tranzystorem (lub kilkoma) a potencjometru użyć tylko do zmiany rezystancji (tu też co lepiej byście mi radzili).

    3. Będę się uczył na bierząco. Jeśli dobrze rozumiem pojęcie hardware, to masz na myśli wszelkiego rodzaju rodzaju filtry, elementy sterujące i zabezpieczające uC... czylli środowisko w jakim umieszczony jest uC, o to ci chodzi?

    4. Bardzo możliwe, że będzie ona niezbędna, ale to się okaże w trakcie.

    5. Chyba jednak lepiej użyć uC z przetwornikiem a/c, nie będzie to przecież dużo bardziej kosztowne.

    0
  • #15 29 Gru 2013 18:33
    GanzConrad
    Poziom 22  

    bardzo prawdopodobne(a wręcz prawie pewne), że silnik z helikoptera rc jest silnikiem bezszczotkowym, co mocno utrudni Ci sterowanie nim.
    Ad. 1 - na początek kup uP Atmega8 i pomigaj diodą. Bez opanowania podstaw, Twoje dalsze projektowanie tego układu jest marnowaniem czasu (i nie jest to upierdliwość).

    0
  • #16 30 Gru 2013 00:45
    Razjelson
    Poziom 6  

    Tia na początek kupię ATmege328 i pomigam diodą...tego nigdy nie wykluczałem, ale mój cel wcale się przez to nie zmieni...
    Nie sądzisz chyba, że myślę od tak napisać prgram wrzucić go na układ i wstawić na płytkę z innymi elementami oczekując, że wszystko będzie działało perfekcjnie.
    Każdy krok będę wykonywał na sucho, żeby w późniejszym etapie wszystko połaczyć. Dla mnie to oczywiste i liczę się z tym, że mogą wystąpić komplikacje. O dziwo większość z was traktuje mnie jak dziecko, kóre stwierdza, że chce być astronałtą....tacy pełni sceptycyzmu. Dziękuję za rady, przyjmuję je z pokorą (a może nie :D). Narazie więc poczytam teorię i ciepliwie czekam na koniec świąt, by nabyć wszystkie potrzebne elementy.

    PS. Jakie komplikacje mogą się pojawić przy sterowaniu obrotami w silniku bezszczotkowym?

    0
  • #17 30 Gru 2013 10:16
    tmf
    Moderator Mikrokontrolery Projektowanie

    W BLDC? Same komplikacje. Potrzebujesz:
    - 3 półmostki H do sterowania, wygenerować sterujący przebieg PWM, kolejne kroki komutacji i komplementarne przebiegi sterujące górnym i dolnym tranzystorem mostka z czasem martwym
    - musisz jakoś określać bieżącą pozycję wirnika - albo w tym celu stosuje sie czujniki Halla, albo detekcję na zasadzie pomiaru BEMF - w teorii prostą w praktyce już nie.
    Jeśli chcesz iść w kierunku BLDC to proponuję zmienić tą ATMega na np. XMEGA, która ma AWEX doskonale nadający się do sterowania BLDC lub krokowcami, ma też potrzebne ukłądy analogowe (np. wystarczającą ilość komparatorów).
    A nasz sceptycyzm wynika z prostej rzeczy - na elce prawie codziennie są posty typu "dziecko chce zostać kosmonautą, ale to już", więc każdy nowy jest oceniany przez ten pryzmat. Nie ma się co obrażać.

    0
  • #18 30 Gru 2013 10:18
    GanzConrad
    Poziom 22  

    rady są po to, abyś nie popełnił błędów jakie inni popełnili. Jeśli masz zamiar sam sprawdzać, czy żelazko parzy - Twoja sprawa.
    na początek:
    http://pl.wikipedia.org/wiki/Bezszczotkowy_silnik_elektryczny
    http://mikrokontrolery.blogspot.com/2011/03/silnik-bldc-spis-tresci.html
    http://mikrokontrolery.blogspot.com/2011/04/silnik-dc_14.html
    potem
    http://mikrokontrolery.blogspot.com/p/spis-tresci.html

    0
  • #19 30 Gru 2013 16:49
    Razjelson
    Poziom 6  

    Silniki BLDC są stosowane w nieco droższych modelach, w moim (za 100zł) to są szczotkowe...dla upewnienia mogę przesłać ich zdjęcie - są długie i chude, w pełnej cienutkiej aluminiowej obudowie.
    Z tego co mówiecie, nimi będzie łatwiej sterować...
    Ale o sterowaniu BLDC też sobie poczytam. Później itak przerzucę się na BLDC bo są znacznie wydajniejsze, zwłaszcza w sprawach modelów latających.

    PS. Silniki stosowane w wentylatorach komuterowych są BLDC?? Jeśli tak to zetknołem się z kumplikacjami przy tym i teraz wiem dlaczego :D A myślałem, że był zepsuty ;)
    PS2. Zapomniałem dopisać najważniejszy element dowodzący, że to nie BLDC...mają dwa wyprowadzienia.

    0
  • #20 30 Gru 2013 17:08
    tmf
    Moderator Mikrokontrolery Projektowanie

    Podłącz zasilanie do silnika - jeśli się będzie kręcił to znaczy, że nie jest to BLDC. Podobnie - jeśli ma tylko dwa przewody to jest to zapewne silnik szczotkowy, jeśli ma 3 to najpewniej BLDC, jeśli 4 i więcej to pewnie krokowy, acz niekoniecznie.
    W wentylatorach komputerowych często są właśnie silniki BLDC, ale mogą być też zwykłe, lub BLDC ze sterownikiem.
    BTW, jeśli interesują cię silniki w kontekście modelarstwa, to zdecydowanie pomyśl o XMEGA ze względu na szerokie wspomaganie dla sterowania silnikami. Wiele można osiągnąć na ATMega, ale są dosyć uperdliwe i stosowny program będzie niepotrzebnie obciążał procesor, a w modelarstwie moc obliczeniowa przydaje się też do innych celów.

    0
  • #21 30 Gru 2013 17:53
    Razjelson
    Poziom 6  

    No to już myślę o XMEGA! Przejrze kilka datashitów :D
    W pewnym zakresie można wykożystac sterownik z wentylatora... Może sie udać, nie?
    Ale tak jak mówiłem, najpierw wykożyatam to co mam. Jak się uda, z silnikami szczotkowymi to będę kombinował dalej, aż zbuduje qadrokopter :D

    0
  Szukaj w 5mln produktów