Skocz do zawartości

Robot odkurzacz


Chester11-86

Pomocna odpowiedź

No dobrze jak sobie nie radzisz ze scrollem aby zjechać na dół i zobaczyć schamet oraz kod to wstawie tutaj 🙂

Schemat na którym się wzorowałem:

Zamiast L293 użyłem L298 i podłączyłem według tego schematu, gdzie wejścia pwm podłączyłem do +5V:

https://www.forbot.pl/forum/topics20/h-bridge-vt111.htm

Przepraszam że nie wstawiłem obrazka ale nie dało się po wybraniu pliku i kliknięciu wyślij nic się nie działo, dziwne bo przy pierwszym wszystko wyszło:(

Program jaki wgrałem do attiny2313

$regfile = "attiny2313.dat"
$crystal = 4000000

Config Pind.6 = Output                                      'ustalanie portow wyjscowych
Config Pinb.0 = Output
Config Pinb.2 = Output
Config Pinb.1 = Output
Config Pind.0 = Input                                       'ustalanie portow wejscoiwych
Config Pind.1 = Input
Config Pind.2 = Input


Czujnik_1 Alias Pind.0                                      'zmiana nazw portow
Czujnik_2 Alias Pind.1
L1_a Alias Portd.6
L1_b Alias Portb.0
L2_a Alias Portb.2
L2_b Alias Portb.1

Set Portd.0                                                 'podcaganie portu
Set Portd.1
Set Portd.2

L1_a = 1                                                    'ustalenie stanow niskich
L1_b = 1                                                    'na wyjsciach
L2_a = 1
L2_b = 1





Do                                                          'glowny program

  Waitms 90                                                'czekaj 90ms


  If Czujnik_1 = 0 Then                                    'jesli czu.1 zostanie zalaczony to przejdz do Cofnij
     Waitms 15
     Gosub Cofnij
  Elseif Czujnik_2 = 0 Then                                'jesli czu.2 zostanie zalaczony to przejdz do Cofnij
     Waitms 15
     Gosub Cofnij
  Else
     L1_a = 0
     L2_a = 0
     L1_b = 1
     L2_b = 1
  End If                                                   'jesli nic nie zostalo zalaczone to jedz
Loop
End


Cofnij:
  L1_a = 1                                                 'ustalenie stanow niskich
  L1_b = 1                                                 'na wyjsciach
  L2_a = 1
  L2_b = 1
  Waitms 30                                                'czekaj 30ms
  L1_b = 0                                                 'cofaj
  L2_b = 0
  Waitms 100                                               'obroc sie
  L1_b = 1
  L1_a = 0
  Waitms 160
  L1_a = 1                                                 'zatrzymaj obrot
  L1_b = 1
  L2_a = 1
  L2_b = 1

Return       

Ktoś wie czemu to nie działa 🙁 nie pojawia się napięcie na silnikach 🙁

Dlaczego piszę w tym poście ponieważ nie wiem czy uda mi się zbudować tego robota:P jeżeli tak to temat można przenieść albo wszystko zebrać do kupy i się pochwalić a jeżeli nic z tego nie wyjdzie to będzie go można bardzo łatwo skasować 🙂

Link do komentarza
Share on other sites

reakcja jest strasznie dziwna po naciśnięciu jednego ze styków na to na porcie pd6 pojawia sie +5 a na porcie pb0 pojawia się 0 natomiast gdy puszcze styk wszystko wraca do poprzedniego stanu i tyle 🙁 Zaprogramowało się wszystko, nawet dobrze się program skompilował. Czy to może być wina programatora?? Czy mógłby ktoś napisać prosty program na procek attiny2313 na mruganie diody??

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

matrix, hmm może się nie zrozumieliśmy ale napisałem wcześniej że procesor podaje napięcie na nóżki mostka więc sprawdziłem i faktycznie jest na tej nóżce napięcie więc chyba mija się z celem aby z zewnątrz podawał napięcie i to sprawdzał??

Link do komentarza
Share on other sites

Driver czyli mostek?

Napisałem sobie program

$regfile = "attiny2313.dat"                 'najpierw określamy typ proca 
$crystal = 4000000                          '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 

  if pinb.0=1 then                         'jeżeli przycisk 1 wciśnięty 
  toggle portd.0                           'zmień stan wyprowadzenia 
  endif                                    'koniec bloku warunkowego 

loop                                       'koniec pętli 

end                                         'koniec programu 

zaprogramowałem procka i po włączeniu dioda mruga a gdy włącze zasilanie to świeci. Co jest grane?? bo ja już tego nie rozumie 🙁

na porcie jest 3,44V po włączeniu przycisku jest 2,55V 🙁 dziwne 🙁

Link do komentarza
Share on other sites

A dlaczego tak to sterujesz? W procach od dawna wszystko steruje się z logicznego zera.

Napisz :

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


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


do                                         'pętla nieskończona 

  if pinb.0=0 then                         'jeżeli przycisk 1 wciśnięty 
  toggle portd.0                           'zmień stan wyprowadzenia 
  endif                                    'koniec bloku warunkowego 

loop                                       'koniec pętli 

end   
Link do komentarza
Share on other sites

Szuszy, oczywiście że użyłem diód. Wykorzystałem 1N5818 🙂

matrix, twój program jakoś u mnie nie działa 🙁 Po włączeniu zasilania na porcie diody jest napięcie 4,85V, po włączeniu przycisku jest 2,57V , po wyłączeniu przycisku jest 0,02V po ponownym włączeniu jest 2,57V po ponownym wyłączeniu jest 0,02V i za trzecim razem jak włącze przycisk jest 4,87V 🙁 masakra jak dla mnie 🙁

Link do komentarza
Share on other sites

Dobra, zrobimy inaczej. Napisz tak:

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

config pinb.0=input                          
      set pinb.0
config portd.0=output                         
      set portd.0

do                                         'pętla nieskończona 

  if pinb.0=0 then                         'jeżeli przycisk 1 wciśnięty 
   toggle portd.0                           'zmień stan wyprowadzenia 
  endif

'opóźnienie potrzebne bo program sprawdzi
'stan końcówki wiele razy w ciągu sekundy
waitms 200 
loop                                       'koniec pętli 
end 

i podepnij diodę do portu od strony katody, a anodę do plusa przez rezystor. przycisk oczywiście też do masy.

Link do komentarza
Share on other sites

Chester11-86, widzę, że nie rozumiesz podstaw, jak wciśniesz przycisk i trzymasz go cały czas to na wyjściu jest połowa napięcia zasilania, w zasadzie jest to wartość średnia, którą mierzy twój miernik. Dzieje się tak ponieważ mikrokontroler tak szybko zmienia stan na tym wyjściu z 0 na 1, że twój miernik mierzy połowę napięcia zasilania, gdyż przez połowę czasu na tym pinie jest 0 i przez połowę około 5V. Abyś zauważył migotanie diody musisz w pętli dodać jakiegoś Wait'a np Waitms 500. Pozatym przyjęło się aby przyciski zwierały pin mikrokontrolera w AVRach do masy, nie do plusa.

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.