Skocz do zawartości

Pierwsze uruchomienie linefollower z programem


Patryk614

Pomocna odpowiedź

Witam, mam taki problem gdy sprawdziłem czy działa elektronika i wgrałem program włączyłem zasilanie. I jeden z silników zaczął się kręcić do przodu a drugi stoi. Co może być nie tak? Może, że nie dobrze podłączyłem silniki czyli + i -? Proszę o pomoc. 🙂😉

$regfile = "m88def.dat"
$crystal = 16000000

'Konfiguracja przetwornika analog-cyfra (ADC)
Config Adc = Single , Prescaler = Auto

'Konfiguracja sterowania sprzętowym PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

'Konfiguracja portów
Config Portb = Output
Config Portd = &B01111111
Config Portc = Input

Portd.7 = 1

Przycisk Alias Pind.7
    Led Alias Portd.6
Enable_a Alias Portb.1
Enable_b Alias Portb.2
Silnik_prawy_a Alias Portd.3
Silnik_prawy_b Alias Portd.2
Silnik_lewy_a Alias Portd.1
Silnik_lewy_b Alias Portd.0

'Opis portów
'Enable_a - Silnik lewy - Portb.1 (PWM1A)
'Enable_b - Silnik prawy - portb.2 (PWM1B)
'Input1 - Silnik prawy A - Portd.3
'Input2 - Silnik prawy B - Portd.2
'Input4 - Silnik lewy A - Portd.0
'Input3 - Silnik lewy B - Portd.1
'Dioda - Portd.6
'Czujnik lewy końcowy - ADC5
'Czujnik lewy - ADC4
'Czujnik środkowy1 - ADC3
'Czujnik środkowy2 - ADC2
'Czujnik prawy - ADC1
'Czujnik prawy końcowy - ADC0

'Granica reagowania na linię - należy dobrać doświadczalnie
Const Granica = 500

'Deklaracje zmiennych
Dim Czujnik_lewy1 As Single
Dim Czujnik_lewy As Single
Dim Czujnik_srodkowy1 As Single
Dim Czujnik_srodkowy2 As Single
Dim Czujnik_prawy As Single
Dim Czujnik_prawy1 As Single
Dim W As Word

'Blok instrukcji
Set Silnik_lewy_a
Reset Silnik_lewy_b
Set Silnik_prawy_a
Reset Silnik_prawy_b

Do

  Gosub Wczytaj_stany_przetwornikow
  If Czujnik_srodkowy1 > Granica Then
     'Silnik lewy - maksymalna prędkość
     Pwm1a = 255
     'Silnik prawy - maksymalna prędkość
     Pwm1b = 255
  Elseif Czujnik_srodkowy2 > Granica Then
     Pwm1a = 255
     Pwm1b = 255
  Elseif Czujnik_lewy > Granica Then
     Pwm1a = 0
     Pwm1b = 255
  Elseif Czujnik_lewy1 > Granica Then
     Pwm1a = 0
     Pwm1b = 255
  Elseif Czujnik_prawy > Granica Then
     Pwm1a = 255
     Pwm1b = 0
  Elseif Czujnik_prawy1 > Granica Then
     Pwm1a = 255
     Pwm1b = 0
     Else
     Pwm1a = 255
     Pwm1b = 255
  End If
Loop
End

Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(0)
W = Getadc(0)
Stop Adc
Czujnik_prawy = W
Start Adc
W = Getadc(1)
W = Getadc(1)
Stop Adc
Czujnik_lewy1 = W
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_lewy = W
W = Getadc(4)
W = Getadc(4)
Stop Adc
Czujnik_srodkowy1 = W
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_srodkowy2 = W
W = Getadc(2)
W = Getadc(2)
Stop Adc
Czujnik_prawy1 = W
Return

Gdzie powinien być plus a gdzie minus na zaciskach silnika? 🙂😉

Link do komentarza
Share on other sites

Program, że tak powiem, znajomy. Spróbuj przysłaniać ręką część czujników, przy takiej pętli robot zawsze będzie reagował na spełnienie pierwszego warunku. A tak w ogóle, to wyklej sobie taśmą trasę i sprawdź, bo "w powietrzu" to się różne cuda mogą dziać.

Link do komentarza
Share on other sites

