- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 64

Thema: Hilfe zum bau eines Roboterarms

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    mit Aktivierungspins zusammenschalten: das ist Murks!
    Dann laufen die manchmal schon beim Booten unkontrolliert los.
    Machs vernünftig!
    Und steck keine unnütze Energie und Material in den Uno!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.666
    Zitat Zitat von HaWe Beitrag anzeigen
    mit Aktivierungspins zusammenschalten: ....
    Dann laufen die manchmal schon beim Booten unkontrolliert los.
    Bitte mal erklären, warum die das tun sollen! Wenn die Ausgänge des Arduino undefiniert flackern würden, dann würden die so oder so unkontrolliert los laufen. Ob beim Uno oder beim Mega. Solange die Aktivierungspins nicht aktiviert sind, also kein High-Signal anliegt, laufen die Motoren sowieso nicht. Und solange die andern Eingänge dasselbe Signal erhalten, laufen die Motoren auch nicht. Außerdem reagieren die Motoren aufgrund ihrer natürlichen Trägheit so schnell auch nicht, dafür muss sich erst ein Magnetfeld aufbauen, was seine Zeit dauert.

    Einen Uno hat er schon, einen Mega muss er erst kaufen.
    Geändert von Moppi (17.09.2018 um 13:06 Uhr)

  3. #3
    HaWe
    Gast
    Ist erfahrungsgemäß so bei L293 2-Pin-Steuerung statt 3-Pin-Steuerung.
    Das ganze macht aber eh keinen Sinn ohne Rotationsencoder bzw. ohne Servos.

    Aber murkst euch eben irgendwas zurecht, ich bin dann hier raus!

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    19.09.2008
    Ort
    Bielefeld
    Alter
    47
    Beiträge
    70
    https://www.bing.com/images/search?view=detailV2&ccid=C28JEk0U&id=41547D992F30 078E03CDA61E40D70D51DD2FAF38&thid=OIP.C28JEk0UEwRU M29giJ3ycgHaEj&mediaurl=https%3a%2f%2fwww.robomart .com%2fimage%2fcatalog%2fRM0055%2f01.jpg&exph=298& expw=484&q=H-Bridge+IC+mit+4+Motoren&simid=608005971116952354&s electedIndex=67&ajaxhist=0

    Das habe ich in Netz gefunden, aber ich glaube, das es nicht das richtige ist oder? 2 Pins pro Motor...

    Also ich höre mir gern zwei Meinungen an und wenn es machbar ist, teste ich die auch. Bitte nicht gegenseitig hier das Thema "erwärmen" Ich bin um jede Hilfe dankbar! Und ich möchte gern es richtig beigebracht bekommen.
    Zwar weiß ich viel, doch möcht' ich alles wissen.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.666
    Man kann immer mehrere Wege beschreiten. Entweder man macht etwas über Multiplexer, dann spart man I/O-Ports oder man macht es über Parallelanschaltung, dann benötigt man mehr I/O-Ports. was nun dazu kommt, ist, dass Du sicher noch Eingänge benötigen wirst. Deshalb käme man beim Arduino Uno nicht um einen Multiplexer für die Ausgänge herum. Bei den Eingängen kann es dann ähnlich aussehen. Bei einem Multiplexer legst Du immer zuerst eine Adresse an. Bei 2 Bit (2 Ausgänge) sind das 4 Zustände: 0-0, 0-1, 1-0, 1-1. Der Multilexer schaltet, je nach Auswahl, das Logiksignal des Eingangs auf einen von vier Ausgängen. Damit könnte man einen PWM-Ausgang auf 4 Ausgänge am Multiplexer durchschalten, mit 2 Adressleitungen. Würde man 3 Ausgänge zur Adressierung verwenden, wären das 8 Zustände: 0-0-0, 0-0-1, 0-1-0, 0-1-1, 1-0-0, 1-0-1, 1-1-0, 1-1-1. Damit könnte man ein PWM-Signal mit 3 Adressleitungen auf 8 Ausgänge durchschalten. Man würde mit 4 Ausgängen 8 ansteuern können, allerdings nicht gleichzeitig.

    Der Arduino Mega hat einfach mehr Ein- und Ausgänge, so dass man keinen Umweg gehen müsste.

    Bei Deinem Link oben, ist der Aktivierungspin auf HIGH gelegt, damit dreht der Motor entweder in die eine oder die andere Richtung, mit konstanter Drehzahl. Das wäre auch möglich! Dann hast Du pro Motor 2 Leitungen vom Arduino, das macht dann 10 Leitungen, bei 5 Motoren. 12 Leitungen hättest Du am Arduino Uno und dann noch die serielle Schnitstelle (Pin 0 und 1). Aber die Drehzahl ist dann nicht steuerbar. Das entspricht dann der manuellen Handhabung dieses einfachen Roboterarmes, nur dann über Arduino. Die Änderung der Motordrehzahl ist ja beim dem Arm eigentlich nicht vorgesehen. Wäre aber sicher: .

    Ohne Steuerung der Drehzahl über PWM ist es dann noch etwas einfacher. Pro Motor legt man jeweils 2 Leitungen an den Arduino. Die Pins am Arduino müssen als Ausgang geschaltet sein. Bei 0-0 an den Asugängen des Arduino würde der Motor stehen, bei 1-1 an den Ausgängen des Arduino würde der Motor stehen. Bei 1-0 an den Ausgängen des Arduino würde er in eine Richtung drehen und bei 0-1 in die andere Richtung.
    Geändert von Moppi (17.09.2018 um 13:49 Uhr)

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    19.09.2008
    Ort
    Bielefeld
    Alter
    47
    Beiträge
    70
    @Moppi,

    Wenn man mit den Multiplexer nur einzeln und nicht parallel die Motoren ansteuern kann, kann ich diese Lösung für mein Vorhaben nicht gebrauchen.
    Also bleibt nur noch der Maga + 3xL293d übrig oder?
    Zwar weiß ich viel, doch möcht' ich alles wissen.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.666
    Die drei L293D kannst Du auch am Arduino Uno betreiben. Wenn Du auf PWM verzichtest. Wie gesagt, das ist bei dem Arm ja nicht vorgesehen, dass der drehzahlgesteuert betrieben wird. Sondern nur mittels Motor An und Motor Aus, in die eine oder die andere Richtung. Zwei Leitungen für 5 Motoren = 10 Steuerleitungen. 12 I/O-Ports stehen am Uno zur Verfügung (ohne dem ser. Port). Du hast dann noch 2 I/O-Ports am Uno übrig. Und dazu noch 5 Analoge Eingänge zur Konvertierung Analoge Spannung in digitalen Wert. Die analogen Eingänge könnte man auch noch als Digitale missbrauchen. Denn wenn Du die ausliest, bekommst Du einen Wert, der der Höhe der angelegten Spannung entspricht. Ein digitales High-Signal am analogen Eingang entspricht dann einem Wert von größer 500. Ein digitales Low-Signal am Analogeingang entspricht dann einem Wert von kleiner 350. Meist sind die Unterschiede noch größer, so dass Low einem Wert von kleiner 10 entspricht und High einem Wert größer 800. Auf diese Weise hat man noch 5 Eingänge und 2 Ausgänge übrig. Ser. Schnittstelle sind nochmal 2 digitale I/O Ports.


    Willst Du später noch Sensoren dran machen, könntest Du einen Arduino Mega nehmen. Um alles auf einem Board zu steuern. Der Mega hat schon 54 digitale I/O-Ports.
    Hier sind mal alle Arduino Boards, Unterschiede beschrieben: https://www.generationrobots.com/blo...arduino-board/
    Du solltest auch mal ein Auge auf das Arduino Mega ADK werfen.

    Für 5 Motoren mit PWM-Steuerung sind das 15 Ports. Dann bleiben noch 39 übrig. Die Analogen kommen noch dazu.


    Wenn der Arm bewegt wird, brauchst Du maximal 4 Motoren davon. Der Fünfte ist für den Greifer (auf und zu).

    Zur Verdeutlichung

    Ich habe mal die Schaltung aufgebaut:

    Klicke auf die Grafik für eine größere Ansicht

