// Controle vitesse servo
#include <Servo.h>
unsigned long previousMillis;
const unsigned long interval = 10; // 10 ou 20 millisecondes sont des valeurs courantes
float r = 0.0; // angle de la fonction sinusoïdale en radians pour le deuxième servomoteur
Servo servo2;
void setup()
{
servo2.attach(7);
}
void loop()
{
unsigned long currentMillis = millis();
if( currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
// ------------------------------------------
// Servomoteur
// Une variation sinusoïdale progressive
// La vitesse est contrôlée par le potentiomètre
// ------------------------------------------
float s = sin( r); // Le sinus de l'angle en radians
float t = (90.0 * s) + 90.0; // Convertir la plage -1...1 en 0...180
int angle2 = int( t); // Convertir en entier pour l'angle du servomoteur
servo2.write( angle2);
int potentiometer1 = 500;//analogRead( A0);
float r_increment = 0.001 + (0.00005 * float(potentiometer1));
r += r_increment;
if( r >= 2.0 * M_PI)
{
r -= 2.0 * M_PI;
}
}
}