PWM SILNIK


Witam mam problem chyba odwieczny dla wszystkich chodzi o sterowanie silnika dc za pomaca pwn na attiny 2313 wyjście oczywiscie PB.3 procesorka połączone z tranzystorem. Chodzi o płynną regulacje czyli mieki start silnika i zatrzymanie go mieko wiem jak skonfigurować timer i regulować czas . Natomiast nie wiem jak zrobić to na przycisku pilota tzn. po odebraniu kodu z pilota np. rc5 i naciśnięciu go raz nastąpi automatyczne zwiększenie wyjścia PB.3 i żeby się utrzymał tam stan wysoki.




Portret użytkownika mirley

Re: Silnik

Jeśli wiesz jak używać PWM i to juz działa to nic prostszego. Pwm ustawia się za pomocą rejestrów Compare. Wystarczy wpisać odpowiednią wartość i już jest PWM Gotowy. Co do pilota to procedury są u mnie na stronie w kodach źródłowych. Wystarczy napisać potem zwiększanie zmiennej compare po wykryciu pilota. Nie widzę tutaj na razie problemu

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika rybaczenko

JEST PROBLEM

  $regfile = "attiny2313.dat"
$crystal = 4000000
 
Config Portb = &B11111111 : Portb = &B11111000
Config Portd = &B1100000 : Portd = &B0011111
Config Debounce = 5
 
Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down
 
Config Rc5 = Pind.2
 
Dioda Alias Portb.3
 
D3 Alias Portb.5
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim Komenda As Byte , Adres As Byte
 
'*************  Zmienne Koniec  ****************
 
'**************  Petla glowna ******************
'***********************************************
Do
Debounce Pind.3 , 0 , Krancowka3 , Sub
 
Getrc5(adres , Komenda)
  Komenda = Komenda And &B01111111
 
         If Adres = 0 Then
    Reset Dioda
 
 
    Select Case Komenda
'****przyklad kawalka mojego programu gdzie automatyczna regulacja nie dziala???????????
 
   Case 17:
 
 Incr Pwm1a
If Pwm1a = 120 Then Pwm1a = 0
waitms 5
 
 If Portb.0 = 0 Then Toggle Portb.1
Reset D3
If Portb.1 = 0 Then
Set D3
End If
 
 If Pind.3 = 0 Then
Portb.1 = 0
D3 = 1
End If
 
 
 
'******************************************************************
 
 
      End Select
 
 Waitms 100
    Set Dioda
    Waitms 100
 
   End If
Loop
End
 
  Krancowka3:
  Portb.1 = 0
  Set D3
  Return

ja chcem uzyskac automatyczna zmiane po nacisnieciu raz przycisku zmienna sama sie bedzie zwiekszala

-

ROOKIE

Portret użytkownika mirley

re: silnik

Bo nie ma prawa się zwiększać, w case wchodzi tylko po naciśnięciu przycisku..... spróbuj ustawiać tylko flagę w obsłudze komendy rc5 a resztę robić poza case:

    Getrc5(adres , Komenda)
    Komenda = Komenda And &B01111111
    If Adres = 0 Then
      Reset Dioda
 
      Select Case Komenda
       Case 17:
         set flag
      End Select
 
      Waitms 100
      Set Dioda
      Waitms 100
   End If
 
   if flag = 1 then
     Incr Pwm1a
     If Pwm1a = 120 Then 
       Pwm1a = 0
       flag = 0
     end if
     waitms 5
 
     If Portb.0 = 0 Then Toggle Portb.1
     Reset D3
     If Portb.1 = 0 Then
       Set D3
     End If
 
     If Pind.3 = 0 Then
       Portb.1 = 0
       D3 = 1
     End If
   end if

generalnie program jest kiepsko napisany bo zawiera wait i debounce co jest złym pomysłem w tym przypadku

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika rybaczenko

re

To mnie pocieszyłeś :-( a ja tak się cieszyłem bo to mój pierwszy program jaki napisałem w dodatku który działa i jest prosty chyba to najwazniesze jak się podszkolę to będę dawał sobie poprawki.

-

ROOKIE

Portret użytkownika mirley

Re: Silnik

Napisałem Ci od razu twardo co i jak uważam żebyś nie robił błędów, które sam mam w moich programach... co napiszę nowy to się okazuje że rozwiązania użyte w poprzednim są do kitu a obecne działają 100 razy lepiej. Jak na początek pokonałeś wiele problemów z którymi większość nie jest wstanie sobie poradzić.....

Zapoznaj się z konfiguracją timerów i ich przerwań, pozwoli to taktować program ściśle w czasie

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.