Autom. Storen

Hallo Dominik,

ich vermute, wenn der Motor erst einmal seine Nenndrehzahl erreicht hat, wird er auch die 1,5N Drehmoment bewältigen können. Der Anlaufstrom bei den DC-Getriebemotoren ist sehr hoch. Das Anlaufdrehmoment reicht nicht aus, um den Motor überhaupt drehen zu lassen. Du bräuchtest wahrscheinlich einen Motor, der ein bisschen mehr Drehmoment liefert oder der ein günstigeres Übersetzungsverhältnis hat.

Grüße,
Dirk
 
Hallo,

das hätte ich jetzt nicht gedacht das nen 2,3Nm-Motor keine 1,5Nm zum drehen
bekommt ... :confused:

Daten von deinem Motor (Conrad 233131-62) ...
Nennspannung: 12 V
Max. Laststrom: 0.7 A
Leerlaufstrom: 0.32 A
Untersetzung: 18:1
Spitzen-Drehmoment: 2.25 Nm
Leerlauf-Drehzahl an Nennspannung: 340 U/min
Last-Drehzahl: 310 U/min

und der Motor (Conrad 233132-62), den ich in Fettschrift angegeben habe ...
Nennspannung: 12 V
Max. Laststrom: 0.75 A
Leerlaufstrom: 0.28 A
Untersetzung: 50:1
Spitzen-Drehmoment: 5.39 Nm
Leerlauf-Drehzahl an Nennspannung: 122 U/min
Last-Drehzahl: 110 U/min

gleicher Motor, gleicher Preis nur anderes Getriebe ...

ungefähr doppeltes Drehmoment und doppelte Übersetzung (anderes Getriebe)
dafür aber halbe Drehzahl. Wenn ich jetzt fies währ }:) würd ich sagen ...
"hättse man den genommen den ich vorgeschlagen habe" :rolleyes:
Aber wenn ich ehrlich bin ... hätte ich auch nicht besser gewußt :p
Ich könnte jetzt auch nicht die Hand dafür ins Feuer legen das es mit dem
anderen Motor 100%ig läuft :eek: Auf jeden Fall hat er an der Welle das
doppelte Drehmoment. Bleibt also wohl nur ein 2ter Versuch mit dem anderen
Motor :)

Gruß
Dino
 
2. Versuch - Frage

Hallo ihr beiden. Vielen Dank für die Antworten.

Dino:
- Ich dachte einfach, dass der Motor völlig genügt den ich genommen habe. Auch mit der Federwaage (Zugwaage oder wie die heisst), ist nicht mehr zu ziehen als Anlauf als die 1.2kg. Deshalb der Motor.

- Hast du das Foto mal angeschaut? Das sollte doch klappen mit direkter Achsmontage oder? Die Übersetzung ist ja vom Motor gegeben.

- Kann man davon ausgehen, dass der Anlaufstrom beim 2. Motor (der 233132-62 mit 5.xy Nm) auch max. nur die Hälfte sein wird (also ca. 1.8A)?? Mein Netzgerät zieht max 3-4 A ... kann es sein, dass einfach nocht mehr Ampère zur Verfügung stehen muss für das Anlaufmoment?? => Würde das überhaupt gehen (Stromverstärkung bei gleicher Spannung von 12VDC)?

- Kann man den Anlaufstrom auch senken oder begrenzen, dass bei einem allfälligen Überstrom nicht der Motor verheizt (auch bei einem zB ungewollten mechanischen Interrupt durch Verklemmen o.ä.)?

Viele Fragen, aber ich denke ich werde einen 2. Versuch mit dem 5.x Nm-Motor wagen. Wenn es nur an dem liegt, dann wäre das ja super.

Dominik
 
Hi Dominik,

Dino:
- Ich dachte einfach, dass der Motor völlig genügt den ich genommen habe. Auch mit der Federwaage (Zugwaage oder wie die heisst), ist nicht mehr zu ziehen als Anlauf als die 1.2kg. Deshalb der Motor.
wie bereits von mir geschrieben ... ich hätte es wohl auch nicht anders
gemacht und hinterher ist man immer schlauer ;)

- Hast du das Foto mal angeschaut? Das sollte doch klappen mit direkter Achsmontage oder? Die Übersetzung ist ja vom Motor gegeben.
Ist eigentlich die beste Lösung. Würde ich auch so machen. Noch nen
Kunststoffrohr über den Motor (mit ein paar Milimeter Luft drum rum) und
dann ist gut. Man muß nur drauf achten, das das Kardangelenk oben
nicht blockiert (wegen dem Knickwinkel).

- Kann man davon ausgehen, dass der Anlaufstrom beim 2. Motor (der 233132-62 mit 5.xy Nm) auch max. nur die Hälfte sein wird (also ca. 1.8A)??
Also den Anlaufstrom vorhersagen wird echt schwierig. Ich würde nicht davon
aussgehen. Nimm sicherheitshalber das Maximum an und pack an die Versorgung
nen dicken Elko (so 4700-10000µF) dran um Stromspitzen zu puffern.

