Motortreiber L293B

svenna80

Mitglied
31. Juli 2009
39
0
6
Sprachen
Hallo!

Ich experimentiere zum ersten Mal mit einem Motortreiber (L293B,Datenblatt im Anhang) herum.
Und das sieht wie folgt aus:
Ich mach mir mit meinem Atmega8 ein PWM-Signal, das ich in den Motortreiber führe. Das PWM-Signal wird im Fast PWM Mode und mit einer 8 Bit Auflösung generiert. Ich habe eine Variable in die ich Werte von 0 bis 255 schreiben kann uns somit das PWM-Signal variieren kann.
Am PIN 8 (Supply Voltage) des Motortreibers liegen 5V an.
Bei einem Wert von 255 müsste ich am unbelasteten Motortreiberausgang (PIN 11) eigentlich 5V messen können. Warum messe ich dort aber nur 4,45V?
Ist das so richtig und geht es nicht besser,weil im Motortreiber Verluste auftreten? Oder könnte hier ein Fehler vorliegen?

Ich hab dann auch noch mal den Pin vom Atmega8 gemessen, an dem das PWM-Signal herausgeführt wird. Hier messe ich nur eine Spannung von 4,34V?
Und das verwirrt mich total. Müssten dort nicht 5V anliegen??


Gemessen hab ich mit einem handelsüblichen Mutlimeter,das eine Fehltertoleranz von 0,5% hat.

Hat da jemand näher Ahnung von?

Gruß Sven
 

Anhänge

  • Motortreiber_L293B STM.pdf
    193,6 KB · Aufrufe: 13
Hi,

hast du einen Schaltplan von der kompletten Schaltung und das Programm? So würde man den Fehler schneller finden.

Gruß
 
Hallo!

Ein Schaltplan habe ich nicht erstellt, aber auf Seite 2 des Datenblattes ist ein
Schaltplan, wie man den Motortreiber anschließen muss. Nach dem Schaltplan habe ich es angeschlossen. PIN 1, 8,9 und 16 bekommen 5 Volt. PIN 4,5,12 und 13 sind an GND angeschlossen.
An PIN 10 geht das PWM Signal rein und an PIN 11 ist der Motor mit ner Diode angeschlossen. Für´s Messen hab ich ihn abgesteckt.
Alle anderen PINs sind frei.
 
Hallo !

Ich hatte mich mal nur kurz mit dem 293, 297 und 298 beschäftigt und von daher bin ich nicht mehr im Thema, aber....

Wenn mich nicht alles täuscht, dann benötigt auch der 293 eine Regelreserve.
Darum speist man ihn auch nicht mit der Nennspannung des Motors sondern mit einer höheren Spannung.
Das hat etwas mit dem Verändern des indukiven Widerstandes zu tun.... und damit ändert sich dann auch die Stromaufnahme!
Dies wird dann vom 293 mit dem nachregeln der Spannung "angeglichen".
Aus dem Grunde darf die Speisespannung nicht gleich der Motornennspannung sein.
Oder waren das nun die Eigenschaften der 297/298 Kombi? :hmmmm:
Nee, ich meine das ist beim 293 ähnlich.

Das bei dir nun 0,5V am Ausgang "fehlen" würde ich mal auf den "Ausgangstreiber" im 293 schieben.

Ach so....
Das war jetzt nur ein "Crashkurs" aus meinem Hirn und soll nur als Denkanstoß vestanden werden!
Keine Garantie auf Richtigkeit bzw. Vollständigkeit. ;)
Schau dir ggf. noch mal ein paar Beispiele zu Schrittmotoren an.....

Gruß,
Cassio
 
Am Motortreiber liegt´s auch nicht. Habe einen andern (hab 4 Stück bestellt) mal ausprobiert und bekomme die gleichen Werte.

Die 0,7V, die ich oben gemessen hatte, waren übrigens Mist. Den Wert habe ich nun verbessert.
Daher gehe jetzt mal davon aus, das nicht der Motortreiber nicht richtig funktioniert, sonder der Atemga, wie man sieht, schon keine 5V macht.
Soll ich mal das Programm posten? Vielleicht ist es ein Softwareproblem?
 
Oh, jetzt war der Cassio schneller als ich... mein letzter Post gehört noch davor...

Das mit dem induktiven Widerstand wäre ne Idee. Aber müsste nicht aus dem Atmega8 wenigsten 5V rauskommen?? Wenn der mich schon im Stich lässt, dann wird´s nach hinten in der Kette ja immer schlimmer...
 
Hi!

Habe eine recht nette Seite gefunden, in der auch dein 293 erklärt wird...

