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

[ATMEGA][BASCOM] układ wykonawszy regulacji napiecia poprzez kod

smithpl 06 Lut 2012 13:04 4821 20
  • #1 10503562
    smithpl
    Poziom 15  
    Witam,
    aktualnie przymierzam się do nowego projektu w którym zamierzam sterować urządzeniem poprzez zmianę napięcia jego zasilania.
    Aby to zrealizować wykonam układ na bazie uC Atmega8/16/32.
    Jednak pozostaje kwestia wykonawcza i o to chciałbym zapytać.

    Układ ma sterować napięciem stałym wyjściowym w zakresie 12-24V co 2V
    Jaki układ wykonawczy wykorzystać?
    Planuje z układu sterującego wystawiać stan 0 na kolejne piny kontrolera ( potrzeba 8. Tylko co dalej?
    Druga opcja to może jest jakiś układ scalony realizujący funkcje stabilizatora regulowanego cyfrowo?

    Warto nadmienić iż układ musi obsłużyć prądy do 2A i będzie on sterował silniczkiem
  • #3 10506025
    arktik1
    Poziom 27  
    To nie lepiej zrobić sterowanie PWM ze zwykłym tranzystorem?
    Moc tranzystora dobierzesz jaką chcesz.
  • #4 10506998
    gaskoin
    Poziom 38  
    Problemem mogą być nieliniowości.
  • #5 10513296
    arktik1
    Poziom 27  
    "układ musi obsłużyć prądy do 2A i będzie on sterował silniczkiem "
    Myślę że jeśli będzie to kwarc zewnętrzny i zastosuje się do tego jakiś dławik to:
    "Problemem mogą być nieliniowości. "
    Będą bardzo małe i nie będzie miało znaczenia.
    Do silników zazwyczaj wystarcza PWM, dzięki temu nie trzeba się martwić o odprowadzenie temperatury z układu wykonawczego
  • #6 10517483
    smithpl
    Poziom 15  
    Dzięki za info, układ wykonawczy to pompa do cyrkulacji wody. więc pływalność ma mniejsze znaczenie. Teraz jest regulowana przez skokowa zmianę napięcia 12-24v a chce to zastąpić sterowaniem elektronicznym.
    Czyli PWM?
    Zależy i na żywotności tych pomp. Są gotowe takie sterowniki ale dość drogie...
  • #7 10521135
    arktik1
    Poziom 27  
    "napięcia 12-24v"
    Mam rozumieć że mówimy o napięciu stałym.
    Jeśli tak to PWM doskonale się do tego nadaje.
  • #8 10522162
    smithpl
    Poziom 15  
    stały, jakiś przykład?
  • #9 10522341
    arktik1
    Poziom 27  
    Ale przykład czego?
    Kodu, układu wykonawczego?
    Jak to ma być regulowane:
    Przyciski, potencjometr, pilot rc5?
  • #10 10531968
    smithpl
    Poziom 15  
    z oprogramowania
    zalożenia:
    1. zakładamy napiecie min i napiecie max ( w zakresie 12-24V )
    2. zakładamy zykle zmian w czasie ( przelaczanie od 1-60sek )

    i tyle
    po ustawieniu sterwnik podaje np. 14V przez 30sek, potem 30sek 24V
    oczywiscie nastawiamy czy min to 14V czy 12V i to samo z gornym napieciem.
  • #11 10537653
    arktik1
    Poziom 27  
    Ja to widzę tak.
    Zaprzęgamy do roboty co najmniej Atmega8.
    Do 2 wejść ADC montujemy 2 potencjometry 10k precyzyjne do regulacji.
    Piszemy program tak by wejściami ADC można było regulować wypełnienie PWM.
    Potem przełączamy tylko między odczytem ADC1 i ADC2.
    PWM dostosowuje się do ustawionych potencjometrami wartości.
    Całość zasilamy napięciem stałym 24V.
    Jako układ wykonawczy stosujemy jakiś MOSFET.
    Na ELEKTRODZIE jest mnóstwo przykładów PWM i MOSFET.
    No chyba że się na tym nie znasz i chcesz by ktoś ten sterownik zrobił za ciebie.
  • #12 10538019
    smithpl
    Poziom 15  
    nie no spoko, zastnawialem sie tylko czy PWM jest niezbedny skoro sterujemy stalymi napieciami.

    Myslalem czy nie jakas wykwintnwa drabinka rezystorowa na podzial napiecia.
    No bo myslalem ze skoro nie plynnie a skokowo 12-14-16-18-20-22-24V to takie drabinki zalaczane prockiem. I takie 2 kanały.

    No ale skoro PWM. Może ktoś podłączyć jakiś link?
    Dodam że silnik jest bezszczotkowy...
  • #13 10538928
    smithpl
    Poziom 15  
    trudny wątek wiec pozwolę sobie na sprecyzowanie rozwiązań które wpadły mi do głowy:

    1. Użycie L298 i sterowac silnikiem ale ty wchodzimy w PWM.

    [ATMEGA][BASCOM] układ wykonawszy regulacji napiecia poprzez kod

    2. Zastosować LM324 ( jak w oryginalnym sterowniku w/w pomp ) sterowany podwójnym dzielnikiem napięcia który to właśnie musiał by być sterowany z atmega16/32

    Mała korekta, niestety chyba okazało się iż te silniki nie są sterowalne sygnałem PWM a jedynie analogową zmianą napięcia lub osoby które to testowały nie wiedzą :cry: .

    W tej sytuacji znów musze wrócić do tematu LM324 który jest zaszyty w oryginale i jest sterowany z Atmega8
    O to fotka oryginału:
    [ATMEGA][BASCOM] układ wykonawszy regulacji napiecia poprzez kod
    [ATMEGA][BASCOM] układ wykonawszy regulacji napiecia poprzez kod

    znalazłem jednak ciekawy przebieg z podobnego sterownika któremu udaje się wysterować te pompy.
    [ATMEGA][BASCOM] układ wykonawszy regulacji napiecia poprzez kod

    Czyli jednak PWM - głupi już jestem... dzięki za wszelkie wskazówki.
  • #14 10539124
    arktik1
    Poziom 27  
    "tylko czy PWM jest niezbedny skoro sterujemy stalymi napieciami."
    Nie jest niezbędny.
    Możesz zastosować zasilacz z 2 napięciami 12/24V.
    I w tedy praca Uc polegała by na przełączaniu przekaźnika w określonym czasie.
    Wtedy wystarczyło by np Attiny 45.
    Myślałem że chodzi o płynną regulację tej pompy.
    A w tym przypadku możesz zastosować jakie rozwiązanie chcesz.
    Jedyne o co chodzi to odprowadzenie temperatury z układu.
    Jaki ta pompa ma w ogóle silnik?
  • #15 10539228
    smithpl
    Poziom 15  
    No właśnie nie. Dlatego pisałem skokowo.
    W dodatku nie moga być 2 zasilacze bo .... projekt ma umożliwiać ustawienie tych 2 stanów.
    Czyli w atmega robie soft którym ustawiam napięcie LOW ( np. 12, 14, 16V ) i napięcie HIGH ( 14, 16, 24V ) oraz czas pomiędzy zmianami.
    I sterownik zmienia napięcie co zadany czas.

    Dodam iż wg. pomiaru oscyloskopem nie wynika iz sterowanie jest typowo PWM a raczej zmiana napięcia z jakims taktowaniem.
    Jak ustawię na kontrolerze max napięcia LOW I HIGH to podaje równo 24V lub jak na tym wykresie 7,5V. Jak ustawisz minimalną dla 2 stanów to wykresem jest linia prosta 12V lub jak na wykresie 3,7V.
    Co ciekawe jak ustawi się średnio 50% to.... nadal jest linia prosta wykresu tylko napięcie to około 5,5V lub 17V.

    Jakiś pomysł o co tu biega ? :-)
  • Pomocny post
    #16 10541558
    arktik1
    Poziom 27  
    "Jak ustawisz minimalną dla 2 stanów to wykresem jest linia prosta"

    Oczywiście, jak sama nazwa wskazuje PWM to Pulse-width modulation.(modulacja szerokości impulsu)
    Jeśli zasilisz układ napięciem 24V to przy wypełnieniu PWM=255 będziesz miał 24V.
    Jeśli ustawisz wypełnienie 50% czyli PWM= 127 to teoretycznie powinieneś otrzymać 12V.
    Dlatego proponowałem, przeczytaj moją odpowiedź #11.
    Jest to najprostszy układ i możesz potencjometrami, dokładnie wyregulować jakie chcesz napięcie.
    Zasilacz musi być nie mniej niż 24V.

    Dodano po 1 [godziny] 58 [minuty]:

    Przykładowy kod przełączający co 30 sekund:
    
    $regfile = "m8def.DAT"
    $crystal = 8000000
    
    Config Portc = &B0000000
            Portc = &B1000000
    Config Portb = &B11111111
            Portb = &B00000000
    
    
    Config Timer1 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 1
    
    Dim Przelaczanie As Byte , Liczenie As Word
    Dim Minimum As Word , Maximum As Word , Min1 As Byte , Max1 As Byte
    
    Przelaczanie = 0
    Liczenie = 0
    
    Do
    
    Incr Liczenie
    If Liczenie >= 300 Then                                     'odliczanie około 30 sekund
    Incr Przelaczanie
    If Przelaczanie = 2 Then Przelaczanie = 0
    Liczenie = 0
    End If
    
    Maximum = Getadc(0)                                         'potencjometr 1 =24V
    Minimum = Getadc(1)                                         'potencjometr 2 =12V
    
    Max1 = Maximum / 4
    Min1 = Minimum / 4
    
    If Przelaczanie = 0 Then
    Pwm1a = Min1
    Else
    Pwm1a = Max1
    End If
    
    
    Waitms 100
    Loop
    
  • #17 10543231
    smithpl
    Poziom 15  
    Arktik1 - fajnie potestuje - to pierwsze zabawy z PWM.
    Jeszcze pozostaje jak te napięcia min i max ustawiać z oprogramowania procka a nie z analogu :-)

    Docelowo będzie opcja ustawień rożnych min i max dla 4 pompek niezależnie.
  • #18 10543271
    arktik1
    Poziom 27  
    "Jeszcze pozostaje jak te napięcia min i max ustawiać z oprogramowania procka a nie z analogu"
    Oczywiście że można.
    Jest tylko problem przy wyłączeniu zasilania:
    Przy analogu zawsze będzie uruchamiany z wartością stałą, ustawioną na potencjometrze.
    Przy regulacji programowej będzie startował z wartością początkową zapisaną w programie, a nie ustawioną przez ciebie.
    Chyba, że będziesz dane zapisywał w pamięci zewnętrznej z podtrzymaniem zasilania, lub podtrzymasz zasilanie procesora na czas braku zasilania z sieci.
  • #19 10543480
    smithpl
    Poziom 15  
    no bede zapisywal do eepromu ATmela wszystkie wartosci nastawione. Kewstia tego czym ustalic potem to napiecie wzorcowe dla PWM
  • #20 10543769
    arktik1
    Poziom 27  
    "Kewstia tego czym ustalic potem to napiecie wzorcowe dla PWM"
    A po co ci napięcie wzorcowe?
    Jeśli ustalisz że przy PWM=150 masz 12V, to zapisujesz to w pamięci.
    Jeśli układ się zresetuje to odczyt parametrów z pamięci spowoduje wprowadzenie danych do PWM.
    Układ nie ma zmiennego obciążenia, dlatego nie trzeba wprowadzać automatycznej korekty PWM.
    Jeśli chciał byś zrobić coś takiego, to najlepiej było by mierzyć obroty silnika i wtedy automatycznie ustawiać PWM.
  • #21 10543889
    smithpl
    Poziom 15  
    Idealnie, czyli dam zasilanie 24V.
    Następnie sprawdze przy ilu jest 12V i w tym zakresie do 24V będę mógł sterować co np. 10% :-)

    Super dzięki. To musze teraz zrobić schemat :-)
REKLAMA