servo-balayage.ino
La bibliothèque Servo du core UNO R4 pilote les servos standard (impulsion 1-2 ms à 50 Hz) sans les contraintes de timers des AVR. Un balayage complet 0-180° sert de banc de test avant de l'intégrer à un mécanisme.
Matériel requis
Une Arduino UNO R4 WiFi (Renesas RA4M1 @ 14 MHz + ESP32-S3 Wi-Fi/BLE compagnon, matrice LED 12x8, LED RGB) alimentée par USB ou 6-24 V. 1 servo d'angle (SG90/MG90S) ; alimentation externe 5 V pour les modèles costauds.
Câblage
Signal (orange) sur D9, + (rouge) sur 5 V, - (marron) sur GND commun.
Fonctionnement
myservo.write(angle) envoie l'impulsion de position ; la boucle incrémente l'angle de 1° toutes les 20 ms et inverse le sens aux butées.
Exécution
Arduino IDE 2.x avec le core « Arduino UNO R4 Boards », carte « Arduino UNO R4 WiFi », port série puis Téléverser. Le coprocesseur ESP32-S3 se met à jour séparément si l'IDE le demande.
Variantes
Ajouter un potentiomètre sur A1 pour le suivi d'angle, ou afficher l'angle sur la matrice LED (R4 WiFi).
servo-balayage.ino
// Balayage servo avec la bibliotheque Servo (portage RA4M1).
#include <Servo.h>
Servo myservo;
int angle = 0, sens = 1;
void setup() {
myservo.attach(9);
myservo.write(0);
Serial.begin(9600);
}
void loop() {
myservo.write(angle);
static unsigned long t0 = 0;
if (millis() - t0 < 20) return;
t0 = millis();
angle += sens;
if (angle >= 180) sens = -1;
if (angle <= 0) sens = 1;
}
// Sur R4, la lib Servo utilise les timers du RA4M1 sans
// entrer en conflit avec analogWrite() comme sur les AVR.
// Alimentation externe conseillee au-dela du micro-servo.