Schau doch mal HIER !


Schöne Grüße,
Cassio
 
Hier mal der Programmcode:

Code:
#include <avr/io.h>



int main (void) 

{

/*  PWM-Beispiel für Mega8
	Benutzt wird Timer1 im Fast PWM Mode, 8 Bit Auflösung
	Die PWM-Signale liegen auf PB1/OC1A
*/	

// 1. Den Prescaler einstellen, der die Frequenz festlegt
	TCCR1B |= (1<<CS10); //Prescaler 1
	
// 2. Den 16 Bit Timer in den Fast PWM Mode, 8 Bit schalten
//    ACHTUNG: Die WGM-Bits sind auf beide Konfigurationsregister verteilt!
	TCCR1A |= (1<<WGM10);
	TCCR1B |= (1<<WGM12);
	
// 3. Compare Output mode einstellen
//    	
	TCCR1A |= (1<<COM1A1) | (1<<COM1A0) ;	
	
// 4. In diesem Register wird der gwünschte PWM-Wert abgelegt. Erlaubter Bereich: 0 bis 255.
// 	  255 = 5Volt am PIN; 0 = 0Volt am PIN
	
	OCR1A =	0;
		

// 4. Die Pins als Ausgänge konfigurieren. Erst jetzt liegt das PWM-Signal an den Pins an!	
	DDRB |= (1<<PB1);

while(1)
	{

    }

return 0;                 
}
 
Hallo zusammen,

mal grundsätzlich ... PWM Signale über nen Digitalmultimeter messen ist immer
suboptimal. Rechteck-Pulse sind sowieso für Digitalmultimeter immer großer Mist
weil die für Sinusspannungen optimiert sind. Selbst Echteffektivwertmeter sind
auf Sinus optimiert. Wenn ein bestimmter Crestwert überschritten wird - also
die Spannung zu weit von der Sinusform abweicht - dann kommt da auch nur
noch ein Schätzergebnis bei raus. Solche Sachen kann man eigentlich nur noch
mit nem Oszilloskop mit gutem Gewissen durchtesten.

zu den Induktivitäten ... Die Motortreiber werden nach meinem Wissen teilweise
mit erheblich höheren Spannungen als diee Motorspannung betrieben weil durch
die Pulse der Stromsteuerung (Chopperbetrieb, ...) immer die Induktivität
des Motors gegen die Stromänderung gegenarbeitet. Um aber noch genug
Strom durch die Wicklung zu bekommen braucht man eine höhere Spannung.
So hab ich es mal irgendwo gelesen. Teilweise wird da mit 30-80V gearbeitet.
Je nach Größe des Motors.

Gruß
Dino
 
Es fiept!

Hilfe es fiept!
Wie ihr wisst, probier ich gerade mit einem Motortreiber herum.
Als ich einen kleinen Motor zum Testen an den Treiber angeschlossen hatte, da war alles ok.
Nun habe ich an den Treiber einen Lüfter angeschlossen und wenn der die gepulste Gleichspannung bekommt, dann fiept er. Das geht natürlich gar nicht, weil ich diesen Lüfter für meine Wasserkühlung für den PC nehmen will (auch extra dafür gekauft). Bei einer geglätteten Gleichspannung macht er dieses Fiepen nicht.

Ich nehme mal an, dass ich jetzt mit nem RC-Glied ne geglättete Gleichspannung erzeugen muss,oder?
Da muss ich mich dann wohl nochmal reinlesen. Meine Elektrotechnik-Vorlesung ist schon ein wenig her....
Oder kann man da noch irgendetwas anderes machen?

Nächtliche Grüße und danke für die Bemühungen :dance3:
Sven
 
Ne geht nicht

Hab nun mal verschieden Frequenzen ausprobiert. Allerdings ohne wirklichen Erfolg. Hab den Atmega8 mal auf 16Mhz eingestellt und im Programm ohne Prescaller eingestellt. Aber das fiept trotzdem.
Dann habe ich mal niedrige Frequenzen eingstellt, aber irgendein Geräusch machen die Lüfter dennoch. Kann es vielleicht sein, weil ich zwei Lüfter an einem Treiberausgang betreibe, dass es davon evtl. kommt?
Von den Ampere bin ich locker im grünen Bereich. Die beiden Lüfter brauchen jeweils nur 0,07 A. Der Treiber kann 1A.
Und wie gesagt, sie machen überhaupt keine Geräusche, wenn sie eine normal Gleichspannung bekommen. Hab´s gestern extra nochmals überprüft (sind auch geräuschoptimiert).

Gruß
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)