Może w schemacie gdzieś jest błąd, albo nie przylutowałeś. Na pewno testowałeś na trasie? Serwo/silnik na pewno jest sprawne/y? I po raz kolejny apeluję - jeśli chcesz sprawdzenia połączeń, to umieszczaj schemat a nie PCB. PCB jest dla Ciebie, nikomu nie chce się rozkminiać które ścieżki jak są poprowadzone...

PS Nie widzę nigdzie obsługi owego "startu"

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

Witam, sprawdziłem oba silniki działąją. Jeszcze zmierzyłem napięcie na obu zaciskach i na prawym jest 7,95V a na lewym 2,55V, coś nie tak. 😖

[ Dodano: 12-05-2011, 18:45 ]

co do startu to na płytce podpisane start.

Co do kondensatorów przy stabilizatorze to elektrolity 470uF i 100uF a ceramiczne to 047nF (0,47 K. 63) i 220nF a stabilizator to LM2940CT. Dioda to 1N4007.

[ Dodano: 12-05-2011, 18:48 ]

Na trasie jak przyłożyłem to tak jak mówiłem tylko prawy.

[ Dodano: 12-05-2011, 19:10 ]

Wiecie, może co jest nie tak? 😥

[ Dodano: 12-05-2011, 19:11 ]

silniki pololu 30:1 HP

Link do komentarza
Share on other sites

Obczaj miernikiem napięcia z wyjść czujników i daj je tutaj. Pomagała zmiana granicy wykrywania?

Z przyciskiem, to najprościej, co nie znaczy najbardziej elegancko jest zrobić pętle z wyjściem w momencie naciśnięcia przycisku 😉

Link do komentarza
Share on other sites

Jak sądze myślisz o switch nie wlutowałem przełącznik kołyskowy

[ Dodano: 12-05-2011, 19:41 ]

Miedzy emiterem a kolektorem jest 4,8V

[ Dodano: 12-05-2011, 20:48 ]

O to ci chodziło?

[ Dodano: 12-05-2011, 21:32 ]

A jak sprawdzić czy mostek działa? Może coś się uszkodziło? 🙂😉

Link do komentarza
Share on other sites

Mostek sprawdź zmieniając program - prosto 1s przerwy, tył 1s przrwy itd.

Chodziło mi, żebyś sprawdził napięcie między masą a wyjściem wszystkich czujników i wypisał. Ale najpierw spróbuj zmienić granicę.

Link do komentarza
Share on other sites

spróbuj wgrać program który tylko i wyłącznie włączy silniki a po jakimś czasie wyłączy jeśli zadziała można wyeliminować błędy w połączeniach bo program raczej jest dobry

//edit

Ehh zostałem ubiegnięty

Link do komentarza
Share on other sites

Ok, jutro to zrobię. Dzięki. 🙂😉

[ Dodano: 13-05-2011, 18:12 ]

Witam, trochę obniżyłem robota, nakleiłem czarną taśmę na górę czujników i włączyłem zasilanie. Silnik prawy tak jak mówiłem ostatnio kręci się do przodu a lewy nic. Ale gdy postawiłem robota na trasie i przesuwałem czujnikami na prawo i lewo to prawy raz się zatrzymywał i jakwy trochę zwalniał lub nic nie robił. Czyli obniżenie i czarna taśma pomogły. I jeszcze raz zmierzyłem napięcie na zaciskach silników i na prawym 7.78V a na lewym 2.54V. Coś mi to nie pasuje, możliwe, że uszkodziła się część mostka dotyczącego lewego silnika. I tak jak chciał Mihau zameszczam wyniki pomiarów napięc między emiterem a kolektorem:

czujnik końcowy lewy 3.66V

lewy 3.86V

środkowy1 3.70V

środkowy2 3.87V

Prawy 4,11V

końcowy prawy 3.86V

 

I co do przycisku startu robota to o to chodzi. Bo wpisałem do programu przed blokiem instrukcyjnym i nie działa. Może coś jest żle:

 

BITWAIT bit , SET | RESET

Bitwait Pind.7, Reset    'czekaj aż 7 linia portu D będzie w stanie 0.

 

Proszę o pomoc. 🙂😉

Link do komentarza
Share on other sites

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.