Pages: [1]   Go Down
Author Topic: Anfängerproblem "Bedingte Schleife"  (Read 425 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Folgendes problem zu dem mir keine Lösung einfällt:

Ich habe eine Schleife, Steuerung von 3 Servos in Positionen die ich allerdings nur arbeiten lassen will wenn der Schalter eingeschaltet ist.
Diese Schleife soll dann aber nur ein mal durchlaufen werden!
Am liebsten würde ich das mit einem Taster realisieren da dann die Ablaufbedingung automatisch wieder 0 (nicht eingeschaltet) ist.

Für einen Denkanstoß wäre ich dankbar.

Servotimer2.h habe ich verwendet, unter IDE 1.03 bekomme ich aber nur Fehlermeldungen?
Wo besteht die Inkompalibität?
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mach es doch als Funktion:
Code:
const int buttonPin = 2;
int buttonState = 0;
void drehe_motor() {
//Code für die Servos hier
}
void setup() {
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
drehe_motor();
}

Addi
Logged

  / \    _|  _| o
 /--\ (_| (_| |

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke, das war es was ich brauchte!
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Damit die Funktion nur einmal pro Tastendruck aufgerufen wird mußt Du eine Statusvariable benutzen:

Code:
const int buttonPin = 2;
int buttonState = 0;
int buttonlaststate = 0;
void drehe_motor() {
//Code für die Servos hier
}
void setup() {
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH && buttonlaststate == 0) {
buttonlaststate = 1;
delay(10);                                  // entprellen
drehe_motor();
}
if (buttonState == LOW && buttonlaststate == 1) {
buttonlaststate = 0;
delay(10);                                // entprellen
}
Logged

Pages: [1]   Go Up
Jump to: