Étape 4: Sketch Arduino
Voici enfin le programme arduino qui contrôle les servos: (a ordures un peu dedans - besoin de la nettoyer)
#include
Servo servo1, servo2, servo3 ;
int potPin = 2 ;
Sélectionnez l’entrée pin pour le potentiomètre
int servangle = 0 ; servo angle variable int potPin = 4 ;
Sélectionnez l’entrée pin pour le potentiomètre
int potPin2 = 0 ;
Sélectionnez l’entrée pin pour le potentiomètre
int ledPin = 13 ;
Sélectionnez le code pin de la LED int val = 0 ;
variable pour stocker la valeur provenant de la sonde
int valPot2 = 0 ;
valInc int = 4 ;
int currAngle = 0 ;
int newAngle = 0 ;
int delayTime = 0 ; Broches de lecture analogiques const
int buttonPin = 2 ;
void myServo (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum)
{Si (curAngle < newAngle) {pour (angle int = curAngle ; angle < newAngle ; angle += angleInc) {}
Si (servoNum == 1) servo1.write(angle) ;
Si (servoNum == 2) servo2.write(angle) ; Delay(incDelay) ; } }
ElseIf (curAngle > newAngle) {pour (angle int = curAngle ; angle > newAngle; = angleInc d’angle) {}
Si (servoNum == 1) servo1.write(angle) ;
Si (servoNum == 2) servo2.write(angle) ; Delay(incDelay) ; } } }
void setup() {}
Serial.Begin(9600) ;
pinMode (ledPin, sortie) ;
déclarer la ledPin comme une sortie
pinMode(buttonPin,INPUT) ;
SERVO1.Attach(9) ;
Delay(10) ;
SERVO1.Write(145) ;
Servo2.Attach(11) ;
Delay(10) ;
Servo2.Write(90) ;
servo3.Attach(13) ;
Delay(10) ;
servo3.Write(90) ;
Delay(2000) ; }
void loop() {}
Serial.Print ("buttonpin =") ;
Serial.println(digitalRead(buttonPin)) ;
Val = 1000 ;
Serial.Print ("retarder val =") ;
Serial.Print(Val) ;
Serial.Print (« val d’angle = ") ;
Serial.println(valPot2) ;
digitalWrite(ledPin,HIGH) ;
SERVO1.Write(30) ; 150 à 30
myServo(145,30,1,10,1) ;
Servo2.Write(145) ; 90 à 150
Delay(1000) ;
servo3.Write(109) ; 80 à 110 - pince
Delay(1000) ;
servo3.Write(100) ; 80 à 110
SERVO1.Write(145) ; 150 à 30
Servo2.Write(130) ; 90 à 150
int y = 131 ; pour (int x = 30; x < 146; x = x + 2) {}
myServo(30,145,1,10,1) ;
SERVO1.Write(x) ; 90 à 150
Delay(30) ;
y = y-1 ;
if(y > 89) {servo2.write(y) ;
Delay(30) ; }
myServo(130,90,1,10,2) ; }
Delay(7000) ;
servo3.Write(80) ; 90 à 150 - pince ouverte
myServo1(172,90,1,15) ;
Delay(Val) ;
SERVO1.Write(172) ;
myServo1(valPot2,175,1,1) ;
digitalWrite(ledPin,LOW) ;
CLI() ;
Delay(5000) ; }