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

[mega8][bascom]Silnik na PWM nie ma siły się kręcic. Czemu?

Ture11 07 Sie 2008 11:57 1997 2
  • #1 5416698
    Ture11
    Poziom 39  
    Witam.
    Pożyczyłem sobie kod źródłowy od kolegi "michal2666"(któremu bardzo dziękuje za udostępnianie swoich projektów, dużo się z nich nauczyłem).
    Wygląda on tak:
    
    $crystal = 4000000                                          'Deklaracja częstotliwości kwarcu
    $regfile "attiny2313.dat" 				'deklaracja modelu procesora
    
    Declare Sub Zwieksz 					'Deklaracja procedury zwiększającej stan rejestru porównania
    Declare Sub Zmniejsz 					'Deklaracja procedury zmniejszającej stan rejestru porównania
    
    
    
    Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down 'Konfiguracja Timera
    
    Config Portd = 127 					'Pd.0 i Pd.1 jako wejścia
    Portd = 127 						'podciągnięte
    
    Ddrb = &B11111111 					'Odblokowanie globalnego wyjścia OC1
    
    Cls : Lcd "Portal naukowy" : Lowerline : Lcd "Generator PWM" 'wstępny opis
    
    Wait 3                                                      'czekaj 3 sekundy
    Pwm1a = 20                                                 'wstępnie w rejestrze Pwm1 liczba 20 - niewielka moc
    
    Do                                                          'pętla nieskończona
    If Pind.0 = 0 Then Zmniejsz                                 'S1 zmniejsza zawartość rejestru Pwm1a (=OCR1)
    If Pind.1 = 0 Then Zwieksz                                  'S2 zwiększa zawartość rejestru Pwm1a (=OCR1)
    Cls                                                         'czyść wyświetlacz
    Lcd "rejestr PWM1a"                                         'wyświetl zawartość rejestru OCR1
    Lowerline
    lcd Pwm1a                                                   
                                                      'wyświetl zawartość licznika T/C1 (TCNT1)
    Waitms 100                                                  'czekaj 100 milisekundę
    Loop : End
    
    Sub Zwieksz 						'procedury: zwiększająca i zmniejszająca stal rejestru porównania
    Incr Pwm1a
    End Sub
    
    Sub Zmniejsz
    Decr Pwm1a
    End Sub
    
    
    


    Skasowałem
    
    $crystal = 4000000
    

    gdyż u mnie to nigdy nie chodziło, program chodzi poprawnie przy kwarcu 1000000.
    $regfile zmieniłem z attiny2313 na m8def.
    I skasowałem to:
    
    Config Portd = 127 					'Pd.0 i Pd.1 jako wejścia
    Portd = 127 						'podciągnięte
    

    , ponieważ miałem problem z wyświetlaczem.
    Silniczek jest podłączony do wyjścia przez jeden tranzystor z wzmacniacza ULN2803.
    Nie dodałem żadnych rezystorów ani nic innego.
    Mój problem polega na tym, że przy pwm1a = 200 silnik ma siłe.
    Natomiast przy pwm1a = 20 silnik staje po lekkim dotknięciu wału i brzęczy.
    Czego to może być wina????
  • #2 5416867
    mirekk36
    Poziom 42  
    A jaki ty masz w ogóle silnik? na jakie napięcie? - może dałeś zbyt małe napięcie?

    Poza tym, nawet jeśli dasz większe napięcie to i tak nie będziesz miał nigdy takiego efektu, że przy PWM=1 każdy silnik będzie ci się kręcił powoli i miał pełną siłę obrotową. Może być tylko tak, że przy niższym wypełnieniu PWM ale większym będzie miał większą siłę niż przy tym samym wypełnieniu a mniejszym napięciu.
  • #3 5417371
    Bigfoot
    Poziom 25  
    Nie sile a moment. Poszukaj zaleznosci miedzy momentem silnika a PWMem.

    BF
REKLAMA