Stap 4: Eindelijk laden arduino schets en aanpassen van de programma-parameters
Hier is mijn schets, ik heb een subroutine uit te voeren van de servo op lagere snelheden.
U zult opmerken dat één bounce code gewoon de lat slinger tot een bepaalde hoogte. De dubbele bounce routine werpt het tot een hoogte op een lagere snelheid zodat de bal releases langzamer en verplaatst vervolgens de rest van de weg naar beneden naar de bal vangen op haar tweede sprong.
Veel plezier!
#include
Servo servo1,
int servangle = 0;
int potPin = 4;
int ledPin = 13; Selecteer de pin voor de LED int val = 0; variabele de waarde afkomstig van de sensor int op te slaan
int delayTime = 0; Analoge Lees pinnen const int buttonPin = 2;
VOID myServo (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum)
{Als (curAngle < newAngle) {}
voor (int hoek = curAngle; hoek < newAngle; hoek += angleInc) {}
Als (servoNum == 1) servo1.write(angle);
Als (servoNum == 2) servo2.write(angle);
delay(incDelay); } }
anders als (curAngle > newAngle) {}
voor (int hoek = curAngle; hoek > newAngle; hoek-= angleInc) {}
Als (servoNum == 1) servo1.write(angle);
Als (servoNum == 2) servo2.write(angle);
delay(incDelay); } } }
VOID Setup {}
Serial.begin(9600);
pinMode (ledPin, OUTPUT);
de ledPin verklaren als uitgang
pinMode(buttonPin,INPUT);
servo1.attach(11);
delay(10);
servo1.write(90); delay(5000);
randomSeed(analogRead(0)); }
void loop {}
Serial.Print ("val uitstellen ="); Serial.Print(val); Serial.Print ("val hoek ="); Serial.println(valPot2); digitalWrite(ledPin,HIGH);
Bounce tweemaal naar links myServo(120,73,1,20,1);
linker delay(500);
myServo(73,65,1,20,1);
linker delay(2000);
Bounce eenmaal naar rechts
myServo(65,120,1,20,1);
juiste delay(2000);
Bounce eens naar links
myServo(120,65,1,20,1);
linker delay(2000);
Bounce eenmaal naar rechts
myServo(65,120,1,20,1);
juiste delay(2000);
digitalWrite(ledPin,LOW);
cli();
}