Hallo,
wird der L293D heiß? Ohne Kühlung kann man bei den meisten Brückentreibern nicht einmal den angegebenen Nennstrom nutzen.
Grüße, Bernhard
Druckbare Version
Hallo,
wird der L293D heiß? Ohne Kühlung kann man bei den meisten Brückentreibern nicht einmal den angegebenen Nennstrom nutzen.
Grüße, Bernhard
Das kann mehrere Gründe haben, z.B. ein Fehler in der Software.
Was für eine Spannungsquelle nutzt du?
Immernoch das Labornetzteil, oder Batterien?
Wenn Motor und Steuerung an einer Batterie hängen, die einen zu grossen Innenwiderstand hat, bricht die Spannung ein und dann ist Schluss. Die ca. 4s Verzögerung kommt dann vermutlich durch Kondensatoren, die erst die Spannung stützen und sich dadurch entladen.
Wenn es also Batterienn sind die du nutzt, dann schreib mal bitte was für welche (Typ, Kapazität und Nennspannung).
Am Labornetzteil könnte es dann auch die Strombegrenzung sein.
Nein, wird er nicht. Er wird nicht mal wirklich warmZitat:
Hallo,
wird der L293D heiß? Ohne Kühlung kann man bei den meisten Brückentreibern nicht einmal den angegebenen Nennstrom nutzen.
Grüße, Bernhard
Ich benutze immer noch das Labornetzteil. Ich habe keine Verzögerung, sondern ich kann einen Motor max 4s ununterbrochen lang betreiben. Wenn ich die Motoren kürzere Zeit ansteuere zB. 1s rückwärts, dann 2s vorwärts usw klappt alles; auch so oft wie ich möchte. Nur bei "längerem" Betrieb funktioniert auf einmal garnichts mehr.
Ich hab euch mal die Schaltung im Anhang beigefügt.
Der Code ist:
PHP-Code:
// Fahrzeugteststeuerung
#ifndef F_CPU
#define F_CPU 16000000UL // Taktfrequenz = 16 MHz
#endif
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // Datenrichtungsregister Port B auf Ausgang setzen
DDRA = 0x00; // Datenrichtungsregister Port A auf Eingang setzen
PORTA = 0xff; // Pull-Up Widerstände aktivieren
while(1)
{
while (PINA==0x00) // Kein Signal, keine Aktion
{
PORTB=0x00; // ggf. noch anliegende Signale löschen
}
PORTB=~PINA; // Übernehme Taster Status
}
}
Hallo,
auch wenn es hier wohl keinen Unterschied macht - die folgende while-Schleife wird nicht ausgeführt:
Dazu müssten alle 4 Taster gedrückt sein und zudem auch alle 4 restlichen Pins am Port A auf Low liegen. Da bei PA4 bis PA7 die Pullups aktiv sind und in deinem Schaltplan extern nichts angeschlossen ist, wird hier immer high-Pegel anliegen. Außerdem verstehe ich nicht, wozu diese innere Schleife gut sein soll :-kCode:while (PINA==0x00) // Kein Signal, keine Aktion
{
PORTB=0x00; // ggf. noch anliegende Signale löschen
}
Noch Tipps zur weiteren Fehlersuche:
- Tritt das 4-Sekunden-Problem auch auf, wenn du die Eingänge des Motortreibers direkt mit +5V oder GND verbindest?
Falls ja, dann wäre dort der Fehler zu suchen.
- Wenn das nicht die Ursache ist, könntest du herausfinden, ob der Mikrocontroller einen Reset macht (z.B. bei Programmstart eine LED an einem Port kurz leuchten lassen und wieder ausschalten). Wenn die LED dann im normalen Programmablauf aufblitzt, hat der Controller neu gestartet. (Eventuell Brown-out-detection aktiv geworden?)
Grüße, Bernhard
Ok, du nutzt also ein Labornetzteil. Liefert das direkt die 5V? Oder benutzt du noch einen Spannungsregler (z.B. 7805) um aus z.B. 9V die 5V zu bekommen? Wenn du einen Spannungsregler benutzt, kann dieser der Engpass sein.
Der L293D hat einen integrierten "Thermal Shutdown", also eine Art Thermosicherung. Vielleicht schlaegt die zu, noch bevor die Waerme nach draussen dringt..
Warum der allerdings nur bei Batteriebetrieb zuschlagen sollte und nicht beim Labornetzteil, ist mir aber nicht klar..
Das labornetztei liefert direkt 5V.Zitat:
Oder benutzt du noch einen Spannungsregler (z.B. 7805) um aus z.B. 9V die 5V zu bekommen?
Ich wollte den Rat von BMS befolgen und mal die Motoren direkt and den Motortreiber anschließen. Aber irgendewie tritt der Fehler nicht mehr auf, obwohl ich nichts verändert habe..... ich hoffe das bleibt so ;)
Als nächstes wollte ich einen Abstandswarner installieren. Das Abstandswarnmodul gibt mir bei einer Hindernisserkennung 4V auf einen Draht, den ich als Abgriff benutze. Den könnte ich doch eigentlich auf einen Pin vom ATmega legen, oder? Das wäre ja laut Datenblatt schon ein gültiger High-Pegel.
Um welchen Sensor handelt es sich denn? 4V sind ungewöhnlich, 3,3V oder 5V wäre der nächste Standard. (Das ist ziemlich sicher ein Sensor mit Analogausgang)Zitat:
Als nächstes wollte ich einen Abstandswarner installieren. Das Abstandswarnmodul gibt mir bei einer Hindernisserkennung 4V auf einen Draht, den ich als Abgriff benutze. Den könnte ich doch eigentlich auf einen Pin vom ATmega legen, oder? Das wäre ja laut Datenblatt schon ein gültiger High-Pegel.
Es handelt sich um einen Analogausgang.
http://www.pollin.de/shop/dt/NTg5OTE...Fchd3god6DIAyA
Allerdings habe ich die Bauteile auf einen andere Platine gelötet.
Die Schaltung ist im Anhang zu sehen.
Ich habe nochmal nachgemessen. Es sind in der Tat um die 3,3V