Skocz do zawartości
Gunslinger

L293D Atemga8L Basom - Brak reakcji mostka H.

Pomocna odpowiedź

Witam.

Spięte jak na schemacie, z różnicą że na schemacie uciekło mi połączenie VCC1 do 4.5V (3 AA).

Schemat

+9V to zasilacz od pegazusa 500mA

Kod Bascom:

$regfile = "m8def.dat"                                      '
$crystal = 1000000


Config Portd = &B01111111
       Portd = &B11111000
Config Portb.0 = Output
Reset Pinb.0


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Pwm1a = 128                                                 'Max 255
Enable Interrupts
Pwm1b = 128                                                 'Max 255
Enable Interrupts


Do
Portb.0 = 1
Portd.7 = 0
Portd.6 = 0
Portd.5 = 1

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 25
Pwm1b = 0
Waitms 500
Pwm1a = 50
Pwm1b = 0
Waitms 500
Pwm1a = 75
Pwm1b = 0
Waitms 500
Pwm1a = 100
Pwm1b = 0
Waitms 500
Pwm1a = 125
Pwm1b = 0
Waitms 500
Pwm1a = 150
Pwm1b = 0
Waitms 500
Pwm1a = 175
Pwm1b = 0
Waitms 500
Pwm1a = 200
Pwm1b = 0
Waitms 500
Pwm1a = 225
Pwm1b = 0
Waitms 500
Pwm1a = 255
Pwm1b = 0
Waitms 500

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 0
Pwm1b = 25
Waitms 500
Pwm1a = 0
Pwm1b = 50
Waitms 500
Pwm1a = 0
Pwm1b = 75
Waitms 500
Pwm1a = 0
Pwm1b = 100
Waitms 500
Pwm1a = 0
Pwm1b = 125
Waitms 500
Pwm1a = 0
Pwm1b = 150
Waitms 500
Pwm1a = 0
Pwm1b = 175
Waitms 500
Pwm1a = 0
Pwm1b = 220
Waitms 500
Pwm1a = 0
Pwm1b = 225
Waitms 500
Pwm1a = 0
Pwm1b = 255
Waitms 500

Portb.0 = 0
Portd.7 = 1
Portd.6 = 1
Portd.5 = 0

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 25
Pwm1b = 0
Waitms 500
Pwm1a = 50
Pwm1b = 0
Waitms 500
Pwm1a = 75
Pwm1b = 0
Waitms 500
Pwm1a = 100
Pwm1b = 0
Waitms 500
Pwm1a = 125
Pwm1b = 0
Waitms 500
Pwm1a = 150
Pwm1b = 0
Waitms 500
Pwm1a = 175
Pwm1b = 0
Waitms 500
Pwm1a = 200
Pwm1b = 0
Waitms 500
Pwm1a = 225
Pwm1b = 0
Waitms 500
Pwm1a = 255
Pwm1b = 0
Waitms 500

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 0
Pwm1b = 25
Waitms 500
Pwm1a = 0
Pwm1b = 50
Waitms 500
Pwm1a = 0
Pwm1b = 75
Waitms 500
Pwm1a = 0
Pwm1b = 100
Waitms 500
Pwm1a = 0
Pwm1b = 125
Waitms 500
Pwm1a = 0
Pwm1b = 150
Waitms 500
Pwm1a = 0
Pwm1b = 175
Waitms 500
Pwm1a = 0
Pwm1b = 220
Waitms 500
Pwm1a = 0
Pwm1b = 225
Waitms 500
Pwm1a = 0
Pwm1b = 255
Waitms 500

Loop
End

Efekt: nic się nie dzieje. Atmega zimna. L293D wytwarza trochę ciepła. Silniki stoją (2 silniczki "modelarskie").

__________

Komentarz dodany przez: Treker

Udostępnij ten post


Link to post
Share on other sites
+9V to zasilacz od pegazusa 500mA

Pewnie zbyt mała wydajność prądowa.

Udostępnij ten post


Link to post
Share on other sites

Te dwa malutkie silniczki, tzw. modelarskie (czyli te co w małych autkach z marketów), uciągnie bez problemu. Chyba że L293D pożera min 70% energii.

