Piloter le servomoteur SG90

Bonjour,

Dans le kit nous avons un servomoteur de type SG90.

Avant toute utilisation d’un servomoteur, il va être nécessaire de comprendre son fonctionnement et ses limites. La première étape est d’initialiser le servomoteur avec un angle de 0° à l’aide de ce programme :

Banchons le servo: le fil rouge sur le 3.3 V, le noir sur le GND et le jaune nous servira à passer la commande. Nous pouvons prendre n’importe laquelle des entrées / sorties digitales dont le nom est précédé par un ~ (Celles capable de délivrer un signal PWM). Pour notre montage, j’ai choisi la 9 mais si vous le branchez sur une autre broche (sauf les broches 0, 1, 2 ou 7), changez juste son numéro dans le programme ci dessous :

//
// Demonstration programm for the digital servo SG90 available in accessory kit: 
// https://shop.gamebuino.com/fr/accessories/73-gamebuino-accessories-pack.html
//
// Creation date: 04/2021

#include <Gamebuino-Meta.h>
#include <Servo.h>

#define F_SERVO 9

uint8_t angle;
 
Servo monservo;  // create object to control the servo
 
void setup(){
  gb.begin();
  angle = 0;
  monservo.attach(F_SERVO);  // set the pin used to control the servo
  monservo.write(angle);            // set servo with 0° angle
}
 
 
void loop(){ 

}

Une fois la position du servomoteur atteinte, vous pouvez fixer le palonnier (le bout de plastique blanc à fixer sur la partie blanche du servomoteur à l’aide de la petite vis) que l’on va utiliser pour le lever le drapeau comme sur la vidéo de démo sur Instagram.

fixer le petit drapeau sur le palonnier (un petit drapeau en papier collé sur une allumette)

et maintenant nous allons lever le drapeau à l’aide de ce programme:

//
// Demonstration programm for the servo SG90 
//
// available in accessory kit: 
// https://shop.gamebuino.com/fr/accessories/73-gamebuino-accessories-pack.html
//
// Creation date: 04/2021

#include <Gamebuino-Meta.h>
#include <Servo.h>

#define F_SERVO 9

uint8_t angle;

 
Servo monservo;  // create object to control the servo
 
void setup(){
  gb.begin();
  angle = 0;
  monservo.attach(F_SERVO);  // utilise la broche 9 pour le contrôle du servomoteur
  monservo.write(angle);            // init servo at start position (0°)
}
 
 
void loop(){ 
  angle = angle + 10;   // increase angle
  delay(500);                // just let some time to not go up too quick
  if (angle > 100) {        // adjust limit angle with value wanted (me it was 100°)
    delay(3000);            // wait 3s
    angle = 0;                // replace servo at initial position
  }
  monservo.write(angle);   // set the wanted position of the servo
}

Je n’ai posté aucune vidéo ni aucune photo volontairement car j’attends les photos et les vidéos de vos montages :slight_smile:

1 Like