Hallo Leute, habe folgendes Problem. Ich möchte ein wenig mit einer Servosteuerung mit einem Microcontroller spielen. Dafür habe ich das STK500 und einen modellbauservo. ich habe schon diversere (bascom) programme geschrieben / gefunden und auf den controller geschrieben, allerdings tut sich am servo rein gar nichts... muss man noch irgendetwas beim stk500 beachten? die stromversorgung für den servo läuft über ein externe netzteil (kabel alle garantiert richt). wenn ich eine led an den eigentlichlichten servopin stecke, flackert diese led in sehr kurzen abständen, also scheint schon ein signal da zu sein... och weioß absolut nicht weiter... auch ein programm, bei dem ich die leds per taster an und ausschalten kann funktioniert... nur halt der servo macht gar nicht (funktioniert aber!) mfg gk
Masse von STK500 und ext. Netzteil verbunden? Oder klassisches one-wire?:-)
also das stk mit dem normalen mitgelieferten netzteil, den servo über nen eigenes netzteil... ;) ge
Bringen wirs auf den Punkt: Die Masse des Servos muss zusätzlich noch mit der Masse des Mikrocontrollers verbunden sein. Der Mikrocontroller-Portpin der den Servo steuern soll, muss selbstverständlich auch mit dem Signaleingang des Servos verbunden sein, (das sieht man ja vielleicht nicht immer gleich bei den ganzen Anschlüssen, Käbelchen und Jumpern, auf dem STK500). Nur weil irgendwelche LEDs auf dem STK500 im Takt blinken, heißt das noch lange nicht, dass der Mikrocontroller auch mit der richtigen Taktfrequenz läuft und an den richtigen Takterzeuger, (intern, extern Quarz, extern Oszillator?), angeschlossen ist. Und nur weil der Mikrocontroller richtig an den externen Quarz auf dem STK500 angeschlossen ist, heißt das noch lange nicht, dass der Mikrocontroller nicht doch einfach mit dem internen Oszillator läuft, (Fuses-Einstellungen überprüfen!). Und selbstverständlich muss der tatsächliche Mikrocontrollertakt dann auch noch im Compiler bzw. Programm eingestellt werden.
ersteinmal danke für die antworten... also die masse des servos muss an dem netzteil UND dem stk500 angeschlossen werden? habe ich das so richtig verstanden? wieso läuft das denn so? und wie funktioniert das mit diesen fuses? was muss man dort denn einstellen? so sieht mein programm aus: $crystal = 4000000 $regfile = "m163def.dat" Config Portc.0 = Output Config Portb = Input Portb = &H03 Config Servos = 1 , Servo1 = Portc.0 , Reload = 10 Enable Interrupts Dim Winkel As Byte Winkel = 70 Servo(1) = Winkel Do If Pinb.1 = 0 Then If Winkel > 30 Then Decr Winkel Elseif Pinb.0 = 0 Then If Winkel < 110 Then Incr Winkel End If Servo(1) = Winkel Waitms 10 Loop End
Deine beiden Schaltnetzteile, die du wahrscheinlich verwendest, sind beide galvanisch getrennt. Um aber Signale zu übertragen, müssen die Bezugspotentiale gleich sein. Du verbindest also die Masse des Servos mit der vom STK und den Signal-Pin des Servos mit dem Pin, den du benutzen willst. Zu den Fuses findest du massig Informationen im Netz. Wenn du einen ganz neuen Controller hat, läuft der intern mit 1MHz. Wenn du das in deinem Code änderst, brauchst du an die Fuses erstmal nicht ran.
>also die masse des servos muss an dem netzteil UND dem stk500 >angeschlossen werden? habe ich das so richtig verstanden? wieso läuft >das denn so? Alles, was einen Masseanschluss hat (Netzteil, STK500, Sensoren mit Eigenelektronik, Zusatzbausteine, aber auch Messgeräte wie ein Multimeter oder ein Oszilloskop), muss elektrisch mit der Masse des Gesamtsystems ("Ground", abgekürzt "GND") verbunden sein, um ordnungsgemäß funktionieren zu können. >und wie funktioniert das mit diesen fuses? was muss man dort denn >einstellen? Das findest Du im Datenblatt Deines Controllers ausführlich beschrieben.
Hallo, >also die masse des servos muss an dem netzteil UND dem stk500 >angeschlossen werden? habe ich das so richtig verstanden? wieso läuft >das denn so? Seit "Erfindung" des Stromkreises muß dieser geschlossen sein, damit was passiert. Das Steuersignal ist auch hier nur die Spannungsquelle eines Stromkreises, dessen "Verbraucher" der Signaleingang des Servos ist. Die Rückleitung um diesen zu schließen ist Masse oder GND. Oder auch anders: gesteuert wird das Sevro durch Spannungsimpulse an seinem Eingang. Eine Spannung ist die Potenzialdifferenz zwischen 2 Punkten. Ein Punkt ist der Steuereingang, der andere ist Masse oder GND. Gruß aus Berlin Michael
so, werde diese tage wieder dazu kommen, an meinem stk500 weiterzubasteln. danke für die tipps, werd die stromversorgung mal überabrbeiten ;) hat jemand zufällig eine nette beschreibung was es mit diesen fuses auf sich hat? wie stellt man diese ein, was machen diese? mfg gk
Gerrit wrote: > hat jemand zufällig eine nette beschreibung was es mit diesen fuses auf > sich hat? Ja, das Datenblatt des verwendeten Controllers. > > wie stellt man diese ein, was machen diese? Man liest das Datenblatt (die Absätze zu den Fusebits und zu den Features, die per Fusebits in ihrer Funktionsweise verändert werden können) und versucht es zu verstehen. Man öffnet den Programmier-Dialog des (zum STK500 gehörenden) AVR-Studios, geht auf den Tab "Fuses", versucht, die dort aufgelisteten Kombinationen zu verstehen und schlägt deren Wirkung im Datenblatt nach. Man kann aber auch dieses Forum (und das zugehörige Wiki) mit den entsprechenden Stichworten durchsuchen. Denn verstellte Fusebits sind hier Dauerbrenner, da wurde schon hunderte mal erschöpfend drüber diskutiert. Ist fast so ergiebig wie "LCD geht nicht"... ...
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.