Skocz do zawartości

Pierwszy LF problem z uruchomieniem


aixI

Pomocna odpowiedź

Cześć, wgrałem program do procka, potem chciałem włączyć robota i? I nic się nie dzieje. Dioda (zielona), która sygnalizuje włączenie robota świeci, czujniki (diody ir) świecą, tylko jak kręciłem potencjometrem nic się nie dzieje nawet białe diody led w ogóle się nie zapalają.

Gdy dotknąłem radiatora, który jest przykręcony do stabilizatora był ciepły, wtedy wyłączyłem robota. Układ zasilam zasilaczem o napięciu 16V, które przechodzi przez stabilizator 5V i daje 5V.

Kod:

$regfile = "2313def.dat"
$crystal = 1000000

'Konfiguracja sterowania PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up

'Konfiguracja portów
##wyjscia##
Config Pinb.5 = Input
Config Pinb.6 = Input
Config Pinb.7 = Input

##wejscia##
Config Pinb.4 = Output
Reset Portb.4
Config Pinb.3 = Output
Reset Portb.3
Config Pind.2 = Output
Reset Portd.2
Config Pind.5 = Output
Reset Portd.5
Config Pind.4 = Output
Reset Portd.4
Config Pind.3 = Output
Reset Portd.3
Config Pind.0 = Output
Reset Portd.0

PORTB.5 = 1 
PORTB.6 = 1 
PORTB.7 = 1

'Opis prtów
'Enable1 - silnik lewy - PortB.4                      (PWM1A)
'Enable2 - silnik prawy - PortB.3                     (PWM1B)
'Input1 - Silnik lewy A - PortD.2
'Input2 - Silnik lewy B - PortD.5
'Input3 - Silnik prawy A - PortD.3
'Input4 - Silnik prawy B - PortD.4
'Dioda - PortD.0

Sensor_1 Alias Portb.5
Sensor_2 Alias Portb.6
Sensor_3 Alias Portb.7
Silnik_lewy_a Alias Portd.2
Silnik_lewy_b Alias Portd.5
Silnik_prawy_a Alias Portd.4
Silnik_prawy_b Alias Portd.3
Dioda Alias Portd.0


'Deklaracje zmiennych
Dim Czujnik_lewy As Single
Dim Czujnik_srodkowy As Single
Dim Czujnik_prawy As Single
Dim W As Word

'Blok instrukcji
Set Dioda
Set Silnik_lewy_a
Reset Silnik_lewy_b
Set Silnik_prawy_a
Reset Silnik_prawy_b

Do
Set Dioda
 If Sensor_1 = 0 Then
   If Sensor_3 = 1 Then
     Gosub Skrecaj_w_lewo
   Else
     Gosub Jedz_prosto
   End If
 Elseif Sensor_3 = 0 Then
   If Sensor_1 = 1 Then
     Gosub Skrecaj_w_prawo
   Else
     Gosub Jedz_prosto
   End If
 Else
   Gosub Jedz_prosto
 End If


Loop
End		'end program

Jedz_prosto:
 Set Silnik_lewy_a
 Set Silnik_lewy_b
 Reset Silnik_prawy_a
 Reset Silnik_prawy_b
Return

Skrecaj_w_prawo:
 Set Silnik_lewy_a
 Reset Silnik_lewy_b
 Reset Silnik_prawy_a
 Reset Silnik_prawy_b
 Waitms 10
Return

Skrecaj_w_lewo:
 Set Silnik_prawy_a
 Reset Silnik_prawy_b
 Reset Silnik_lewy_a
 Reset Silnik_lewy_b
 Waitms 10
Return

Scheamty:

__________

Komentarz dodany przez: Treker

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

piotreks-89 Silniki to przerobione serwa modelarskie. http://electropark.pl/inne/2111-serwo-turnigy-tg9e-9g-1-5kg-5901002111006.html

zuba1 A jaka to różnica, jak vcc1 podłącze do vcc2?

Co do PWM to co może być źle?

'Konfiguracja sterowania PWM 
Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up

sosnus Dioda zielona to "Led1"

Co do procka, to wcześniej sprawdzałem czy właśnie led mruga i procek działa dobrze.

[ Dodano: 27-08-2012, 19:48 ]

Mostek H jaki używam to L293DNE.

Link do komentarza
Share on other sites

Co do procka, to wcześniej sprawdzałem czy właśnie led mruga i procek działa dobrze.

Ale sprawdź czy działa led w robocie (nie na płytce stykowej), w ten sposób sprawdzisz czy ścieżki zasilania są dobrze poprowadzone.

Link do komentarza
Share on other sites

Ok, sprawdziłem czy dioda będzie migać. I migała tylko trochę może przez 15/20 sekund i przestała. Wyłączyłem układ i włączyłem na nowo i już nie migała.

Wcześniej pojawiły się takie 3 komunikaty:

1.

2.

3.

Wgrałem tan program:

