Roboter mit umgebauten Servos - Spannung

Hallo,

Ich habe mir nach Empfehlung der Community zwei Servos zugelegt (Standard Size) und diese zu durchdrehenden Motoren umgebaut. Danach habe die beiden Motoren zusammen mit Arduino und co. in mein Roboter Gehäuse eingebaut und möchte nun mithilfe des MotorShields die Motoren ansteuern. Die Motoren laufen beide mit 4.8 Volt. Nun habe ich das Problem, dass ich nicht weiß mit wie viel Spannung ich das gesamte Konstrukt ansteuern muss, damit die Servos meine Befehle ausführen. Ich habe bereits mit 12 Volt versucht und gemessen, dass die Servos zu viel Spannung abbekommen. Mithilfe des MotorShields habe ich die Geschwindigkeiten der Servos verringert, damit diese nicht zu viel Spannung abbekommen. Doch trotzdem konnte mein geschriebenes Programm nicht umgesetzt werden. Beim Drehen des Roboters, drehten die Servos willkürlich mal schneller mal langsamer.

Ich hoffe ihr könnt mir helfen und habt vielleicht einen Lösungsvorschlag oder eine Idee für die Verbesserung meines Projektes. Ich wäre euch sehr dankbar!

Freundliche Grüße Coiet

Wie kommst Du auf 12V?
Wenn die Servos unregelmäßig laufen und es kein Programmproblem ist, ist das Problem ein Netzteil das zuwenig Strom bringt.
Grüße Uwe

Hallo,

Ich benutze 10 1,2 Volt Batterien in Reihe geschaltet.

Coiet

wieso?

Versteh ich auch nicht. Standardservos laufen mit 5 Volt.
Und wie immer gilt [Gebetsmühlenmodus an] Sketch und verwendete Hard angeben [Gebetsmühlenmodus aus]

Standard-Servos laufen mit 5V (4,8V) manche mit 6V.

Wenn du die mit 12V betrieben hast, ist wahrscheinlich die Elektronik schon tot.

Aber wie schon erwähnt:
Sketch posten (mit den "#" tags oben)
schaltung posten.

Alles andere ist kaffeesatzleserei.
(wobei hier im Forum Einige unterwegs sind, die im Kaffeesatzlesen recht gut sind! Die könnten auch schon auf Jahrmärkten auftreten! :))

guntherb:
Alles andere ist kaffeesatzleserei.
(wobei hier im Forum Einige unterwegs sind, die im Kaffeesatzlesen recht gut sind! Die könnten auch schon auf Jahrmärkten auftreten! :))

Da müßten die Zuschauer aber Arduino's auf die Jahrmärkte mitnehmen oder glaubst Du, es funktioniert auch wenn ich meine mitnehme?? :wink: :wink: :wink:
Grüße Uwe

uwefed:

guntherb:
Alles andere ist kaffeesatzleserei.
(wobei hier im Forum Einige unterwegs sind, die im Kaffeesatzlesen recht gut sind! Die könnten auch schon auf Jahrmärkten auftreten! :))

Da müßten die Zuschauer aber Arduino's auf die Jahrmärkte mitnehmen oder glaubst Du, es funktioniert auch wenn ich meine mitnehme?? :wink: :wink: :wink:
Grüße Uwe

