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; Servos über schalter steuern???
30.12.2013, 20:18
Beitrag #9
RE: Hilfe; Servos über schalter steuern???
ok, hab fast den ganzen tag gegoogelt. 1 Kippschalter könnte ich anschlissen mit digital in, gnd und strom. Aber wie Schliesse ich mehrere Schalter an? Das gerät hat ja 13 Digital in, aber ich sehe nur 2x GND ( oben und unten ) und nur 1x Strom an der Power leiste?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.04.2015, 09:49
Beitrag #10
RE: Hilfe; Servos über schalter steuern???
Ich habe mal den bestehenden Code für 4 Servos geändert und auf einen Arduino uno getestet.



#include <Servo.h>

Servo myservo;

// Der Taster muß den Pin auf Ground/Masse/Minus schalten,
/*** Atmega328 Konfiguration hier!!! ***/
/*

/*** Alternative 8-pinnige ATtiny45 Anschlusskonfiguration hier ***/
// von hier...
int tasterPin1 = 2;
int tasterPin2 = 3;
int tasterPin3 = 4;
int tasterPin4 = 5;
int tasterPin5 = 6;
int tasterPin6 = 7;
int tasterPin7 = 8;
int tasterPin8 = 9;
int Servo_Pin1 = 10;
int Servo_Pin2 = 11;
int Servo_Pin3 = 12;
int Servo_Pin4 = 13;
int Stellung1 = 180; //ServoStellung 1 auf 180°(Einstellbar zwischen Min 0° bis max.180° Winkel)
int Stellung2 = 0; //ServoStellung 2 auf 180°(Einstellbar zwischen Min 0° bis max.180° Winkel)
int Stellung3 = 90; // ServoStellung 3 auf 90°(Einstellbar zwischen Min 0° bis max.180° Winkel)
int Stellung4 = 0; // ServoStellung 4 auf 0°(Einstellbar zwischen Min 0° bis max.180° Winkel)
int Stellung_bisher; // Für Vergleich
const int Warten = 19; // 19 MilliSekunden Warten nach Stellschritt. Nicht verändern!
void Servo_move(int servo,int Stellung_Neu);
//-------------------------------------------------------------
void setup()
{
pinMode(tasterPin1, INPUT); //tasterPin1 (Pin 2) wird als Eingang definiert
pinMode(tasterPin2, INPUT); //tasterPin2 (Pin 3) wird als Eingang definiert
pinMode(tasterPin3, INPUT); //tasterPin3 (Pin 4) wird als Eingang definiert
pinMode(tasterPin4, INPUT); //tasterPin4 (Pin 5) wird als Eingang definiert
pinMode(tasterPin5, INPUT); //tasterPin5 (Pin 6) wird als Eingang definiert
pinMode(tasterPin6, INPUT); //tasterPin6 (Pin 7) wird als Eingang definiert
pinMode(tasterPin7, INPUT); //tasterPin7 (Pin 8) wird als Eingang definiert
pinMode(tasterPin8, INPUT); //tasterPin8 (Pin 9) wird als Eingang definiert
digitalWrite(tasterPin1,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin2,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin3,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin4,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin5,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin6,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin7,HIGH); // Interen Pullupwiderstand aktivieren
digitalWrite(tasterPin8,HIGH); // Interen Pullupwiderstand aktivieren
pinMode(Servo_Pin1,OUTPUT); // Pin als Ausgang deffinieren
pinMode(Servo_Pin2,OUTPUT); // Pin als Ausgang deffinieren
pinMode(Servo_Pin3,OUTPUT); // Pin als Ausgang deffinieren
pinMode(Servo_Pin4,OUTPUT); // Pin als Ausgang deffinieren
Stellung_bisher=Stellung1; // Ruhestellung
}
//-------------------------------------------------------------
void loop()
{
if (digitalRead(tasterPin1) == LOW)
Servo_move(Servo_Pin1, Stellung3);
if (digitalRead(tasterPin2) == LOW)
Servo_move(Servo_Pin1, Stellung4);
delay(20);
if (digitalRead(tasterPin3) == LOW)
Servo_move(Servo_Pin2, Stellung1);
if (digitalRead(tasterPin4) == LOW)
Servo_move(Servo_Pin2, Stellung2);
delay(20);
if (digitalRead(tasterPin5) == LOW)
Servo_move(Servo_Pin3, Stellung1);
if (digitalRead(tasterPin6) == LOW)
Servo_move(Servo_Pin3, Stellung2);
delay(20);
if (digitalRead(tasterPin7) == LOW)
Servo_move(Servo_Pin4, Stellung1);
if (digitalRead(tasterPin8) == LOW)
Servo_move(Servo_Pin4, Stellung2);
delay(20);
}

//-------------------------------------------------------------
/*** Ab hier nichts ändern, bestimmt das Timingverhalten!!! ***/
void Servo_move(int servo,int Stellung_neu){
int Schritt;
if (Stellung_neu == Stellung_bisher) return;
Schritt = (Stellung_neu > Stellung_bisher) ? 1 : -1;
while(Stellung_bisher != Stellung_neu){
Stellung_bisher+=Schritt;
// Servo stellen
digitalWrite(servo,HIGH);
delayMicroseconds((Stellung_bisher * 10)+500);
digitalWrite(servo,LOW);
delay(Warten);
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Android Smartphone über Bluetooth steuern StephanBuerger 0 96 25.11.2016 20:01
Letzter Beitrag: StephanBuerger
  Hilfe 433MHz Empfänger OLDARDUINO 12 383 16.11.2016 09:55
Letzter Beitrag: hotsystems
  Hilfe für einen GPS gestützten Quadrocopter TeamQuadro 13 391 02.11.2016 08:14
Letzter Beitrag: Binatone
  Software Schalter cuteemo 11 383 26.10.2016 07:17
Letzter Beitrag: Binatone
  Hilfe, ist der bmp280 defekt? reimundko 5 596 12.09.2016 18:49
Letzter Beitrag: ardu_arne
  Hilfe bei IR Lichtschranke cb_baer 55 23.643 02.09.2016 14:37
Letzter Beitrag: Sarlochin
  Bitte un Hilfe 3ddrucker 3 249 18.08.2016 16:24
Letzter Beitrag: Binatone
Star Bitte um hilfe bei Aurel Empfänger & Sender Mischa 3 523 08.06.2016 15:26
Letzter Beitrag: hotsystems
Heart Bitte um Hilfe um auf Display Temperatur auzugeben Mischa 6 518 04.06.2016 20:49
Letzter Beitrag: hotsystems
  Hilfe bei Ironman Helm Sketch Heppo 4 401 31.05.2016 17:18
Letzter Beitrag: Heppo

Gehe zu:


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