$regfile = "attiny2313.dat"                 'najpierw określamy typ proca 
$crystal = 1000000                          'definiujemy z jakim taktowaniem będzie pracował 


config portb=input                          'port b  jako wejścia 
      portb=&B00000000                     'wszędzie stan spoczynkowy-0 
config portd=output                         'pprt d jako wyjścia 
      portd=&B0000000                      'wszędzie stan spoczynkowy-0 


do                                         'pętla nieskończona 

   waitms 50                              'czekaj 0,5 sekundy 
   toggle portd.0                          'zmień stan wyprowadzenia 
   waitms 50
loop                                       'koniec pętli 

end                                         'koniec programu 

A jak na trochę wyłączę układ to znowu miga 😃 (trochę to może być hmm 5/10min)

Nie mogę w ogóle oczyścić procka bo wyskakują tamte błędy. "Erase Chip"

A dioda led raz mruga a raz nie ;/

Link do komentarza
Share on other sites

W każdym razie program nie zachowuje się do końca tak, jak powinien? Sprawdź multimetrem czy ścieżki są dobrze połączone i czy nie ma zwarć. Ja po podczas pierwszego uruchomienia robota też miałem problem. Okazało się, że przerwane miałem ścieżki PWM, i RESETu, po poprawieniu ich, wszystko było ok.

Link do komentarza
Share on other sites

Wgrałem tan program:
$regfile = "attiny2313.dat"                 'najpierw określamy typ proca 
$crystal = 1000000                          'definiujemy z jakim taktowaniem będzie pracował 


config portb=input                          'port b  jako wejścia 
      portb=&B00000000                     'wszędzie stan spoczynkowy-0 
config portd=output                         'pprt d jako wyjścia 
      portd=&B0000000                      'wszędzie stan spoczynkowy-0 


do                                         'pętla nieskończona 

   waitms 50                              'czekaj 0,5 sekundy 
   toggle portd.0                          'zmień stan wyprowadzenia 
   waitms 50
loop                                       'koniec pętli 

end                                         'koniec programu 

Co do programu to, jeśli konfigurujesz port jako wejście to powinien ustawić na nim stan wysoki, a nie niski. Na port ustawiony jako wyjściowy musisz podawać stan wysoki, bo niskim włączysz na starcie diodę, a tego chyba nie oczekiwałeś?

Link do komentarza
Share on other sites

Wczoraj wieczorem sprawdzałem multimetrem jeszcze raz płytę główną i z czujnikami i nie zauważyłem żadnych zwarć, ani zimnych lutów. Wracając do tej diody led przy uC ((niebieskiej)LED4) to jak włączam układ to mruga i przestaje, raz mocniej a raz słabiej, a jeszcze raz to w ogóle nie mruga, a układ jest zasilany.

W każdym razie program nie zachowuje się do końca tak, jak powinien?

Sosnus Co to znaczy, że nie zachowuje się tak jak powinien?

Błędy 1 i 2 oznaczają, że program nie może połączyć się z uC. Sprawdź dokładnie, czy wszystkie przewody do programowania ci łączą, czy nie ma zimnych lutów itp.

bartek1333 Sprawdziłem połączenia multimetrem i było wszystko połączone. Więc nie wiem czemu program nie może się połączyć z uC.

Może wyjmę uC z podstawki, włożę go na stykówkę i zobaczę czy w ogóle tak się będzie komunikował z programem. (może to trochę ryzykowne, ale...)

Link do komentarza
Share on other sites

Wracając do tej diody led przy uC ((niebieskiej)LED4) to jak włączam układ to mruga i przestaje, raz mocniej a raz słabiej, a jeszcze raz to w ogóle nie mruga, a układ jest zasilany.
W każdym razie program nie zachowuje się do końca tak, jak powinien?

Sosnus Co to znaczy, że nie zachowuje się tak jak powinien?

Czy to co napisałeś powyżej było zamierzonym efektem pracy Twojego układu?

Wydaje mi się że nie, więc albo masz problemy z zasilaniem, albo coś źle podłączyłeś.

Mógłbyś pokazać jak wygląda ta płytka od góry?

Błędy 1 i 2 oznaczają, że program nie może połączyć się z uC. Sprawdź dokładnie, czy wszystkie przewody do programowania ci łączą, czy nie ma zimnych lutów itp.

bartek1333 Sprawdziłem połączenia multimetrem i było wszystko połączone. Więc nie wiem czemu program nie może się połączyć z uC.

W którym miejscu sprawdzałeś? Podłącz multimetr bezpośrednio do procka (od góry) a z drugiej strony bezpośrednio do goldpina w którym powinien być sygnał z tej nóżki, rozumiesz co mam na myśli?
Może wyjmę uC z podstawki, włożę go na stykówkę i zobaczę czy w ogóle tak się będzie komunikował z programem. (może to trochę ryzykowne, ale...)

Co w tym ryzykownego?

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.