Udostępnij ten post


Link to post
Share on other sites

Sprawdzałeś przy odpiętych silnikach czy L293D reaguje na komendy procesora? Czy np. na kanałach 1Y 2Y pojawia się odpowiednio (przykładowo) 5V i 0V? Silnik może nie działać ze względu na zasilanie, ale też ze względu na to że mostek nie reaguje na komendy procka więc warto by wyeliminować możliwość występowania błędu po tej stronie.

BTW możesz podłączyć ten silnik wprost do tego zasilacza (o ile dla tych silników 9V jest ok) i sprawdzić miernikiem ile pobierają prądu.

Udostępnij ten post


Link to post
Share on other sites

Miałem miernik ale się uwalił. Przez szkołę nie miałem czasu, ale wróciłem dziś. Na początek 3 nowe baterie, dalej nic. Następnie wpadłem na pomysł odpięcia zasilacza i dla testu zmostkowaniu zasilania silników i elektroniki. Silniki ruszyły, ale idą cały czas pełną parą.

Udostępnij ten post


Link to post
Share on other sites

Gunslinger pokaż proszę swój schemat połączeń (zrobiony, np. w Eaglu) i jak narazie ostatni kod jaki używałeś przy testach. Ten układ sprawdzasz na stykówce? Może zrób zdjęcie tego co zrobiłeś.

Udostępnij ten post


Link to post
Share on other sites

Schemat mogę wykonać, zdjęcia też. Mam drugi h, atmegę mogę wypiąć, stykówkę i 75 kabli. Można spróbować.

[ Dodano: 19-09-2014, 20:50 ]

Schemat jak u góry. Oczywiście z pominiętym VCC1 do +4.5. Spiąłem układ od nowa na stykówce. Tym razem tylko jeden silnik. Układ daje też oznaki życia, ale inne. Silnik ten ledwo buczy przez jakieś 5s i przez drugie tyle stoi. Konfiguracja taka sama jak na lutowanej płytce, a efekt inny. Nie wiem o co chodzi.

$regfile = "m8def.dat"                                      '
$crystal = 1000000


Config Portd = &B01111111
       Portd = &B11111000
Config Portb.0 = Output
Reset Pinb.0


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Pwm1a = 128                                                 'Max 255
Enable Interrupts
Pwm1b = 128                                                 'Max 255
Enable Interrupts


Do
Portb.0 = 1
Portd.7 = 0
Portd.6 = 0
Portd.5 = 1

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 25
Pwm1b = 0
Waitms 500
Pwm1a = 50
Pwm1b = 0
Waitms 500
Pwm1a = 75
Pwm1b = 0
Waitms 500
Pwm1a = 100
Pwm1b = 0
Waitms 500
Pwm1a = 125
Pwm1b = 0
Waitms 500
Pwm1a = 150
Pwm1b = 0
Waitms 500
Pwm1a = 175
Pwm1b = 0
Waitms 500
Pwm1a = 200
Pwm1b = 0
Waitms 500
Pwm1a = 225
Pwm1b = 0
Waitms 500
Pwm1a = 255
Pwm1b = 0
Waitms 500

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 0
Pwm1b = 25
Waitms 500
Pwm1a = 0
Pwm1b = 50
Waitms 500
Pwm1a = 0
Pwm1b = 75
Waitms 500
Pwm1a = 0
Pwm1b = 100
Waitms 500
Pwm1a = 0
Pwm1b = 125
Waitms 500
Pwm1a = 0
Pwm1b = 150
Waitms 500
Pwm1a = 0
Pwm1b = 175
Waitms 500
Pwm1a = 0
Pwm1b = 220
Waitms 500
Pwm1a = 0
Pwm1b = 225
Waitms 500
Pwm1a = 0
Pwm1b = 255
Waitms 500

