logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie silnikiem DC za pomocą mikrokontrolera '51

lord_nv 06 Sie 2005 20:23 5668 13
  • #1 1712148
    lord_nv
    Poziom 11  
    Posty: 29
    Witam!

    Wielka prośba!
    Mam do wykonania projekt a konkretnie program, który bedzie sterował silnikiem prądu stałego poprzez mikrokontroler z rodziny '51 a konkretnie firmy Analog Devices ADuC824.
    Czy ktoś mógłby mi w tym pomóc, tzn. podpowiedzieć jak to zrealizować itd.
    Może ktoś juz robił coś podobnego bo szczerze mówiąc nie wiem od czego zacząć Smile.
    Będę wdzięczny za wszelką pomoc.
  • #2 1725407
    Konto nie istnieje
    Konto nie istnieje  
  • #3 1730494
    lord_nv
    Poziom 11  
    Posty: 29
    Setb i clr niestety nie wytsarczy :)
    Chodzi o to zeby mozna bylo podawac w programie mniej wiecej obroty z jakimi ma sie silnik krecic, to juz wiem jak zrobic bo obroty przekladaja sie na napiecie takze luz, trzeba zatem zrealizowac programowo generator PWM, poniewaz ADuC824 go nie ma, druga sprawa jest to, zeby zalaczac i wylaczac stan wysoki, tzn. zeby brana byla pod uwage wartosc srednia napiecia, zeby byly mniejsze straty mocy w ukladzie tj. 1/2.
    Chodzi o realizacje czysto programowa
    Pozdro 4all
  • #4 1730751
    Konto nie istnieje
    Konto nie istnieje  
  • #5 1731463
    lord_nv
    Poziom 11  
    Posty: 29
    No powiedzmy ze mniej wiecej o to chodzi :)
    Zreszta juz sobie jakos chyba poradze :D
    Nie moge pisac ani w C ani w basicach ani nic podobnego tylko ASM wchodzi w rachube ale to nie problem.
    W razie problemow jeszcze sie zwroce.
    Dzieki za okazana pomoc !!!

    Dodano po 24 [minuty]:

    Wlasciwie to chodzi mi o sama idee sterowania.
    Przyznam sie ze za bardzo nie rozumiem (prosze wziac pod uwage ze jestem poczatkujacy) jak moge ustawiac rozne napiecia wyjsciowe za pomoca PWM?
    Tzn. chodzi mi o to jak zrobic zeby mogl zadawac rozne predkosci silnika, czyli tak jak powyzej, jak to sie dzieje dla PWM ze moge dawac na wyjsciu rozne napiecia?
    Pewnie jak z samej definicji PWM chodzi o modulacje szerokosci impulsow, ale czy zmieniajac szerokosc i impulsu moge miec wplyw na wartosc wyjsciowego pradu (napiecia) ?
    W sumie jesli bede mial stan 1 przez 3s a stan 0 przez 1 to uzyskam jakies 75% maksymalnego napiecia na wyjsciu, no to by bylo realne w miare :) mozna zmieniac napiecie zmieniajac wspolczynnik wypelnienia impulsu, teraz tylko musze zrobic to programowo, no to sobie odpowiedzialem sam na to pytanie piszac tego posta :)
    no nic jesli sie myle to prosze mnie poprawic
    Pozdrawiam
  • #6 1731756
    don pawcio
    Poziom 13  
    Posty: 24
    Pomógł: 5
    Hej:)

    Najprosciej o PWM mozna powiedziec w taki sposob, ze przy odpowiednio duzej czestotliwosci impulsow ich efekt sie usrednia. Wynika to z bezwladnosci sterowanoego obiektu. Czasy mierzone w sekundach sa stanowczo za duze. Dla silnika DC, diody, lampki wedlug mnie wystarczy 100Hz.
  • #7 1731815
    lord_nv
    Poziom 11  
    Posty: 29
    No racja, dziwnie wyszlo bo zadajac pytanie sam sobie na nie odpowiedzialem ale moze byc i tak :)
    Tu sa schematy wg ktorych mozna podlaczyc silnik
    Ten drugi jest ze sprzezeniem odczytujacym obroty silnika badz cokolwiek innego i reguluje za pomoca procesora, z tym ze uklad zrealizowany na mikrokontrolerze PIC firmy Texas Instruments uklad UC1637
    Pzdr
    Załączniki:
    • Sterowanie silnikiem DC za pomocą mikrokontrolera '51 uP-PWM_ost.jpg (87.27 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Sterowanie silnikiem DC za pomocą mikrokontrolera '51 uP-PWM_LQ.jpg (45.8 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 1732473
    Konto nie istnieje
    Konto nie istnieje  
  • #9 1732522
    lord_nv
    Poziom 11  
    Posty: 29
    No ten uklad ze sprzezeniem jest tylko przykladem, ze mozna zrealizwoac uklad ktory bedzie mierzyl obroty i porownywal z wartosc aktualna z wartoscia zadana i korygowal odpowiednio tak jak napisal janchar szerokosc impulsu.
    Podalem dla przykladu moze sie komus przyda :)
    Pzdr
  • #10 1738360
    lord_nv
    Poziom 11  
    Posty: 29
    Ok tylko mam jedno pytanie, moze troche glupie ale nie jestem jakims goru w assemlerze takze-Jak mozna zmieniac w tym programie powyzej czestotliwosc impulsow oraz wypelnienie, tzn. chcialbym np zeby przez 2s bylo 1 a przez 1s bylo 0 i mam jakies 66% maksymalnego napiecia na silniku
  • #11 1740391
    Konto nie istnieje
    Konto nie istnieje  
  • #12 1740622
    Coyote~
    Poziom 20  
    Posty: 345
    Pomógł: 24
    Ocena: 3
    A propos stabilizacji obrotów, czy ktoś z was zastanawiał się może nad mierzeniem prędkości obrotowej silnika DC przez analizę impulsów zwrotnych występujących w momentach komutacji na komutatorze?
  • #13 1740857
    Konto nie istnieje
    Konto nie istnieje  
  • #14 1742347
    LtJo
    Poziom 12  
    Posty: 25
    Pomógł: 1
    Ocena: 1
    Proponuję zapoznać się ze stronami z poniższych linków, co prawda to nie rodzina '51 lecz PIC ale za to dużo tutoriali dotyczących sterowania różnymi silnikami i opis sposobów pozyskiwania informacji zwrotnej także bez dodatkowych czujników.
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1505
    http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1482
    http://www.microchip.com/stellent/idcplg?IdcS...E&nodeId=1406&dDocName=en023837&part=DM163029

    Co do wykorzystania impulsów pochodzących od komutacji na komutatorze silnika DC to spotkałem gdzieś na PIClist lub JALlist prosty układ oparty na dodzie zenera, rezystorze podciągającym i tranzystorze podłączonym do pinu MCU generującego przerwanie przy zboczu narastającym impulsu

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania silnikiem prądu stałego za pomocą mikrokontrolera z rodziny '51, konkretnie Analog Devices ADuC824. Podstawowym problemem jest realizacja regulacji prędkości obrotowej silnika poprzez programowe generowanie sygnału PWM, gdyż ADuC824 nie posiada wbudowanego generatora PWM. Proponowane rozwiązanie to implementacja PWM w asemblerze, gdzie szerokość impulsu sterującego tranzystorem lub przekaźnikiem podłączonym do portu mikrokontrolera jest zmieniana w celu uzyskania różnych wartości średniego napięcia zasilającego silnik, co przekłada się na regulację prędkości. Przykładowy kod w asemblerze i BASIC-u pokazuje sposób liczenia i porównywania wartości licznika z zadanym poziomem wypełnienia impulsu. Dyskutowano także o częstotliwości PWM, sugerując około 100 Hz jako wystarczającą dla silnika DC. Poruszono temat sprzężenia zwrotnego do stabilizacji prędkości, m.in. poprzez pomiar impulsów komutacyjnych silnika lub zastosowanie czujników Halla, a także alternatywę w postaci silnika krokowego. Wskazano na konieczność wykorzystania przerwań do efektywnego generowania PWM bez blokowania pracy procesora. Podano linki do materiałów dotyczących sterowania silnikami na mikrokontrolerach PIC, które mogą być pomocne mimo innej architektury.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA