Forum: Mikrocontroller und Digitale Elektronik STK500 + Servo Problem


von Gerrit (Gast)


Lesenswert?

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

von AVRFan (Gast)


Lesenswert?

Schaltplan? Code?

von crazy horse (Gast)


Lesenswert?

Masse von STK500 und ext. Netzteil verbunden? Oder klassisches 
one-wire?:-)

von Gerrit (Gast)


Lesenswert?

also das stk mit dem normalen mitgelieferten netzteil, den servo über 
nen eigenes netzteil... ;)

ge

von crazy horse (Gast)


Lesenswert?

Frage nicht beantwortet.

von Albrecht H. (alieninside)


Lesenswert?

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.

von Gerrit (Gast)


Lesenswert?

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

von Mark (Gast)


Lesenswert?

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.

von AVRFan (Gast)


Lesenswert?

>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.

von Michael U. (amiga)


Lesenswert?

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

von Gerrit (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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"...

...

von Michael H* (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.