Hallo, erstmal zu meinem Vorhaben: Ich will mit einem Attiny24 und einem Motortreiber (L293D) 2 Motoren zum laufen bekommen. Es gibt 2 Schalter pro Motor - einmal für links und rechts, sofern jeweils einer auf I ist. Diese Stati werden über den Attiny auf PB0 und PB1 als Eingang abgefragt und sollen, sofern ein Schalter umgelegt ist, den Motor über A0 + A1 (jeweils auf den Enabled vom L293D) und A2 - A5 (für die Drehrichtung) ansteuern. Die Spannungsversorgung des L293D wird über eine PWM zwischen 0 und 6V eingestellt. Da die ganze Schaltung dafür mit 9V betrieben wird, steckt vor dem Attinyund dem L293D (für VC) noch ein L7805. Das ganze habe ich erstmal auf einem Breadbord zusammengesteckt, wenn ich aber dann den Attiny programmiere und die Volt nachmesse, gibt der Attiny auf den entsprechenden Pins diverse Spannungen aus: 1,31V, 2,01V und 4,6V Der L293D funktioniert natürlich laut Datenblatt erst ab 3,2V! Hat jemand eine Idee woran das liegen kann? Kenndaten zum Motor: 3-6V mit 60mA Ich habe hier mal meine Schaltung gezeichnet - der einfachheit halber ohne PWN und 2. Motor - ist genauso angeschlossen, auf der anderen Seite des L293D
Thomas schrieb: > Die Spannungsversorgung des L293D wird über eine PWM zwischen 0 und 6V > eingestellt. Sehr ungewöhnlich. Was ist das genau und wie funktioniert diese "PWM"?
Die PWM sieht so aus. Funktioniert einwandfrei! Der Fehler tritt allerdings auch auf, wenn man den L293D absteckt und direkt an den Pins die Spannunf misst. Habe auch verschiedene attiny24 getestet, immer das selbe Phänomen.
@ Thomas (Gast) >Die Spannungsversorgung des L293D wird über eine PWM zwischen 0 und 6V >eingestellt. Wieso 6V? >Das ganze habe ich erstmal auf einem Breadbord zusammengesteckt, wenn >ich aber dann den Attiny programmiere und die Volt nachmesse, gibt der >Attiny auf den entsprechenden Pins diverse Spannungen aus: 1,31V, 2,01V >und 4,6V DDR Register richtig gesetzt? >Kenndaten zum Motor: 3-6V mit 60mA >Ich habe hier mal meine Schaltung gezeichnet - der einfachheit halber >ohne PWN und 2. Motor - ist genauso angeschlossen, auf der anderen Seite >des L293D Wozu braucht man einen NE555 zur PWM-Erzeugung, wenn man einen Mikrocontroller hat?
Hab mich nun mal registriert :) Die 0-6V sind bekommt der L293D auf VS für den Motor, auf VSS liegen die 5V aus dem L7805 (real 4,99V). Sollte soweit korrekt verdrahtet sein. DDR Register sind auf 0x00 für B und 0xFF für A, da über B die Schalter abgetastet werden und auf A die Signale ausgegeben werden sollen. Den NE555 habe ich ehrlich gesagt aus Faulheit in der Schaltung gelassen, da ich die Motoren zuerst einfach mit PWM und H Brücke steuern wollte, was allerdings nicht ganz so funktionierte, wie ich mit das vorgestellt hatte. Ich wollte mich allerdings eh noch belesen, wie eine PWM auf einem Attiny zu realisieren ist und es ggf. üben ihn laufen lassen. Nur möchte ich als allererstes das Problem mit der falschen Spannung lösen! :)
Thomas schrieb: > Die Spannungsversorgung des L293D wird über eine PWM zwischen 0 und 6V > eingestellt. Bist du sicher, dass diese Vorgehensweise üblich und gut ist? > Ich will mit einem Attiny24 und einem Motortreiber (L293D) 2 Motoren zum > laufen bekommen. Dann mach das so, wie es im Datenblatt des L293 angegeben ist. Nicht so, wie du dir da ausgeknobelt hast. Die Geschwindigkeit des Motors wird über ewine passende Ansteuerung der entsprechenden Motortreiber geändert. Niemals aber über die Versorgungsspannung! Was ist die Mindestspannung, die ein L293D braucht, um überhaupt zu funktionieren? Die Versorgung der Endstufen darf nicht unter die des Logikteils kommen. Und der funktioniert ab 4,5V...
:
Bearbeitet durch Moderator
Lade doch bitte mal deine Code hoch. Eventuell liegt da der Fehler.
@Lothar Miller, Vielen Dank für die Info! ich war sehr lange Zeit vom Thema Elektronik entfernt und habe das anhand des Datenblattes wohl nicht überrissen. Ich lege also 0-255 bzw. die PWM mit dem NE555 an den Enable an um die Geschwindigkeit zu steuern. Wenn ich das richtig sehe, gehen bei diesem Motortreiber maximal 7V an Enable. Dafür benötige ich als logic supply 7V und als Supply Voltage mehr als 7V (also zb meine 9V vom Netzteil), ist das soweit richtig gedacht? Ich werde das heute Abend gleich mal ausprobieren und dann davon berichten :) Vielen Dank an alle!
Thomas Moosmueller schrieb: > Ich lege also 0-255 bzw. die PWM mit dem NE555 an den Enable an um die > Geschwindigkeit zu steuern. Wenn ich das richtig sehe, gehen bei diesem > Motortreiber maximal 7V an Enable. Dafür benötige ich als logic supply > 7V und als Supply Voltage mehr als 7V (also zb meine 9V vom Netzteil), > ist das soweit richtig gedacht? Du versorgst den Baustein mit 5V Logikspannung. Und du versorgst den NE555 mit der selben Logikspannung. Die PWM vom NE555 geht dann auf das Enable. Und die Endstufe versorgst du mit einer Spannung, die gleich oder grösser der Logikspannung ist. Wenn deine Motoren z.B. mit 12V laufen, dann kommen da diese 12V hin. Kleiner Tipp: der L293 ist uralt. Da hat garantiert schon mal jemand diese Aufgabe gelöst uns im Netz veröffentlicht...
Hallo, ich habe es nun hinbekommen, dass es so funktioniert, wie ich mir das vorstelle! In erster Linie war der L293D falsch beschalten und ich musste meinen Code geringfügig abändern. Ich weiß natürlich, dass es edler und platzsparender wäre die PWM software-seitig auszuführen. Nun stellt sich für mich noch die Frage, ob es denn einen Nachteil hat, die "externe" PWM mit dem NE555 zu verwenden? jeweils bei den beiden Motoren auf den enable vom L293D. Ich bekomme eine Softwareseitige PWM schon hin, nur ist für mich das auslesen eines Poti am ADC ein Mysterium.. habe schon mehrere Tage gegoogled, aber nichts passendes (das ich verstehe) gefunden.
Thomas Moosmueller schrieb: > Ich bekomme eine Softwareseitige PWM schon hin, nur ist für mich das > auslesen eines Poti am ADC ein Mysterium.. habe schon mehrere Tage > gegoogled, aber nichts passendes (das ich verstehe) gefunden. Hast du dir dafür schon einmal diese Tutorials durchgelesen? http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Analoge_Ein-_und_Ausgabe
Vielen Dank! Ich arbeite mit einem Attiny24 und will das Poti direkt an die 5V vom 7805 anschließen, wäre das folgender Code korrekt? void ADC_Init(void) { ADMUX = (1<<REFS1)|(1<<REFS0); //VCC(=5V) als Referenz ADCSRA = (1<<ADPS1)|(1<<ADPS1)|(1<<ADPS0); // Frequenzvorteiler =128, da ich mit 20 MHz takte ADCSRA |= (1<<ADEN); // ADC aktivieren ADCSRA |= (1<<ADSC); // eine ADC-Wandlung für die PWM frage ich dann in einer Dauerschleife den ADC ab und lese es in DutyCycle ein, richtig?
Thomas Moosmueller schrieb: > Vielen Dank! > > Ich arbeite mit einem Attiny24 und will das Poti direkt an die 5V vom > 7805 anschließen Hoffentlich als Spannungsteiler verschaltet > wäre das folgender Code korrekt? Warum probierst du es nicht einfach aus? Haeng eine Led in Standardbeschaltung an den Timer PWM Pin, benutze deine ADC Routinen um den Duty Cycle zu veraendetn und wenn du am Poti drehst muss die Led heller und dunkler werden. Ja, manchmal schreibt man auch Testprogramme, nur um sich mit einer Technik vertraut zu machen. Das Testprogramm ist schneller geschrieben als du hier die Frage formulieren konntest. Besonders Neulinge profitieren extrem davon und gewinnen enorm an Sicherheit, wenn sie soviel Code wie moeglich schreiben, selbst wenn dieser Code in seiner Funktion als Testcode wieder weggeworfen wird. Die Codebausteine fuer ADC und PWM bleiben ja erhalten und der Teil der dann tatsaechlich verworfwn wird ist lediglich eine Portinitialisierung und eine Zuweisung. Beides nichts dem man lange nachtrauern muesste.
:
Bearbeitet durch User
@ Thomas Moosmueller (corux) >Ich weiß natürlich, dass es edler und platzsparender wäre die PWM >software-seitig auszuführen. Es ist vor allem deutlich kompakter und LEISTUNGSFÄHIGER! Du hast dann die VOLLE Kontrolle über deinen Motor. Du kannst ihn langsam hochfacher etc. >Nun stellt sich für mich noch die Frage, ob es denn einen Nachteil hat, >die "externe" PWM mit dem NE555 zu verwenden? Ja, man verliert Steuermöglichkeiten. >Ich bekomme eine Softwareseitige PWM schon hin, Nicht per Software, per Hardware und Timer, aber im Mikrocontroller.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.