Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Basteleien analog und digital mit Strom und Spannung.

Moderator: radioscout

Hucky3000
Geocacher
Beiträge: 177
Registriert: Do 8. Nov 2007, 17:43
Wohnort: 32120 Hiddenhausen
Kontaktdaten:

Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Hucky3000 »

So. ich habe das ganze jetzt mal so gemacht wie auf dem Link von Windi.
Der Motor zuckt leider nur. Lass ich eine Taste gedrückt wird das zucken schächer , drücke ich die andere Taste wird das Zucken immer stärker, bis zum Stillstand. Mit zucken meine ich, dass der Servo erst links und sofort wieder rechts drehen will.
Habe schon mit den Werten etwas herumgespielt. Dadurch wird das zucken nur noch stärker, oder schwächer, oder das Ding sagt garnichts mehr.
Ist das Teil vielleicht kaputt ? :schockiert:
Oder muss der Takt zwingend auf
$crystal = 3686411
stehen ?
Ist doch nicht sooo ein gravierender Unterschied zu 4000000 ?
Wenn ja WAS muss ich WO bei den Fusebits von dem Tiny 2313 einstellen ?
Kenne mich da nicht mit aus - soll nicht abrauchen.

Hucky

Code: Alles auswählen

$regfile = "attiny2313.dat"
$crystal = 4000000
$framesize = 32
$swstack = 10
$hwstack = 40

Config Portb = &B00000000                                   'PortB komplett auf Eingang
Config Portd = &B01111000                                   'PortD 0-2 auf Eingang - Rest auf Ausgang - PD7 nicht vorhanden
Portb = &B11111111                                          'PortB komplett Pull Up ein
Portd = &B00000111                                          'PortD 0-2 Pull Up ein

Config Servos = 1 , Servo1 = Portd.5 , Reload = 10
Enable Interrupts

Dim Winkel As Byte
' Etwa auf Mittelstellung setzen
Winkel = 70
Servo(1) = Winkel

' Hauptprogrammschleife
Do
If Pinb.1 = 0 Then
  ' ist Schalter an Pin 2 Port D gedrückt
  If Winkel > 30 Then Decr Winkel
Elseif Pinb.0 = 0 Then
' ist Schalter an Pin 3 Port D gedrückt
  If Winkel < 110 Then Incr Winkel
End If
Servo(1) = Winkel
Waitms 10
Loop

End
Benutzeravatar
radioscout
Geoking
Beiträge: 24867
Registriert: Mo 1. Mär 2004, 00:05
Wohnort: Aachen

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von radioscout »

Hast Du die Möglichkeit, das erzeugte Signal mit einem Oszilloskop anzuschauen?
Bild
Wir hätten nie uns getraut doofe Dosen anzumelden schon aus Respekt vor diesem geheimnisvollen Spiel (Dosenfischer, Die goldenen Jahre)
Benutzeravatar
jennergruhle
Geoguru
Beiträge: 5840
Registriert: Mi 29. Jun 2005, 12:14
Wohnort: Pierknüppel

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von jennergruhle »

Hucky3000 hat geschrieben: Oder muss der Takt zwingend auf
$crystal = 3686411
stehen ?
Ist doch nicht sooo ein gravierender Unterschied zu 4000000 ?
Das sind 10% - beim Timing der Impulse kann das schon einen Unterschied machen.
Feierabend- und Urlaubscacher und bekennender DNF-Logger
---
"Geht nicht" ist keine Fehlerbeschreibung!
Hucky3000
Geocacher
Beiträge: 177
Registriert: Do 8. Nov 2007, 17:43
Wohnort: 32120 Hiddenhausen
Kontaktdaten:

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Hucky3000 »

Hi !
Oszilloskop habe ich nicht.
Habe noch was im Netz gefunden. Hätte ich jetzt einfach mal ähnlich gemacht, bevor ich mit dem Servo-Befehl in BASCOM noch verrückt werde.
Das ganze probier ich die Tage mal aus...

Dim I As Byte

Gosub Servo rechts
Waitms 1000
Gosub Servo links
end