Mein Netzgerät zieht max 3-4 A ... kann es sein, dass einfach nocht mehr Ampère zur Verfügung stehen muss für das Anlaufmoment?? => Würde das überhaupt gehen (Stromverstärkung bei gleicher Spannung von 12VDC)?
:confused: Hä ? Perpetuum Mobile ?
Der Strom, den eine Spannungsquelle liefern kann hängt mit ihrem
Innenwiderstand zusammen. Wenn dann liefert dein Netzgerät 3-4A aber
wird das wohl nicht ziehen. Beim ziehen (aus dem 230V-Netz) wären das
690-920W :D :rolleyes:
Also manche Netzteile haben Schutzschaltungen, die bei Überstrom den
Ausgang abschalten oder die Spannung soweit reduzieren das die maximal
lieferbare Leistung nicht überschritten wird.

- Kann man den Anlaufstrom auch senken oder begrenzen, dass bei einem allfälligen Überstrom nicht der Motor verheizt (auch bei einem zB ungewollten mechanischen Interrupt durch Verklemmen o.ä.)?
Ich würde den Motorstrom messen und bei zB 15sec Überschreitung den
Motor abschalten. Für ne Meldung dann ne rote LED anschalten (Überstrom).

Viele Fragen, aber ich denke ich werde einen 2. Versuch mit dem 5.x Nm-Motor wagen. Wenn es nur an dem liegt, dann wäre das ja super.
Ich hoffe mal das es dann läuft :) Finanziell ist das ja glücklicherweise noch
halbwegs erträglich. Wobei ca 15,-eur Material was rumliegt auch wehtut.

EDIT : Noch was... mach mit PWM Anfahr- und evtl auch Bremsrampen. Das
schont die Getriebe. Vor allem beim Anfahren (Anschalten) würde ich das
machen. Also langsam beschleunigen.

Gruß
Dino
 
AVR-Befehle

Hallo zusammen.

Erst Mal: Vielen Dank für eure Antworten!!

Ich möchte mich nun mal im Programmieren einlernen. Ich habe das AVR-Kontrollerboard, welches leider in Assembler erklärt wird. Das ist ja gut und recht, aber ich habe mir gesagt, ich möchte das in Basic realisieren.

Meine Frage nun (nach sehr langem Suchen):
Hat mir jemand eine Site oder ein PDF mit Gegenüberstellungen der Assembler- und Basic-Befehlen?? So etwas muss es doch geben...

Würde mich freuen auf eine Antwort...

Grüsse
Dominik
 
Hi Dominik,

Meine Frage nun (nach sehr langem Suchen):
Hat mir jemand eine Site oder ein PDF mit Gegenüberstellungen der Assembler- und Basic-Befehlen?? So etwas muss es doch geben...
ich glaube da wirst du aus gutem Grund nicht fündig werden. So etwas gibt
es nicht da die Sprachen doch zu verschieden sind.

Du kannst Basic mit C, Pascal, Perl, PHP, ... gegenüberstellen.
Aber Basic <-> Assembler ... Das wird nix.
Alleine schon weil Assembler keine Variablen in dem Sinne wie Basic oder
Pascal kennt. Die ganzen Grundlagen sind schon ziemlich unterschiedlich.
Das soll nicht heißen, das Assembler komplizierter ist ... es ist aber etwas
anders als die Hochsprachen.

Bei Variablen ... du baust dir deine Variablen selber aus SRAM-Zellen und
CPU-Registern auf. Es gibt keine wirklichen INT, FLOAT, LONG, ... Variablen.
Es ist alles aus Bits und Bytes zusammengebaut. Du mußt dir auch extra
Routinen zusammenbauen oder fertige einbinden damit du so rechnen kannst
wie in Basic.

Dafür hast du aber Möglichkeiten, die die Möglichkeiten der Hochsprachen bei
weitem übertreffen. Es gibt nichts schnelleres als ein gut optimiertes und mit
den Hardware-Einheiten der CPU beschleunigtes Asssembler-Programm ;)

Gruß
Dino
 
Danke Dino.

Naja, somit bleibt mir nichts anderes übrig als die einzeln erklärten Assembler-Schritte Zeile für Zeile zu Blocks zusammenzufassen und den Vorgang in Basic umzuschreiben/herauszufinden :stoned:

Grüsse
Dominik
 
Tests mit Bascom und ATmega8

Hallo.
Ich möchte eigentlich nur mal 2 Taster (1 und 2) in den uC einlesen, den Status an den LEDs ausgeben (T1 = rt, T2 = gn) und im LCD den Status schriftlich zeigen (wenn T1 dann "Button 1 pushed", wenn T2 "Button 2 pushed").

Ich denke ich weiss auch bereits wo das Problem liegt: Sicher am SELECT CASE bzw. der Variable EINGANG => Ich möchte den Status der PINS AM PORT B (0..5) nach Drücken der entspr. Taste 1 od. 2 sofort einlesen und demenstprechend im Case abzweigen.

Hier der Code:

