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
Servo Steuerung
14.07.2014, 10:28
Beitrag #1
Servo Steuerung
Hallo
Ich habe ein Problem oder verstehe etwas nicht.
Ich habe 2 Servo
Der erste ist ein Tower Pro SG90 wahr bei dem Arduino Starter Kit dabei, der andere Servo ist von Modelcraft MC-410
Wenn ich diesen Sketch ins Arduino UNO hochlade drehen beide Servo entsprechen dem Sketch hin und her

#include <Servo.h> //Servo Ansteuerung
Servo motor; // Servo den Namen motor zuweisen
void setup(){
motor.attach(3); //Pin belegung UNO 3
}
void loop(){
motor.write(2); // drehen nach 2°
delay(1000); // 1 sekunde warten
motor.write(150); // drehen nach 150°
delay(1000); // 1 sekunde warten
}

Dann habe ich einen Schalter vom Starter Kit hinzugefügt und diesen Sketch hochgeladen

#include <Servo.h> //Servo Ansteuerung
const unsigned int BUTTON_PIN = 2; // Schalter Pin 2
Servo motor; // Servo den Namen motor zuweisen
void setup(){
motor.attach(3); //Pin belegung UNO 3
}
void loop(){
const int BUTTON_STATE = digitalRead(BUTTON_PIN); // BUTTON_PIN (Schalter) auslesen und zustand im BUTTON_STATE schreiben
if (BUTTON_STATE == HIGH) //Wenn BUTTON_STATE (Schalter) auf HIGH (gedrückt) ist
{
motor.write(2); // drehen nach 2°
}
if (BUTTON_STATE == LOW) //Wenn BUTTON_STATE (Schalter) auf LOW (nicht gedrückt) ist
{
motor.write(150); // drehen nach 150°
}
}

Der Servo Tower Pro SG90 vom Starter Kit tut genau das was der Sketch verlang. Wenn der Schalter gedrückt wird dreht er sich der Servo nach 2° und wenn nicht dann nach 150°.
Der Servo Modelcraft MC-410 rürt sich überhaupt nicht.
Und das verstehe ich nicht. Warum dreht der Servo Modelcraft MC-410 beim ersten Sketch und beim zweiten rührt er sich nicht?
Angeschlossen sind die beiden Servo am 5 V vom UNO
Hatte beide auch an 6V Batterie und 9V Blockbatterie angeschlossen, hatte denselben Effekt

Schalter mit 10K Ohm an 3.3 V vom UNO

Ich bedanke mich schon einmal für eure Antworten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.07.2014, 12:09
Beitrag #2
RE: Servo Steuerung
Hallo dimotec,

sieht schon reichlich eigenartig aus:
Code:
const int BUTTON_STATE = digitalRead(BUTTON_PIN);
Nimm hier mal das "const" weg.
Frage: Beide Servos an einem Arduino-Pin? Was ziehen die an Strom?
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.07.2014, 16:03
Beitrag #3
RE: Servo Steuerung
Hallo

Es geht nur um den Servo Modelcraft MC-410 der andere wahr nur zu demonstrieren das der Sketch richtig geschrieben ist.

Der Servo Modelcraft MC-410 350 mA

Ich denke nicht das es am Strom hängt, wie gesagt der Servo Modelcraft MC-410 funktioniert mit dem ersten Sketch nur wenn ich ein Schalter hinzufüge regt er sich nicht.

Grüße Marc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.07.2014, 16:59
Beitrag #4
RE: Servo Steuerung
Hallo Marc,

naja, 350 mA sind etwa das 9 - fache dessen was ein Arduino-Port liefern kannExclamation
Hast du die Änderung bzgl. "const" gemacht?
Spannend ist auch was die Anweisung:
Code:
if (BUTTON_STATE == HIGH)
ergibt bzw. ob die "Entprellung" mit dem Widerstand ausreichend ist.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.07.2014, 02:11 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2014 05:01 von Corvus.)
Beitrag #5
RE: Servo Steuerung
Probiers mal damit, das wäre dann auch mit Entprellung des Tasters:

Zitat:#include <Servo.h> //Servo Ansteuerung
const unsigned int BUTTON_PIN = 2; // Schalter Pin 2
Servo motor; // Servo den Namen motor zuweisen
const int buttonPin = 2;
int buttonState;
int lastButtonState = LOW;
long lastDebounceTime = 0;
int debounceDelay = 50;

void setup() {
  pinMode(buttonPin, INPUT);
  motor.attach(3); //Pin belegung UNO 3
}

void loop() {
  int reading = digitalRead(buttonPin);
  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  } 
  
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;
      if (buttonState == HIGH) {
        motor.write(2); // drehen nach 2°
      }
      else {
        motor.write(150); // drehen nach 150°
      }
    }
  }
  lastButtonState = reading;
}

Und den Taster folgendermaßen verkabeln:
[Bild: button_sch.png]

Erklärung:
Der Onboard-Spannungsregler liefert nur 5V das heißt, du kannst den 3.3V Pin nur mit nutzen, wenn du den UNO per USB vom PC mit strom versorgst.

Zu deinem Quelltext:

Du musst dem Arduino mitteilen, das du den Digital-Pin 2 als Eingang benutzen mochtest, das machst du mit:
Code:
pinMode(buttonPin, INPUT);

Code:
const int BUTTON_STATE = digitalRead(BUTTON_PIN);
definiert BUTTON_STATE als Konstante. D. h. der Wert ist unveränderlich und kann nicht überschrieben werden. Richtig wäre hier
Code:
int BUTTON_STATE = digitalRead(BUTTON_PIN);
wie Ricardo schon schrieb.

Gruß
lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Infrarot zu RS232 für Steuerung DG0JG 46 687 22.10.2016 11:35
Letzter Beitrag: hotsystems
  Slider Steuerung, Programmierung blueblack 21 614 16.10.2016 22:31
Letzter Beitrag: blueblack
  ATtiny und Servo Bibliothek malsehen 9 305 15.10.2016 18:09
Letzter Beitrag: malsehen
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 121 14.10.2016 21:40
Letzter Beitrag: hotsystems
  Servo soll nur in Ruhelage stoppen Sven1996 1 237 19.08.2016 14:37
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 755 16.07.2016 11:43
Letzter Beitrag: Binatone
  Servo und PWM Ausgabe F2Ingo 4 492 17.06.2016 14:53
Letzter Beitrag: F2Ingo
  Hilfe bei Servo-steuerung Innocence 7 811 23.02.2016 11:00
Letzter Beitrag: hotsystems
  Servo.h lässt sich nicht einbinden ^^ EvilBen 5 701 08.02.2016 18:07
Letzter Beitrag: hotsystems
  Weichensteuerung mit Servo RCudino 21 3.021 05.01.2016 18:04
Letzter Beitrag: Markus0815

Gehe zu:


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