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

Servo SG 90 i Atmega - servo obraca się w jednym kierunku powoli i koniec

stoper17 24 Sty 2012 00:14 3050 4
REKLAMA
  • #1 10440334
    stoper17
    Poziom 20  
    Witam,
    rozpoczynam walkę z serwami i atmegą- jak na razie jest 1:0 dla serva;/

    Mam układ podłączony jak na schemacie. Czyli pod laptopa podpięty programator, i programator z płytką do której jest też podpięte servo. Servo jest zasilane osobnym źródłem napięcia

    Servo SG 90 i Atmega - servo obraca się w jednym kierunku powoli i koniec

    Zajrzałem do pomocy bascom`a i załadowałem gotowy przykładowy program, zmieniając wartości by uzyskać 1-2 ms (zakres dla mojego serva)
    $regfile "m8def.dat"
    $crystal = 1000000
    
    
    Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
    
    
    Config Portb = Output
    
    
    Enable Interrupts
    
    
    Servo(1) = 100
    Do
    
    Loop
    
    
    
    Dim I As Byte
    
    Do
    
    For I = 100 To 200
    
      Servo(1) = I
    
      Waitms 20
    
    Next
    
    
    
    For I = 200 To 0 Step -1
    
      Servo(1) = I
    
      Waitms 20
    
    Next
    
    Loop
    
    End
    



    I niestety, servo nie zachowuje się tak jak powinno. Ściągałem różne gotowe programy by tylko ruszyło ale nic z tego. obraca się w jednym kierunku bardzo powoli i koniec. Servo napewno jest dobre bo wcześniej robiłem układ na ne555 i sprawdziło się w 100%.

    Proszę o pomoc przy uruchomieniu mojego serva
  • REKLAMA
  • #2 10440347
    opamp
    Użytkownik obserwowany
    Kwarc 10MHz i w górę tak mówi pewna książka:)
  • REKLAMA
  • #3 10440375
    stoper17
    Poziom 20  
    czyli trzeba w moim przypadku zakupić atmege16 lub podczepić zew kwarc? i to cały problem????
  • REKLAMA
  • Pomocny post
    #4 10440440
    Konto nie istnieje
    Poziom 1  
  • #5 10441841
    stoper17
    Poziom 20  
    problem po części rozwiązany. Problem tkwił przede wszystkim w miejscu FOR oraz usunąłem DO LOOP w pierwszej fazie ( też nie wiem dlaczego)

    Zmniejszyłem zakres do 60 i ruszyło (nie wiem tylko czemu). Bynajmniej efekt końcowy wygląda następująco:
    $regfile "m8def.dat"
    $crystal = 2000000
    
    Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
    
    Config Portb = Output
    
    Enable Interrupts
    
    Servo(1) = 100                                              
    
    Dim I As Byte
    
    Do
      For I = 4 To 40
      Servo(1) = I
      Waitms 5
      Next
    
    Loop
    End
    


    Kąt jaki chciałem osiągnąć i osiągnąłem to 180°, tylko było przy tym pełno zabawy i metody prób i błędów. Czy jest jakaś prostsza metoda osiągnięcia oczekiwanego efektu?
REKLAMA