Code:
'-------------------------------------------------------------
'myAVR.bas Vorlage für myAVR-Board
'Grundstruktur eines uC-Programms
'-------------------------------------------------------------
'Tests mit dem LC-Display
'Taste1 an B.0, Taste2 an B.1, LEDrt an B.2, LEDgn an B.3
'-------------------------------------------------------------
$regfile = "m8def.dat"                                      'Prozessortyp ATmega8
$crystal = 3686400                                          'Taktrate

'hier Initialisierung durchführen

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Config Portd = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Portb.2 = Output
Config Portb.3 = Output

Dim I As Byte
Dim Eingang As Byte
Ledrt Alias "LEDrt=ON"
Ledgn Alias "LEDgn=ON"
Taste1 Alias "Button 1 pushed"
Taste2 Alias "Button 2 pushed"

Eingang = Ddrb

Do
    If Pinb.0 = 0 And Pinb.1 = 0 Then
   'If Ddrb.0 = 0 And Ddrb.1 = 0 Then
      Cls
      Upperline
      Lcd "Push a button"
      Waitms 1000
    Else

      Cls

      Select Case Eingang
      'If Pinb.0 = 1 Then
      Case Pinb.0:
         Cls
         Upperline
         Lcd Ledrt
         Portb.2 = 1
         'portb.3 = 0
         Wait 1000
      'End If

      Case Pinb.1 :
      'If Pinb.1 = 1 Then
         Cls
         Upperline
         Lcd Ledgn
         Portb.3 = 1
         'portb.2 = 0
         Wait 1000
      'End If
      'Case Else
      End Select


   End If

Loop

End                                                         'Programmende

Wenn mir jemand einen Hinweis hat, wäre ich dankbar. Es kann auch nur mal ein Tipp sein, WIE ich nur den Teil des Port-Status nach Drücken in die Variable bringe und im Case vergleichen kann.

Dominik
 
Hallo Dominik,

Ich denke ich weiss auch bereits wo das Problem liegt: Sicher am SELECT CASE bzw. der Variable EINGANG => Ich möchte den Status der PINS AM PORT B (0..5) nach Drücken der entspr. Taste 1 od. 2 sofort einlesen und demenstprechend im Case abzweigen.
das glaube ich auch. ;)

Der Wert hinter dem "Case" bezieht sich immer auf den Inhalt der Variable,
die man beim "Select" angibt. Du hast aber etwas hinter das Case geschrieben,
was mit sicherheit nicht in der Variable vorkommt.

Wenn Bascom das als String interpretiert dann müßte in deiner Variablen
"Eingang" der Text "Pinb.0" oder "Pinb.1" vorkommen. So wird das leider nix.

Problem ... wie testet man in einer Select-Case-Anweisung ob ein Bit im
Wert der Variablen gesetzt ist ? Mit Assembler wär das überhaupt kein
Problem :D aber Bascom ? :confused: keine Ahnung wie man das da macht.

Code:
Select Case Eingang
Case [Bit0 gesetzt]
  Befehle ...
Case [Bit1 gesetzt]
  Befehle ...
End Select
Problem ... Es könnten auch mehrere Cases "logisch wahr" sein.
Bei 0 ist kein Bit gesetzt. Bei 3 sind beide gesetzt. Bei 1 und 2 ist nur eines
gesetzt. ... Was soll man da machen ? Eine logische Zwickmühle :rolleyes:
Verstehst Du was ich meine ?
Wenn Bit 0 gesetzt ist wird der erste Case ausgeführt. Wenn Bit 1 zusätzlich
gesetzt ist wird das einfach ignoriert. Erst wenn Bit 0 nicht gesetzt ist wird
auch auf "Bit1 gesetzt" getestet. Der Select-Befehl wird von oben nach unten
abgearbeitet. Der erste Fall der zutrifft wird ausgeführt. Alles weitere wird
ignoriert obwohl es auch Wahr-Fälle weiter unten geben könnte.

Gruß
Dino
 
Hallo Dino.

Ich habe den oberen Teil gut verstanden was du meinst. Deshalb habe ich die BYTE-Eingang-Zuweisung in den Loop hineingenommen, dass dieser auch jedesmal abgefragt wird.

Auch habe ich die WAIT in WAITMS korrigiert (kann es erst zu Hause testen ob das eher funktioniert).

Ich habe das Ganze mal farblich gestaltet der Übersicht wegen :pleasantry:

Ist das den nun möglich?? Das DDRB-Register (Pins) werden abgefragt und als BYTE festgehalten (00000000) und in der BYTE-Variablen EINGANG eingefügt (Inhalt EINGANG somit 00000000).
Danach, je nach Tastendruck, wird die Var EINGANG jedesmal neu aufgefüllt zB 00000010 und danach in der SELECT-CASE-Verzweigung verglichen bzw. angesprungen.

Würde das gehen bzw. habe ich deine (Dino) Tipps richtig umgesetzt?

Grüsse
Dominik
 

Anhänge

  • AVR-Praxis_Forumsbeitrag.jpg
    AVR-Praxis_Forumsbeitrag.jpg
    151,2 KB · Aufrufe: 5

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)