Portb.0 = 0
Portd.7 = 1
Portd.6 = 1
Portd.5 = 0

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 25
Pwm1b = 0
Waitms 500
Pwm1a = 50
Pwm1b = 0
Waitms 500
Pwm1a = 75
Pwm1b = 0
Waitms 500
Pwm1a = 100
Pwm1b = 0
Waitms 500
Pwm1a = 125
Pwm1b = 0
Waitms 500
Pwm1a = 150
Pwm1b = 0
Waitms 500
Pwm1a = 175
Pwm1b = 0
Waitms 500
Pwm1a = 200
Pwm1b = 0
Waitms 500
Pwm1a = 225
Pwm1b = 0
Waitms 500
Pwm1a = 255
Pwm1b = 0
Waitms 500

Pwm1a = 0
Pwm1b = 0
Waitms 500
Pwm1a = 0
Pwm1b = 25
Waitms 500
Pwm1a = 0
Pwm1b = 50
Waitms 500
Pwm1a = 0
Pwm1b = 75
Waitms 500
Pwm1a = 0
Pwm1b = 100
Waitms 500
Pwm1a = 0
Pwm1b = 125
Waitms 500
Pwm1a = 0
Pwm1b = 150
Waitms 500
Pwm1a = 0
Pwm1b = 175
Waitms 500
Pwm1a = 0
Pwm1b = 220
Waitms 500
Pwm1a = 0
Pwm1b = 225
Waitms 500
Pwm1a = 0
Pwm1b = 255
Waitms 500

Loop
End

Udostępnij ten post


Link to post
Share on other sites

1. Narysuj ten schemat po Bożemu (w programie Eagle...), przynajmniej się czegoś nauczysz, a nam Forumowiczom będzie się lepiej czytało takie schematy.

2. Zrób zdjęcie i wrzuć je na Forbota (nie na inne strony).

3. Napisz jeszcze bardziej prostszy program do włączenia silnika w jedną stronę (obojętnie którą), np. na 2 sekundy i 2 sekundy przerwy (silnik się nie kręci).

Po tym jak to wykonasz zobaczymy co się da zrobić.

Udostępnij ten post


Link to post
Share on other sites
$regfile = "m8def.dat"                                      '
$crystal = 1000000


Config Portd = &B01111111
       Portd = &B11111000
Config Portb.0 = Output
Reset Pinb.0
Config Portb.1 = Output
Set Pinb.1
Config Portb.2 = Output
Set Pinb.2


Do
Portb.0 = 1
Portd.7 = 0
Portd.6 = 0
Portd.5 = 1

Wait 5

Portb.0 = 0
Portd.7 = 1
Portd.6 = 1
Portd.5 = 0


Wait 5

Loop
End

Już chyba wiem gdzie problem. Spiąłem tak, silnik stoi. Wypinałem podstawkę (miałem wlutowaną podstawkę, podstawkę, a w niej procek), silnik ruszył i stanął. Wpiąłem sam procek w podstawkę, ruszył, pochodził z 10s, stanął. Rzuciłem płytką z 5cm, znowu ruszył. Użyłem taniego PCB, za cholerę ni chciało lutować i musiały powstać zimne luty.

Udostępnij ten post


Link to post
Share on other sites
Już chyba wiem gdzie problem. Spiąłem tak, silnik stoi. Wypinałem podstawkę (miałem wlutowaną podstawkę, podstawkę, a w niej procek), silnik ruszył i stanął. Wpiąłem sam procek w podstawkę, ruszył, pochodził z 10s, stanął. Rzuciłem płytką z 5cm, znowu ruszył. Użyłem taniego PCB, za cholerę ni chciało lutować i musiały powstać zimne luty.

Za bardzo nie rozumiem opisu ale udało się w końcu uruchomić silnik, tak aby działał jak chcesz? (w tym przypadku 5 sec - kręci, 5 sec - stoi).

Udostępnij ten post


Link to post
Share on other sites

5s w jedną, 5s w drugą. Działa, ale płytka (ta lutowana) jest wrażliwa na ruch. Nie działo, rzuciłem nią z 5cm działa, porusze nie działa. PCB było tanie, i za cholerę nie chciało lutować. Musiały powstać gdzieś zimne luty. Jak nie będzie już przerywać, to wrócę do PWM.

Udostępnij ten post


Link to post
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!

Gość
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...