Willst du damit sagen, dass sich deine wahrsagerischen Fähigkeiten nur auf Arduino beschränken?
Und du kannst mir gar nicht sagen, ob ich mal reich, schön und berühmt werde? =( =( =(

Das ist das Programm, ist aber noch nicht optimiert!
Danke für Eure Hilfe!!
Coiet

//---LIBRARIES---

#include <Servo.h>

//---Definitionen---

#define TriggerPin 53
#define EchoPin 52

//---Variabeln---

unsigned int Zeit;
int Abstand;
int TriggerAbstand = 30;
int zentralerAbstand;
int rechtsAbstand;
int linksAbstand;
int bremsen = 9;
int bremsen2 = 8;
int richtung = 12;
int richtung2 = 13;
int geschwindigkeit = 3;
int geschwindigkeit2 = 11;

Servo rechterServo;
Servo linkerServo;

//---void setup---

void setup() {
  rechterServo.attach(9);
  rechterServo.write(90);
  linkerServo.attach(9);
  linkerServo.write(90);
  pinMode(TriggerPin, OUTPUT);
  pinMode(EchoPin, INPUT);
  pinMode(bremsen, OUTPUT);
  pinMode(richtung, OUTPUT);
  pinMode(bremsen2, OUTPUT);
  pinMode(richtung2, OUTPUT);
}

//---void loop---

void loop() {
  scan();
  Abstand = zentralerAbstand;
  if (zentralerAbstand <= TriggerAbstand){
    zurueckfahren();
    delay(500);
    guckrechts();
    scan();
    Abstand = rechtsAbstand;
    gucklinks();
    scan();
    Abstand = linksAbstand;
    if (linksAbstand >= rechtsAbstand){
        vorwaerts();
      }
    else{
        guckrechts();
        guckrechts();      // zweimal für zwei viertel Drehungen
        vorwaerts();
      }
    }
  else{
      vorwaerts();
    }
}

//---Funktionen---

void scan(){
   digitalWrite(TriggerPin, HIGH);
   delayMicroseconds(1000);
   digitalWrite(TriggerPin, LOW);
   Zeit = pulseIn(EchoPin, HIGH);
   Abstand = (Zeit/2) / 29.1;
}

void vorwaerts(){
   digitalWrite(bremsen, LOW);
   digitalWrite(bremsen2, LOW);
   digitalWrite(richtung, HIGH);
   digitalWrite(richtung2, HIGH);
   analogWrite(geschwindigkeit, 145);
   analogWrite(geschwindigkeit2, 165);   // Geschwindigkeiten nur verschieden, weil Servos aus unerklärlichem Grund verschieden schnell laufen
  }

void zurueckfahren(){
   digitalWrite(bremsen, LOW);
   digitalWrite(bremsen2, LOW);
   digitalWrite(richtung, LOW);
   digitalWrite(richtung2, LOW);
   digitalWrite(geschwindigkeit, 145);  
   digitalWrite(geschwindigkeit2, 165);
   delay(1500);
   digitalWrite(bremsen, HIGH);
   digitalWrite(bremsen2, HIGH);
}

void guckrechts(){
   digitalWrite(bremsen, LOW);
   digitalWrite(bremsen2, HIGH);
   digitalWrite(richtung, HIGH);
   digitalWrite(geschwindigkeit, 145);
   delay(1500);                        //je nachdem wie lage ein drehvorgang dauert: variabel
   digitalWrite(bremsen, HIGH);
}

void gucklinks(){
   digitalWrite(bremsen, LOW);
   digitalWrite(bremsen2, HIGH);
   digitalWrite(richtung, LOW);
   digitalWrite(geschwindigkeit, 145);
   delay(1500);                        //je nachdem wie lage ein drehvorgang dauert: variabel
   digitalWrite(bremsen, HIGH);
   digitalWrite(bremsen2, LOW);
   digitalWrite(richtung2, HIGH);
   digitalWrite(geschwindigkeit2, 165);
   delay(1500);                        //je nachdem wie lage ein drehvorgang dauert: variabel
   digitalWrite(bremsen2, HIGH);  
     
}

guntherb:
Willst du damit sagen, dass sich deine wahrsagerischen Fähigkeiten nur auf Arduino beschränken?
Und du kannst mir gar nicht sagen, ob ich mal reich, schön und berühmt werde? =( =( =(

Ich kann Dich beruhigen, Wie bei jedem Mann funktionieren sie bei Frauen definitiv nicht. :wink: :wink: :wink: :wink: :wink:
Ich bin immernoch darauf angewiesen, daß sie sagen, was se wollen.
Grüße Uwe

Coiet:
Das ist das Programm, ist aber noch nicht optimiert!
Danke für Eure Hilfe!!
Coiet

Was war's dann?
Grüße Uwe