INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hilfe: 2 Servos mit einem Schalter schalten?
25.06.2015, 09:53
Beitrag #1
Hilfe: 2 Servos mit einem Schalter schalten?
Einen wunderschönen Guten Morgen!

Mein Problem:
Ich möchte gerne 2 Servos mit einem Kippschalter steuern.
Der Kippschalter hat die Position 1 und 0.
Ich möchte jetzt wenn ich den Schalter betätige also auf 1 das beide Motoren auf 180° fahren und wenn ich den Schalter wieder auf 0 mache das beide wieder auf ihre ausgangspostion 0° fahren.
Ich bin absoluter Neuling und wüsste nicht wie ich das pogrammieren sollte Huh
Meine Teile findet ihr unten.

Hoffe Ihr könnt mir helfen, weis jetzt nämlich nicht mehr weiter...danke schonmal für eure Geduld
LG



Schalter:
http://www.conrad.de/ce/de/product/85648...view1&rb=1

2x Mini Servos:
http://www.ebay.de/itm/Turnigy-TG9e-9g-1...2a4771df0b

Arduino:
http://www.conrad.de/ce/de/product/19178...9?ref=list
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 10:38
Beitrag #2
RE: Hilfe: 2 Servos mit einem Schalter schalten?
(25.06.2015 09:53)bvb2307 schrieb:  Hoffe Ihr könnt mir helfen, weis jetzt nämlich nicht mehr weiter...
Tja, dafür müsste man erstmal wissen, wie weit Du schon gekommen bist.
Mein Rat: Installier Dir erst einmal die Arduino-IDE und fang mit den dort verfügbaren Beispielen an. Dann weißt Du schon etwas mehr und wir können auf etwas aufbauen.
Zumindest den Blink-Sketch solltest Du erst einmal zum Laufen bekommen.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 11:11
Beitrag #3
RE: Hilfe: 2 Servos mit einem Schalter schalten?
Hallo BVB,

Quick & dirty:

Code:
// Siehe auch
// http://www.robotoid.com/appnotes/arduino-operating-two-servos.html
// oder
// http://playground.arduino.cc/ComponentLib/Servo

#include <Servo.h>

Servo servoL;         // Define left servo
Servo servoR;         // Define right servo

void setup() {
  servoL.attach(10);  // Servo Links an digital pin 10
  servoR.attach(9);  //            R                   pin 9

  pinMode(12,  INPUT_PULLUP);     // Schalter

}

void loop() {            

    if( digitalRead(12) ){ //Je nachdem ob der Schalter High oder low ist
      servoL.write(90);
      servoR.write(90);
     }else{
      servoL.write(0);
      servoR.write(180);
     }
//Ordentlicher wäre es mit einem wechelndem Zustand statt ständig die Position zu setzen

delay(50); //Etwas Zeit für die Servobewegungen

}

Servos vor allem unter Last nicht über den Arduino mit Strom versorgen sondern direkt an einer geeigneten Stromquelle. Siehe auch den Link von Robotoid.

Arduino pin---gelb/signal--->Servo==Rot/Braun==>Stromquelle
(wenn die Farben stimmen. Gelb=Daten, Rot=+, Braun o. Schwarz=-)

Im Beispiel benutze ich den internen pull-up für den Schalter, ein Widerstand ist also nicht erforderlich.
Eleganter wäre es wenn beim Schalten ein Zustand definiert wird statt einfach fortlaufend die Servos anzusteuern, z.B.

if ( digitalRead(12) && !betaetigt ) { [servoaktion]; betätigt=1; }
else if ( !digitalRead(12) && betaetigt ) { [servoaktion]; betätigt=0; }


Gruß
Marcus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 11:30 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2015 11:40 von bvb2307.)
Beitrag #4
RE: Hilfe: 2 Servos mit einem Schalter schalten?
Oh Dankeschön Tongue

Wäre das auch möglich?

Code:
Code:
// Siehe auch
// http://www.robotoid.com/appnotes/arduino-operating-two-servos.html
// oder
// http://playground.arduino.cc/ComponentLib/Servo

#include <Servo.h>

Servo servoL;         // Define left servo
Servo servoR;         // Define right servo

void setup() {
  servoL.attach(10);  // Servo Links an digital pin 10
  servoR.attach(9);  // Servo Rechts an digital pin 9

  pinMode(12,  INPUT_PULLUP);     // Schalter

}

void loop() {            

if ( digitalRead(12) && !betaetigt )
{ [ servoL.write(180);
     servoR.write(180);];
     betätigt=1; }

else if ( !digitalRead(12) && betaetigt )
{ [ servoL.write(0);
     servoR.write(0);];
     betätigt=0; }
}

delay(50); //Etwas Zeit für die Servobewegungen

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 11:42
Beitrag #5
RE: Hilfe: 2 Servos mit einem Schalter schalten?
Hi,
marcus hat Dir ja schon eine Lösung geliefert, daher nur kurz:
1. Du solltest Deinen Schalter gegen GND schalten lassen und den Eingang mit INPUT_PULLUP konfigurieren.
2. Die Definition der Funktion Servo_move fehlt.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 11:46 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2015 11:53 von marcus.)
Beitrag #6
RE: Hilfe: 2 Servos mit einem Schalter schalten?
Hast du den ursprünglichen Code ausprobiert? Zeichne eine Schaltung (z.B. Fritzing) oder mache ein Bild.

