Hey Ich möchte einen kleinen 5V Motor mit einem Atmega32 über einen ULN2003A anstäuern. Die Spannungen am ULN2003A werden auch an bz aus geschaltet aber wenn ich den Motor dazwischen schalte dreht er sich nicht und die Spannung an der Klemme ist 0. Angeschlossen hab ich es nach dem Bild wobei ich natürlich coil3-1 weg gelassen habe Wie krieg ich den Motor zum drehen??
:
Bearbeitet durch User
Das hab ich auch schon gesehn und verstanden. Aber mein Problem liegt eher am ULN2003A Weil er im unbelasteten Fall zwar Spannung hat aber im belasteten Fall diese auf 0 singt.
Yannic Röder schrieb: > anstäuern Kein Wunder, der steht ja auch im Stau. Ein Schaltplan, der kein Schaltplan ist, weil du NATÜRLICH was weggelassen hast. Deiner Prosa nach müsste es funktionieren, aber das glauben alle immer.
Schön.. hast du auch einen Lösungsvorschlag??
Yannic Röder schrieb im Beitrag #3549589: > Hat der ULN2003A eine Sicherung oder Strombegrenzung die ich übersehn > hab? Wieso? Oben las ich, daß er auf 0 runter zieht. Eigentlich sollten es genau genommen ca. 1V sein (typisch Darlington), wenn die Last mit dem anderen Ende richtig auf High-Pegel liegt. Glatt 0V deuten auf eine Unterbrechung hin.
Das Ding dreht nur, wenn du jeweils Coil1..4 NACHEINANDER und LANGSAM gegen Masse ziehst. Allerdigns hast du im ULNxx schonmal einen Vce-Drop von bis zu 2V! Dann liefe dein Motor nurnoch mit 3V Wicklungsspannung. Vom Schaltplan her sollte das Prinzip aber gehen.
Ich vermute der Motor bekommt zu wenig Spannung. Bei einem 12V-Stepper (das rate ich einfach mal) reichen 5V lange nicht aus.
Sven schrieb: > Bei einem 12V-Stepper > (das rate ich einfach mal) reichen 5V lange nicht aus. Er bekommt wegen der Dropspannung ja auch nur 3-4V. Genauere Daten des Motors wären mal interessant. Andererseits betrieb ich auch schon Stepper nur an Gatter-Bausteinen wie dem 74HC00! Im Leerlauf ohne Last, und wenn die Reibung gering genug ist, geht das schon mal.
Sven schrieb: > Bei einem 12V-Stepper Er hat wohl gar keinen Schrittmotor, nicht vom geposteten Schaltplan verwirren lassen.
Yannic Röder schrieb: > Weil er im unbelasteten Fall zwar Spannung hat aber im belasteten Fall > diese auf 0 singt. Wer auch immer da singt, aber das Verhalten könnte auf einen nicht angeschlossenen GND vom 2003 hinweisen .
Also das Bild zeigt die tatsächliche Schaltung. Das Schwarze Kabel (vom Netzteil) ist die Erde und ist mir der Erde des Atmega32 direkt verbunden, sowie direkt mit der Erde des ULN2003A (habe ich mit einem Durchgangsprüfer geprüft). Das Weiße Kabel hat 6,5 V und ist mit einer 7805 Schaltung an den Atmega32 verbunden und ist direkt mit dem COM des ULN2003A verbunden. Ein Pin des Atmega32 der in 500ms Schritten zwischen 0 und 1 wechselt ist über das einzelne schwarze kabel mit dem Pin 1 des ULN2003A verbunden (bei 1 hat es ca. 1V). Pin16 oder auch Out1 (auf der gegenüberliegenden Seite) hat 6.5 V wenn 1. Der Motor läuft mit 5V und 20mA. Hab ihn aber auch schon mit deutlich weniger laufen lassen. Wenn ich ihn direkt an das Netzteil halte läuft er. Jetzt wo der Motor zwischen Pin16 un COM liegt ist dazwischen 0V. ist der Motor weg, dann liegen dort die 6.5V an.
1V ist kein gültiger High Pegel, da müssten etwa 5V anliegen. Bsit Du sicher, dass Du den Pin des Mikrocontroller als Ausgang konfiguriert hast (DDR-Register). Abgesehen davon: Warum zum Henker hast Du einen Schaltplan gepostet, der in so ziemlich allen wesentlichen Punkten vom tatsächlichen Ausbau abweicht?
Yannic Röder schrieb: > Ein Pin des Atmega32 der in 500ms > Schritten zwischen 0 und 1 wechselt ist über das einzelne schwarze kabel > mit dem Pin 1 des ULN2003A verbunden (bei 1 hat es ca. 1V) 1V ist auch zu wenig, um den ULN2003 einzuschalten. Vielleicht ist Dein Programm falsch und arbeitet nur mit dem internen Ziehwiderstand des ATmegas, oder was anderes ist faul (ATmega kaputt?). Nimm die Steuerleitung mal weg und lege Pin1 des ULN2003 direkt an 5V. Wenn der Motor dann läuft liegt es an der Ansteuerung. Gruß Dietrich
int main(void) { DDRD = 0x00; //als Input PORTD = 0x00; //Pull-Up Widerstand while(1) { _delay_ms(500); PORTD = 0b11111111; _delay_ms(500); PORTD = 0b00000000; } } Diesen Code verwend ich...
>DDRD = 0x00; //als Input OUTPUT, OUTPUT, OUTPUT. >Diesen Code verwend ich... Kein Wunder das nix geht.
>Bist du auch ein PICianer? Beim AVR ist DDRx=0 Input...
Schnellmerker. Genau das ist ja sein Problem.
AAAAAAAAAAAAAAAhhhhhhhhhh Danke Danke Danke das is jetz peinlich =oP
Hallo! BTW: Für einen gängigen 7805 könnten 6,5 V am Eingang bischen wenig sein, zudem ja noch eine Verpolschutzdiode davor hängt!
Route_66 schrieb: > Hallo! > BTW: Für einen gängigen 7805 könnten 6,5 V am Eingang bischen wenig > sein, zudem ja noch eine Verpolschutzdiode davor hängt! Nicht nur KÖNNTE, das SIND definitiv zu wenig! Mit Ach und Krach kriegt man zusammen mit er Schutzdiode aus einem LF50CV noch 5V raus. Ist lo-drop und Pinkompatibel zum 7805.
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.