servo.ino
Deux servos en quadrature dessinent un mouvement de chenille : la bibliothèque Servo du core GIGA gère plusieurs timers sans conflit. La base d'un bras, d'un pont roulant ou d'un rover.
Matériel requis
Une Arduino GIGA R1 WiFi (STM32H747, module radio 1DX : Wi-Fi b/g/n + BLE, antenne u.FL fournie), alimentée par USB-C. 2 servos SG90 + alimentation 5 V externe ≥ 1 A.
Branchement
Signaux sur D5 et D6, + sur l'alimentation externe, masses communes avec la GIGA. Jamais de servos sur le 5 V de la carte.
Fonctionnement
Chaque objet Servo réserve son canal timer ; write() place l'impulsion. Le pas de 20 ms (50 Hz de mise à jour) suffit largement à la mécanique. Dans l'Arduino IDE, plateforme « Arduino Zephyr-based Boards », carte « Arduino Giga R1 » ; montez l'antenne u.FL avant d'utiliser le radio, puis Téléverser.
Pour aller plus loin
Quatre servos pour un mini-bras, ou position mémorisée en EEPROM à chaque extinction.
servo.ino
// Deux servos sur D5/D6 — la bibliotheque Servo du core GIGA.
#include <Servo.h>
Servo gauche, droit;
unsigned long precedent = 0;
int phase = 0;
void setup() {
gauche.attach(D5);
droit.attach(D6);
Serial.begin(115200);
}
void loop() {
if (millis() - precedent < 20) return;
precedent = millis();
phase = (phase + 2) % 360;
float rad = phase * PI / 180.0f;
gauche.write(90 + (int)(60 * sinf(rad))); // 30..150 degres
droit.write(90 + (int)(60 * cosf(rad))); // en quadrature
if (phase % 90 == 0)
Serial.printf("G=%d D=%d\n", gauche.read(), droit.read());
}