Die
[];
waren nur Platzhalter.

Die Variable betaetigt muss noch oben initialisiert werden, also z.B. nach dem include

boolean betaetigt=0;

(Boolean hat zwei Zustände, 0/1, True/False, nicht wie bspw. int, die man für Zahlen nutzt)

Achte auf die Schreibweise, ohne Umlaute, groß und Kleinschreibung. In meinem Kommentar unten hatte ich noch welche mit Umlauten drinn.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 12:17
Beitrag #7
RE: Hilfe: 2 Servos mit einem Schalter schalten?
Oh okay Smile
Ich teste es wenn ich zuhause bin Blush

Aber denken sie das könnte auch funktionieren?

Bis jetzt schon mal vielen Dank Blush

Code:
Code:
// Siehe auch
// http://www.robotoid.com/appnotes/arduino-operating-two-servos.html
// oder
// http://playground.arduino.cc/ComponentLib/Servo

#include <Servo.h>

Servo servoL;         // Define left servo
Servo servoR;         // Define right servo
boolean betaetigt=0; // Variable betaetigt einlesen

void setup() {
  servoL.attach(10);  // Servo Links an digital pin 10
  servoR.attach(9);  // Servo Rechts an digital pin 9
  pinMode(12,  INPUT_PULLUP);     // Schalter

}

void loop() {            

if ( digitalRead(12) && !betaetigt )
{  
     servoL.write(180);
     servoR.write(180);
     betaetigt=1;
}

else if ( !digitalRead(12) && betaetigt )
{  
     servoL.write(0);
     servoR.write(0);
     betaetigt=0; }
}

delay(50); //Etwas Zeit für die Servobewegungen

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.06.2015, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2015 12:42 von marcus.)
Beitrag #8
RE: Hilfe: 2 Servos mit einem Schalter schalten?
Hallo,

sollte soweit gehen;


Schau dir auch mal die Beispiele der Arduino-IDE an, u.A.

Datei-Beispiele->Servo-Knob (sehr ähnlich) und
->Basics->Digital->InputPullup

Aus denen sich im Prinzip das Programm zusammen setzen lässt.


Schaltung für den Schalter mit int pullup
https://www.arduino.cc/en/Tutorial/InputPullupSerial
- Achtung, andere Pins

Servos direkt an der Stromquelle;
http://www.netlabtoolkit.org/flash/wp-co...ection.png (von http://www.netlabtoolkit.org/flash/refer...servoout/) - Achtung, andere Pins




Du wirst in der Praxis keinen Unterschied zwischen
if ( digitalRead(12) ) {
und
if ( digitalRead(12) && !betaetigt ) { betaetigt=1;
merken.

Der Unterschied besteht darin, dass das erste kontinuierlich zutrifft,
und beim zweiten die Variable auf 1/TRUE gesetzt wird, so dass die IF-Abfrage nur beim ersten mal zutreffen kann (die Servos nur einmal angesteuert werden).

Das kann beim Programmstart auch zu Problemen führen:
Du müsstest in den setup-Bereich noch festlegen welche Ausgangsposition die Servos haben und je nach Ausgangsposition des Schalters die betaetigt-Variable setzen etc. etc.

Ich denke das Sketch bietet genug Möglichkeiten etwas zu experimentieren. So lernt man am besten :-)

Du scheinst noch nicht so sicher im Programmieren zu sein, deshalb wäre es ratsam die Arduino Beispiele anzusehen und ein wenig damit herum zu spielen um die Grundlagen zu verstehen. Viele Beispiele lassen sich auf die eigenen Projekte fast 1:1 (mit leichten Modifikationen) anwenden.

Wenn man die Grundlagen (If, else, if else, variablen) verstanden hat, kommt der Rest fast von selbst. Siehe z.B. http://popovic.info/html/arduino/arduino...gen_mit_if
Ein paar einfache Beispiel nachbauen macht Spaß und hilft einem das ganze nachzuvollziehen.

viel Erfolg! :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hilfe 433MHz Empfänger OLDARDUINO 12 346 16.11.2016 09:55
Letzter Beitrag: hotsystems
  Hilfe für einen GPS gestützten Quadrocopter TeamQuadro 13 378 02.11.2016 08:14
Letzter Beitrag: Binatone
  Software Schalter cuteemo 11 377 26.10.2016 07:17
Letzter Beitrag: Binatone
  Unterschied zwischen DVI 24+1 und einem DVI 24+5 Adapter Pit 2 133 17.10.2016 15:49
Letzter Beitrag: Pit
  Hilfe, ist der bmp280 defekt? reimundko 5 589 12.09.2016 18:49
Letzter Beitrag: ardu_arne
  Hilfe bei IR Lichtschranke cb_baer 55 23.481 02.09.2016 14:37
Letzter Beitrag: Sarlochin
  Steuerung eines Schrittmotor und eines Lüfters auf einem Shield phischmi 7 275 18.08.2016 20:58
Letzter Beitrag: phischmi
  Bitte un Hilfe 3ddrucker 3 241 18.08.2016 16:24
Letzter Beitrag: Binatone
Star Bitte um hilfe bei Aurel Empfänger & Sender Mischa 3 517 08.06.2016 15:26
Letzter Beitrag: hotsystems
Heart Bitte um Hilfe um auf Display Temperatur auzugeben Mischa 6 505 04.06.2016 20:49
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste