Arduino L293D - Servo Ansteuerung

Gast #4497691
Hallo zusammen,

ich besitze einen Meccanoid und möchte diesen Open-Source programmieren. 
Auf 
http://cdn.meccano.com/open-source/Meccano_SmartModuleProtocols_2015.pdf 
auf der letzten Seite ist eine Skizze, die den Anschluss der Servos an 
einem Controller zeigt. Ich möchte die Servos mit einem Arduino Uno 
betreiben und habe mir hierfür auch einen L293D Motortreiber gekauft. 
Wenn ich nun einen Motortreiber benutze, benötige ich die im Protokoll 
erwähnten 1kOhm und 22kOhm Widerstände trotzdem?
(Firma: Outside the Asylum) #4497706
Du brauchst für Modelbauservos keinen Motortreiber wie den L293, sowas 
ist da schon eingebaut.
Die brauchen nur Spannung und ein PWM-Signal das über das Tastverhältnis 
den Auslenkungswinkel vorgibt.
Das soll der Arduino in der Software eingebaut haben.
Gast #4498270
Mal davon abgesehen heissen die Teile Servo Shield und bei einem anderen 
Projekt, wo Servos mit eingebauter Mikroelektronik verbaut waren, kam 
ebenfalls ein Servo Shield zum Einsatz, wieso?
#4498301
An ein Servo-Shield kannst Du 16 Servos anschließen, weil da ein Chip 
drauf ist, der 16 unabhängige PWMs erzeugen kann.
Der Arduino kann von sich aus einige PWMs ausgeben, Du mußt jetzt sehen 
wieviele Du brauchst und ob der Arduino alleine reicht.
Gast #4499383
Mal eine andere Frage. Für die Servos gibt es eine Lib vom Hersteller. 
Wenn ich die Servos aber ganz simpel an den Arduino anschließe und 
folgenden COde, der mit jedem Servo funktionieren dürfte, eingebe, 
reagiert der Servo nicht:
1
#include <Servo.h>
2

3
Servo myservo;  // create servo object to control a servo
4
// twelve servo objects can be created on most boards
5

6
int pos = 0;    // variable to store the servo position
7

8
void setup() {
9
  myservo.attach(5);  // attaches the servo on pin 9 to the servo object
10
}
11

12
void loop() {
13
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
14
    // in steps of 1 degree
15
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
16
    delay(15);                       // waits 15ms for the servo to reach the position
17
  }
18
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
19
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
20
    delay(15);                       // waits 15ms for the servo to reach the position
21
  }
22
}

Gibt es dafür einen Grund, dass die Servos nur mit der Lib vom 
Hersteller und nicht mit der Servo.h Lib vom Arduino funktionieren? 
Andere Servos funktionieren doch auch.
Gast #4499421
Peter H. schrieb:
> Gibt es dafür einen Grund, dass die Servos nur mit der Lib vom
> Hersteller und nicht mit der Servo.h Lib vom Arduino funktionieren?

Schau Dir mal Deine verlinkte Beschreibung - S. 7 - an. Fällt Dir was 
auf? Daisy Chain ... kann das ein Standard-Servo? Datenpakete - kann ein 
Standard-Servo etwas damit anfangen?

Also ist an den Servos irgendeine Art von Intelligenz / Chip dran, der 
die Kommandos liest und ausführt (ist sogar auf den Bildern 
näherungsweise erkennbar).

-> Protokoll loggen und nachmachen ist angesagt - oder die Lib des 
Herstellers nutzen (wozu ist die sonst da?)
Gast #4501420
Ich hätte dazu eine andere Frage. Auf folgendem Bild sieht man die 
Spannungsversorgung der Servos unabhängig von der des Arduino: 
http://www.netlabtoolkit.org/wp-content/uploads/2015/01/servo_connection.png

Ich lese aber immer wieder, dass der Ground-Anschluss des Arduino 
gemeinsam mit dem Ground/Minuspol einer Batterie angeschlossen werden, 
warum ist das so? Mein Arduino wird per USB betrieben und läuft auch 
ohne Ground-Anschluss. Und meine Servos werden über eine Batterie 
betrieben. Wozu den Arduino-GND-Pin dann mit dem Minuspol der Batterie 
verbinden, wenn beide unabhängig voneinander laufen? Verstehe den Sinn 
nicht.
Gast #4501431
Weil der Steuersignalstrom vom Arduino zum Servo wieder zum Arduino 
zurück muß. Das geschieht über GND. Der Stromkreis muß geschlossen sein 
und im Allgemeinen geschieht das über die GND Verbindung . Sonst fließt 
kein Strom, keine Reaktion auf Steuersignal. Um dir zu erklären, warum 
das bei dir anscheinend ohne die GND-GND Verbindung trotzdem geht, 
braucht man eine detailierte Schaltung und Aufbaubeschreibung/-foto.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.