Servo rechts:

For I = 1 to 18
PortB.1 = 0
Waitms 10
PortB.1 = 1
Waitms 1
Next I
PortB.1 = 1
Return

Servo links:

For I = 1 to 15
PortB.1 = 1
Waitms 10
Portb.1 = 0
Waitms 10
Next I
Portb.1 = 1
Return


Hucky
Hucky3000
Geocacher
Beiträge: 177
Registriert: Do 8. Nov 2007, 17:43
Wohnort: 32120 Hiddenhausen
Kontaktdaten:

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Hucky3000 »

Funktioniert nicht :???:

Zuckt nur.

Muss wohl doch nen EXAKTES Timing sein.
Werde nochmal versuchen ein Beispiel mit Interrupt auseinanderzupflücken und auf 4Mhz umzurechnen.

Ansonsten: :hilfe:

Hätte ich mal nen einfach Türöffner genommen :kopfwand:

Hucky
stonewood
Geowizard
Beiträge: 1062
Registriert: Mo 3. Apr 2006, 10:15
Kontaktdaten:

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von stonewood »

Hucky3000 hat geschrieben: Oder muss der Takt zwingend auf
$crystal = 3686411
stehen ?
Ist doch nicht sooo ein gravierender Unterschied zu 4000000 ?
Ja, das kann schon sein. Hab zwar noch kein Servo hier, aber die wollen ein vernünftiges Timing.

Bascom rechnet bei waitms mit $crystal - ein 'waitms 1000' wartet also genau eine Sekunde wenn $crystal mit der aktuellen Taktfrequenz übereinstimmt. Übersetzt das also in 'warte 4000000 Takte'. Und wenn das nicht paßt ist das eben keine Sekunde.

Also: Probier mal ein 'waitms 10000' und teste anhand eines Portpins mit LED ob das paßt.
Benutzeravatar
Bussard
Geocacher
Beiträge: 193
Registriert: Mi 7. Okt 2009, 03:29
Wohnort: BRB

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Bussard »

Hallo Hucky3000,
nicht verzweifeln, auch ohne Oszi und Frequenzmesser kannst du ein wenig Licht in die Sache bringen:
Probiere mal das begefügte Testprogramm (ohne Prüfung, ohne Garantie), bei dem ich mal die Interrupts usw. außen vor gelassen habe. Vor Allem kannst du sehen, ob der Tiny mit der vermuteten Frequenz läuft - was ja die Voraussetzung für alle zeitgesteuerten Funktionen ist. Also die LED muß 10x in 10 sek blinken, dann das Servo 5sek in ca. Mittelstellung stehen, dann je 5sek in den beiden Endstellungen.
Eins noch - erst ohne Servo die Zeit testen, wenn OK, dann Servo anschließen. Wenn es nicht 5sek still steht, sondern weiter zuckt, trenne mal die +5V ab (Masse und Puls lassen) und versorge das Servo aus einem separaten Akku/ Batterie.
__________________________________________________________________

Code: Alles auswählen

$regfile = "attiny2313.dat"
$crystal = 4000000
$framesize = 32
$swstack = 10
$hwstack = 40

Config Portb = Output
Portb = &B00000011
'PINB.1 an LED Anode, Kathode an R ca. 220 OHM, R an 0V
'PINB.0 Servo-Impuls positiv, nominal 1.5ms, alle ca. 20ms wiederholt

Dim I As Byte
Dim Sweep As Byte
Dim Puls As Word


Do
Portb.0 = 0
'10x blinken als Kontrolle, ob der Takt wirklich der eingestellten
'Frequenz entspricht
'MUSS 10 Sekunden dauern, sonst die Fuses und Vorteiler kontrollieren

For I = 1 To 10
    Portb.1 = 1                                             'LED an
    Waitms 500                                              'für 1/2 sek
    Portb.1 = 0                                             'LED aus
    Waitms 500                                              'für 1/2 sek
Next I


Wait 1                                                      '1 sek Pause

'Servo auf Mittelstellung
Main:

