ich habe ein StarterKit von Watterotts. Dabei war unter anderem ein Servo und ein Arduino UNO.
Ich bin jetzt dabei ein bisschen mit den einzelnen Komponenten rumzutesten.
LEDs , Buttons und Potis kann ich jetzt verwendet.
Den Servo eigentlich auch.
Jetzt versuche ich, den Servo, per Tastendruck in eine richtung zu "fahren"....
Ich weiß nicht genau, wie ich es lösen kann...
While(button)
{
servo.write(1);
}
So würde der Servo nur einma durchlaufen...
Wie kann ich den Servo aber solange laufen lassen, bis ich den Taster los lasse..
Ich hab folgendes: #include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created const int buttonPin = 3; const int ledPinrt = 2; int winkel = 0; int buttonState = 0; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object pinMode(ledPinrt, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { buttonState = digitalRead(buttonPin); while(buttonstate) { if(winkel < 180) { winkel++; servo.write(winkel); } } }
ich habe den oberen Code aus meinem File abkopiert, den unteren Code im Thread geschrieben.. Daher der Unterschied. Ich habe in dem Moment nicht darauf geachtet.
Dennoch tut sich nichts
Was df6ih sagen wollte ist, daß die Variable "buttonState" eine andere Variable ist als "buttonstate"
Versuch mal einige serial.print() einzufügen und Dir den Zustand der Variablen auf dem Terminal auszugeben. So merkst Du woran es fehlt.
Füge auch ein delay() in die While Schleife ein, da ansonsen die Schleife in 0,1 Sekunden auf 180 gezählt hat.
Grüße Uwe
aber ein Servo kann sich schon immer weiter drehen?
Also zum Beispiel wie ein Antrieb eines Autos oder so?
Servos sind so konzipiert, dass sie in einem bestimmten Winkelbereich eine angegebene Position (möglichst) genau anfahren können. Der Winkelbereich ist in der Regel auf 180 bzw. 270 Grad beschränkt. Einige wenige Servos können auch 9 bis 10 volle Umdrehungen anfahren (Spezialservos die meist als Seilwinden für Segelschiffe verwendet werden), das wars aber dann.
Wie MueThoS schon geschrieben hat, kannst Du den Servo auf endlosbetrieb umbauen. Damit verlierst Du aber die Positioniermöglichkeit.