PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : L293D wie schalten ?



Barthimaeus
13.11.2007, 22:32
Ich möchte zum testen des Chips den Motor einfach mal in eine Richtung laufen lassen, ohne PWM. Ich hab mir mit Hilfe des Wikis folgende (billig) Schaltung gebastelt:

Was ist falsch?

recycle
14.11.2007, 00:55
Was ist falsch?

- die Versorgungsspannung für den Motor auf GND zu legen
- die Beschaltung für den Enable Pin wegzulassen
- die Beschaltung für den 2. Eingang wegzulassen

Barthimaeus
14.11.2007, 12:25
erst mal denke schön - Fragen die sich leider trotzdem noch ergeben:

1: Wo soll ich die Versorgungsspannung sonst anlegen wenn nicht zwischen VCC und GND?

2. Da hasst du Recht, ich habe vergessen den enable pin mit VCC zu verbinden (aber nur in der zeichnung)

3. Die Beschaltung für den 2. Eingang hab ich weggelassen, weil der Motor sich doch drehen soll, wenn ein Eingang auf high ist und einer auf low, also müsste das doch eigentlich IO sein.

Kann mir villeicht jmd. aml eine ähnliche wie die meine Skizze anfertigen, die noch dazu richtig ist?

Hubert.G
14.11.2007, 14:17
1. Der Chip hat zwei Pin für Versorgungsspannungen, einer für die Logik, einer für den Motor. Pin 16 ist für die Logik, also 5V, Pin 8 für die Motorspannung.
3. Nicht benutzte Eingänge auf ein eindeutiges Potential legen, nicht offen lassen.

Barthimaeus
14.11.2007, 15:50
So - Schaltung passt (dannk euch) - Motor läuft



$regfile = "attiny13.dat"
$crystal = 1200000
Config Portb = Output
Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down

Portb.3 = 1
Portb.4 = 0

Do
Pwm0a = 255
Loop

End


Aber: bevor der Motor anfängt richtig zu laufen "stottert" er einige Sekunden vor sich hin - How come? Liegt das am Programm?

Barthimaeus
14.11.2007, 21:21
Ich muss mich verbessern - außer dem "Gestottere" gibt der Motor gar nichts von sich und hört selbst damit gelegentlich ganz auf.

Falls das hilft:

Der Motor ist ein "gehackter" Modellbauservo für 4,8V die Motorstromquelle ist ein voller 6V Akku und die Schaltspannung sind 4,8V
der Controller ist ein Attiny13 dessen Fusebits auf 9600000/8 eingestellt sind.

Bitte helft mir - ich verzweifle!

(nebenbei - kann man mit einem Controller, der nur einen Timer hat glechzeitig einen PWM Ausgang betreiben und Befehle wie "waitms" benutzen?)

Hubert.G
14.11.2007, 21:35
Du hast bei $crystal=12000000 eingestellt, probier mal 1000000.
Wenn du waitms in der main-schleife benutzt sollte es gehen.

Barthimaeus
14.11.2007, 22:09
das war leider nicht der Fall - das Problem war, dass in den Fusebits tatsächlich 9,6 Mhz und NICHT 9,6/8Mhz eingestellt war. Nachdem ich dies behoben habe läuft der Motror wunderbar. Leider stellt sich mir jedoch ein neues Problem, weil er sich - egal ob ich pwm0a = 0 oder pwm0a = 255 habe - mit der selben Geschwindigkeit dreht. Hat irgendwer darauf 'ne Antwort?

(Es tut mir wirklich Leid euch ständig hiermit auf die nerven zu gehen:( )

recycle
15.11.2007, 00:53
das Problem war, dass in den Fusebits tatsächlich 9,6 Mhz und NICHT 9,6Mhz eingestellt war.

Naja, hauptsache dein Controler versteht dich ;-)



Leider stellt sich mir jedoch ein neues Problem, weil er sich - egal ob ich pwm0a = 0 oder pwm0a = 255 habe - mit der selben Geschwindigkeit dreht. Hat irgendwer darauf 'ne Antwort?

Nö, aber einen Frage. An welchen Pin vom Controller hast du den Enable-Pin vom L293D angeschlossen?

Barthimaeus
15.11.2007, 08:40
Ich hab ihn an PB0 angeschlossen.