Skocz do zawartości

Niedziałający układ L293DNE+ATMEGA8


Poczwara_13

Pomocna odpowiedź

Witam wszystkich, mój problem jest następujący; zabrałem się za zbudowanie pierwszego robota (dość prostego) który będzie sterowany 4 switch'ami, w miarę możliwości napisałem program do ATMEGI8, ale niestety układ do sterowania silniczkami niedziała (brak napięcia na 1Y,2Y,3Y,4Y), moje pytanie brzmi czym może być to spowodowane??

Sam układ L293DNE jest podłączony w następujący sposób:

1,2EN- +5V

1A- ATMEGA8 (PC3)

1Y-silnik

GND

GND

2Y-silnik

2A- ATMEGA (PC2)

Vcc2- +5V

Vcc1- +5V

4A-ATMEGA(PC0)

4Y-silnik

GND

GND

3Y-silnik

3A-ATMEGA(PC1)

3,4EN- +5V

Dziękuje za pomoc:) Pozdrawiam:)

Link do komentarza
Share on other sites

Fajnie było by gdybyś wrzucił schemat i program.

1) Połaczyłeś masy obu układów?

2)Napiecie doprowadzone do silników powinno być większe od napięcia logiki chodź myślę, że to nie jest głównym powodnem nie działania silników.

3)Sprawdz czy jest napięcie na wyjściu Atmegi tj. PC0, PC1, PC2, PC3.

Link do komentarza
Share on other sites

Programik nie jest do końca jeszcze dopracowany ale proszę bardzo;

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

Do

'linia PD6 (wej)
Config Portd.6 = Input

'linia PD7 (wyj)
Config Portd.7 = Output
'linia PD6 stan wysoki
Portd.6 = 1
'linia PD7 stan niski
Portd.7 = 0

'linia PC0 wyjściowa
Config Portc.0 = Output
'linia PC1 wyjściowa
Config Portc.1 = Output
'linia PC2 wyjściowa
Config Portc.2 = Output
'linia PC3 wyjściowa
Config Portc.3 = Output


'wyzerowanie lini PC0,PC1,PC2,PC3
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0

If Pind.6 = 0 Then
Portc.3 = 1
Else
Portc.3 = 0
End If


'linia PD4 (wej)
Config Portd.4 = Input

'linia PD5 (wyj)
Config Portd.5 = Output
'linia PD4 stan wysoki
Portd.4 = 1
'linia PD5 stan niski
Portd.5 = 0

'linia PC0 wyjściowa
Config Portc.0 = Output
'linia PC1 wyjściowa
Config Portc.1 = Output
'linia PC2 wyjściowa
Config Portc.2 = Output
'linia PC3 wyjściowa
Config Portc.3 = Output


'wyzerowanie lini PC0,PC1,PC2,PC3
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0

If Pind.4 = 0 Then
Portc.1 = 1
Else
Portc.1 = 0
End If

'linia PD3 (wej)
Config Portd.2 = Input

'linia PD2 (wyj)
Config Portd.3 = Output
'linia PD3 stan wysoki
Portd.2 = 1
'linia PD2 stan niski
Portd.3 = 0

'linia PC0 wyjściowa
Config Portc.0 = Output
'linia PC1 wyjściowa
Config Portc.1 = Output
'linia PC2 wyjściowa
Config Portc.2 = Output
'linia PC3 wyjściowa
Config Portc.3 = Output


'wyzerowanie lini PC0,PC1,PC2,PC3
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0

If Pind.2 = 0 Then
Portc.0 = 1
Portc.2 = 1
Else
Portc.0 = 0
Portc.2 = 0
End If

'linia PD0 (wej)
Config Portd.0 = Input

'linia PD1 (wyj)
Config Portd.1 = Output
'linia PD0 stan wysoki
Portd.0 = 1
'linia PD1 stan niski
Portd.1 = 0

'linia PC0 wyjściowa
Config Portc.0 = Output
'linia PC1 wyjściowa
Config Portc.1 = Output
'linia PC2 wyjściowa
Config Portc.2 = Output
'linia PC3 wyjściowa
Config Portc.3 = Output


'wyzerowanie lini PC0,PC1,PC2,PC3
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0

If Pind.0 = 0 Then
Portc.1 = 1
Portc.3 = 1
Else
Portc.1 = 0
Portc.3 = 0
End If

Loop

Co do schematu muszę narysować, bo mam tylko płytke do termotransferu w PDF'ie.

Ad.1) Masy są połączone.

Ad.3) Tak jest napięcie;) Program jakoś działa, doskonały nie jest ale funkcja 'prawo' i 'lewo' jest ok:)

__________

Komentarz dodany przez: Nawyk

Używaj znaczników [ code] i [ /code]

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

staraj się wstawiać program w znacznik

[code.][/code.]
sprawdź ten prosty program
$regfile = "m8def.dat"
$crystal = 1000000
Config Portc = Output    'portc jako wyjście
Portc = &B00000000      'stan niski na porcie
Config Portd = Input       'portd jako wejście
Portd = &B11111111       'stan wysoki na porcie
Do
If Pind.6 = 0 Then                   'zakładam ze przycisk masz zwarty do masy nie do vcc :)
Portc.0 = 0        
Portc.1 = 1
Portc.2 = 0
Portc.3 = 1
Else
Portc.0 = 1
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
End If
Loop

Po wgraniu programu silniki powinny sie odrazu zacząc kręcic, natomiast kiedy wcisniesz przycisk(pind.6). silniki zaczną krecic w odwrotną stronę.

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.