For I = 1 To 250                                            'ca. 5 sec Mittelstellung
Portb.0 = 1                                                 'Servopuls ein für ca. 1.5ms
Waitus 1500
Portb.0 = 0
Waitms 19                                                   'ca. 50 Wiederholungen pro Sekunde
Next I

For I = 1 To 250                                            'ca. 5 sec Endstellung 1
Portb.0 = 1                                                 'Servopuls ein für ca. 1.1ms
Waitus 1100
Portb.0 = 0
Waitms 19                                                   'ca. 50 Wiederholungen pro Sekunde
Next I

For I = 1 To 250                                            'ca. 5 sec Endstellung 2
Portb.0 = 1                                                 'Servopuls ein für ca. 1.9ms
Waitus 1900
Portb.0 = 0
Waitms 19                                                   'ca. 50 Wiederholungen pro Sekunde
Next I

Goto Main

Loop                                                        'pro forma[/color]
Lächeln und Winken. Die Dosenfischer - Zwölf Elfen
Hucky3000
Geocacher
Beiträge: 177
Registriert: Do 8. Nov 2007, 17:43
Wohnort: 32120 Hiddenhausen
Kontaktdaten:

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Hucky3000 »

Hi !

Danke, dass du dich mit meinem Problem auseinandersetzt.
Die LED blinkt nur 3 mal in 10 Sekunden :(
Ich hatte auch schonmal in die Fusebits geguckt, da steht was von 8MHz.
Stelle ich Crystal auf 8000000 blinkt die LED noch weniger.
Dann kann das mit dem Servo wohl auch net funzen. :lachtot: Hatte schon mal mit Crystal 8000000 probiert und eine Interruptansteuerung mit 16Bit Timer "passend" umgerechnnet. Zuckte wieder nur.
Dachte schon der Servo wäre kaputt - habe mir gestern 3 bei Ebay gezogen :kopfwand:
Egal. Zumindest ein Projekt mit Servo steht noch an.

So. Hier mal die Fusebits von meinem Tiny. Sag mir doch bitte was ich einstellen muss.
Ins "Datenblatt" hatte ich die Tage auch schon reingeschaut. Allerdings bin ich kein Freund von "auf dem Bildschirm" lesen und wollte mir bis jetzt die 250 Seiten nicht ausdrucken, Mit Englisch ist auch nicht soooo.... :???:

Fusebits:
http://home.teleos-web.de/jwittiber/fusebits.jpg

Hucky
Benutzeravatar
Bussard
Geocacher
Beiträge: 193
Registriert: Mi 7. Okt 2009, 03:29
Wohnort: BRB

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Bussard »

Hallo Hucky,
das ist doch mal 'ne Ansage! Das Blinken und die Fuse sagen, daß dein Tiny intern mit 1MHz (1000000Hz) läuft: (interner Takt 8MHz, mit Vorteiler /8 auf 1MHz geteilt).
Da die "erzeugten" Zeiten von deiner Angabe im Programm abhängen, müssen nur beide in Übereinstimmung gebracht werden.

$regfile = "attiny2313.dat"
$crystal = 4000000 ändern in 1000000


Dann sollte es funktionieren - viel Erfolg
Lächeln und Winken. Die Dosenfischer - Zwölf Elfen
Hucky3000
Geocacher
Beiträge: 177
Registriert: Do 8. Nov 2007, 17:43
Wohnort: 32120 Hiddenhausen
Kontaktdaten:

Re: Servo zuckt nur - Probleme mit Ansteuerung über BASCOM

Beitrag von Hucky3000 »

:gott: D A N K E !!! :gott:
Ach SOOO funktioniert das. Ich habe diverse Literatur - habe aber bisher nichts zu dem "Problem" gefunden.
Wenn man das einmal weiß....
DAS kostete jetzt 2 Wochen :schockiert:
Irgendwo hatte ich mal gelesen, das Crystal sich (nur) auf die Taktfrequenz bezieht... :irre:

Aber wo erkenne ich denn in den Fusebits den Teiler ?

Hucky
Antworten