Name:	hbruecke.jpg
Hits:	11
Größe:	148,1 KB
ID:	33648

    In der ganzen Wuselei habe ich die wichtigen 2 Kabel in Grau gesteckt.

    Grau: Das sind die beiden Datenkabel, mit denen der Arduino auf Pin#2 und Pin#7 den Motor steuert.
    Orange: 5V vom Arduino zum IC und 5V zum Motor, als "+".
    Rot: Kabel "+" vom Motor.
    Schwarz: Kabel "-" vom Motor.
    Braun: Aktivierungspin am IC, ist auf +5V angeschlossen, damit der Motor drehen kann.
    Grün: "+" Versorgungsspannung für Motor.
    Gelb: "-" Versorgungsspannung.
    Blau: Masse "Ground" vom Arduino zur Außenbeschaltung.

    Statt den Motor an 5V anzuschließen (links außen orangenes Kabel), kann man den auch an 9V oder 12V anschließen oder eine andere Spannung. Der Motor läuft übrigens nicht von alleine an, wenn das Board bootet, also an Spannung angeschlossen wird. Erst, wenn im Programm die Pins entsprechend auf LOW und HIGH gesetzt sind.

    für den Arduino das Programmbeispiel:
    Code:
    void setup() {
     pinMode(2, OUTPUT); // Port als Ausgang schalten
     pinMode(7, OUTPUT); // Port als Ausgang schalten
    }
    
    void loop() {
    
     //Motor steht
     digitalWrite(2, LOW);
     digitalWrite(7, LOW);
    
     //Pause 5 sec
     delay(5000);
    
     //Motor Richtung 1
     digitalWrite(2, HIGH);
     digitalWrite(7, LOW);
    
     //Pause 2 sec
     delay(2000);
    
     //Motor Richtung 2
     digitalWrite(2, LOW);
     digitalWrite(7, HIGH);
    
     //Pause 2 sec
     delay(2000);
    }

    Hier nochmal ein anderer Link: https://www.maxphi.com/dc-motor-inte...duino-tutorial


    Wechselnde Motorsteuerung

    Um zwei Motoren abwechseln zu steuern, kann man Enable-Pin#1, vom L293D über einen Inverter ansteuern und den Enable-Pin#9 direkt. So geht dann ein Ausgang, des Arduino, direkt auf den Pin#9 oder #1 und außerdem an ein Nicht-Gatter. Das Nicht-Gatter geht am Ausgang auf den zweiten Enable-Pin, des L293D. Je nachdem, ob der Ausgang am Arduino dann LOW oder HIGH geschaltet ist, ist dann entweder der eine Motor oder der andere Motor, von zweien, aktiviert. So kann man zwei Motoren an einem L293D mit 3 Leitungen vom Arduino abwechselnd steuern.

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG.jpg
Hits:	4
Größe:	6,7 KB
ID:	33649
    Wenn man nur einen Inverter benötigt, kann man den z.B. auch aus einem NPN-Transistor und mit zwei Widerständen aufbauen: Eingang über 1MOhm, an Basis Transistor; Kollektor Transistor über 10kOhm an +5V; Emitter Transistor an Ground; Ausgang ist dann direkt am Kollektor Transistor.

    Wenn man den Greifer und einen anderen Motor nur im Wechsel ansteuert (was kein Problem darstellt und im Endergebnis nicht störend ist), dann braucht man 3 Leitungen, um zwei Motoren abwechselnd zu betreiben (statt 4 Leitungen). Auf obige Weise kann man weitere Motoren abwechseln betreiben. Man kann 4 Motoren betreiben, wovon jeweils 2 aktiv sind und benötigt 6 Steuerleitungen. Man kann 6 Motoren betreiben, wovon 3 aktiv sind und benötigt 9 Steuerleitungen.

    Man könnte das bei zwei Motoren auf 3 Leitungen reduzieren, wenn jeweils nur ein Motor zur Zeit angesteuert wird.
    Hierzu mein Vorschlag:

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG.jpg
Hits:	4
Größe:	25,0 KB
ID:	33650

    Damit hätte man 3 Leitungen eingespart (3 Ausgänge am Arduino).


    Ausgangsvervielfachung mit 74HC595

    Da ich mich gerade mit dem Thema beschäftige, bin ich, nach sehr langer Zeit, wieder mal über Schieberegister gestolpert. Damit kann man mit 3 Steuerleitungen 8 digitale Ausgänge realisieren. Man kann, wenn man mehrere Schieberegister hintereinanderschaltet, auch mit 3 Leitungen dann 16, 24, 32, 40, 48, 56 oder noch mehr Ausgänge ansteuern. Dabei wird jeweils 1 Bit an das erste Schieberegister übergeben und mit einem Takt weiter geschoben. Nach entsprechender Taktzahl sind dann alle Bit im Register und werden mit einem weiteren Signal am 74HC595 an die Ausgänge des Schieberegisters übernommen (Latch-Schieberegister).
    Geändert von Moppi (19.09.2018 um 07:07 Uhr)

Ähnliche Themen

  1. FPV steuerung eines RC-Cars mit hilfe eines smartphones
    Von nonam im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 08.02.2013, 13:57
  2. Simulation eines einfachen Roboterarms-Matlab
    Von Hashi im Forum Mechanik
    Antworten: 0
    Letzter Beitrag: 20.12.2012, 12:58
  3. Hilfe beim Bau eines Spannungsreglers.
    Von mhc2004 im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 11.03.2007, 18:08
  4. hilfe für die wahl eines microprozessors
    Von ichbaehr im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 7
    Letzter Beitrag: 27.03.2006, 11:41
  5. Hilfe! Bau eines Feuerwehrroboters
    Von Rubbel im Forum Software, Algorithmen und KI
    Antworten: 13
    Letzter Beitrag: 19.01.2006, 14:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress