Skocz do zawartości

Serwo z czujnikiem zbliżeniowym z przerwaniem


Girdian

Pomocna odpowiedź

Witam, problem jest następujący: silniki są włączane na jakąś sekundę, zatrzymują się na sekundę i tak w kółko, bez sygnału '0' z czujnika zamiast działać cały czas. Jak przystawię rękę i pójdzie sygnał '0' do uC, to wszystko staje, zarówno silnik jak i serwo do którego ma być przymocowany czujnik żeby zbadać okolicę kręcąc się.

Mając podpięte serwo, czujnik i silniki są jakby spadki napięcia, silniki co określony interwał czasowy spowalniają i powracają do maksymalnej prędkości, wtedy dioda na czujniku miga jakby go dopiero do zasilania podpięto i serwo skacze. Gdy odepnę serwo to jedzie bez problemu. Zasilane jest z zasilacza 12V, potem stabilizator na 9V poprowadzony do silników i drugi stabilizator na 5V do uC, czujnika i serwa. To na czas testów, finalnie będą akumulatorki 6*AA czyli odpadnie jeden stabilizator. Dodatkowo pytanie, polecono mi aby dać kondensatory 4700 uF, ale jedną nóżkę kondensatora podpinamy do '-', drugą do '+', jeżeli mam silniki sterowane przez L293, to jak to rozwiązać, bo '+' i '-' będą się zmieniać w zależności od kierunku obrotów silników?

$regfile = "m32def.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 16
$framesize = 32
'===============================================================================konfiguracja portow
Config Porta = &B11111111                                   '1-wyjscie, 0-wejscie
Config Portd = &B00001100
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Servos = 1 , Servo1 = Porta.4 , Reload = 1
Porta = &B00000000
Portd = &B11111111
'===============================================================================konfiguracja zmiennych
Enable Interrupts
Pwm1a = 255
Pwm1b = 255
'
Dim Srodek As Integer
Dim Lewo As Integer
Dim Prawo As Integer
Srodek = 1.5
Lewo = 1
Prawo = 2
Dim L As Byte
Dim S As Byte
Dim P As Byte
'
Dim R(5) As Byte
R(1) = &B00001001                                           'przod
R(2) = &B00000110                                           'tyl
R(3) = &B00000101                                           'lewo
R(4) = &B00001010                                           'prawo
R(5) = &B00000000                                           'stop
'
Enable Int1
'===============================================================================kod programu
Do
If Pind.3 = 1 Then
Porta = R(1)
End If
Loop

On Int1 Czujnik Nosave
Do
Loop
End



Czujnik:
'===============================================================================sprawdzanie przeszkody
Porta = R(5)
Servo(1) = Lewo
If Pind.3 = 0 Then
L = 1
Else
L = 0
End If
Wait 1
'
Servo(1) = Srodek
If Pind.3 = 0 Then
S = 1
Else
S = 0
End If
Wait 1
'
Servo(1) = Prawo
If Pind.3 = 0 Then
P = 1
Else
P = 0
End If
Wait 1
'===============================================================================ustawienie sie
If L = 0 And S = 0 And P = 1 Then                           'przeszkoda z lewej i srodek- przekreca w prawo
Porta = R(4)
Wait 1
End If
'                                                       '
If L = 1 And S = 0 And P = 0 Then                           'przeszkoda z prawej i srodek- przekreca w lewo
Porta = R(3)
Wait 1
End If
'
If L = 1 And S = 0 And P = 1 Then                           'przeszkoda na srodku- przekreca w prawo
Porta = R(4)
Wait 1
End If
'
If L = 0 And S = 0 And P = 0 Then                           'przeszkoda z kazdej strony- cofnij sie i skrec w prawo
Porta = R(2)
Wait 2
Porta = R(4)
Wait 1
End If
Return
Link do komentarza
Share on other sites

1.Przy akumulatorach + i - się nie zmienia, a tam podpinasz kondensator (od strony akumulatora jak najbliżej L293D , 470uF by spokojnie wystarczył, tylko low-esr).

2.Stabilizator 9V to fatalny pomysł. Prawdopodobnie nie wyrabia się. Do tego jeszcze podłączyłeś do niego stabilizator 5V, więc przy dużym spadku napięcia możesz resetować wszystko na szynie 5V.

Najlepiej kup jak najszybciej akumulatorki 6*AA i używaj ich. Serwa podłącz albo bezpośrednio pod akumulatorki (ale masz wtedy spore napięcie na nich), albo przez ODDZIELNY stabilizator 5V - nie ten sam co cyfrowe 5V. Tylko to będzie działać tylko przy słabych serwach i tak samo potrzebujesz dużego kondensatora low-esr.

Dobrze przemyśl zasilanie i poczytaj wcześniejsze posty na ten temat.

Link do komentarza
Share on other sites

100uF i 470 uF mam podpięte za i przed stabilizatorem 5V aby zredukować zakłócenia. te 4700uF byłoby tylko do samych silników już za L293.

Używam serwo micro HK15178, no ale skoro twierdzisz, żeby osobny stabilizator 5V do niego podłączyć to tak spróbuję.

sam stabilizator L293 aby dać 5V wyjściowe może na wejście przyjąć do 35V, to może całkiem bez stabilizator na 9V da radę?

Akumulatorki są w trakcie zamawiania poprzez Allegro

Link do komentarza
Share on other sites

L293D da radę, ale czy silniki też?

Za L293D nie podłączaj takiego kondensatora. Tam możesz dać 100nf ceramiczny bezpośrednio na złącza silnika (niektóre silniki mają ten kondensator już w obudowie) - pomaga likwidować szpilki.

Duży kondensator daj przy L293D ale od strony akumulatora. Dzięki temu nagle zmiany zapotrzebowania na prąd przez silnik (sterujesz go w końcu PWM) nie będą powodować gwałtownych spadków napięcia na akumulatorach/kablach itd.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.