Suiveur solaire biaxe avec modes Auto/Manuel – Système de suivi solaire efficace
Composants et fournitures
| Arduino UNO | ×1 |
| Potentiomètres rotatifs | ×2 |
| LEDs (rouge + bleu) indicateurs de mode | ×2 |
| Bouton poussoir 12 mm (changement de mode) | ×1 |
| Servos MG996R (couple élevé) | ×2 |
| Photorésistances (LDR) | ×4 |
| Résistances 10 kΩ (pour LDR et bouton) | ×5 |
| Résistances 221 Ω (pour LEDs) | ×2 |
Outils nécessaires
- Fer à souder
Applications et services en ligne
- Autodesk Tinkercad (simulation et programmation initiale)
- Arduino IDE
Description du projet
Projet pédagogique (club « Young Hackers », élèves école primaire) : un petit panneau solaire 5 V orientable sur deux axes pour maximiser la captation. Deux modes de fonctionnement :
- Mode Manuel (LED rouge allumée) : deux potentiomètres contrôlent directement l'azimut (servo 9) et l'élévation (servo 10).
- Mode Auto (LED bleue allumée) : quatre LDR disposés en carré (haut-gauche, haut-droit, bas-gauche, bas-droit) détectent la direction du soleil. Les moyennes gauche/droite et haut/bas déterminent le déplacement des servos par pas de 1° si la différence de luminosité dépasse 4 %.
Un bouton poussoir bascule entre les modes (avec anti-rebond logiciel). Le code a été développé et simulé dans Tinkercad avant montage réel. Les élèves ont participé en chaîne de production (soudure, isolation, vissage).
Code final (Rotating solar panel code)
#include <Servo.h>
int mode = 0, buttonState = 0, prevButtonState = 0;
// ... variables LDR, servos
void setup() {
pinMode(7, INPUT); // bouton mode
pinMode(12, OUTPUT); // LED rouge manuel
pinMode(11, OUTPUT); // LED bleu auto
pinMode(A0, INPUT); // potar azimut
pinMode(A1, INPUT); // potar élévation
pinMode(A2, INPUT); // LDR haut-gauche
pinMode(A3, INPUT); // LDR haut-droit
pinMode(A4, INPUT); // LDR bas-gauche
pinMode(A5, INPUT); // LDR bas-droit
servo_9.attach(9); servo_10.attach(10);
}
void loop() {
buttonState = digitalRead(7);
if (buttonState != prevButtonState) {
if (buttonState == HIGH) {
mode = (mode == 1) ? 0 : 1;
digitalWrite(12, mode == 0); // rouge = manuel
digitalWrite(11, mode == 1); // bleu = auto
}
}
prevButtonState = buttonState; delay(50);
if (mode == 0) { // manuel
servo_9.write(map(analogRead(A0), 0, 1023, 0, 180));
servo_10.write(map(analogRead(A1), 0, 1023, 0, 180));
} else { // auto
// lecture et mapping LDR (valeurs min/max à calibrer par capteur)
int tl = map(analogRead(A2), 50, 980, 0, 100);
int tr = map(analogRead(A3), 200, 990, 0, 100);
int bl = map(analogRead(A4), 170, 970, 0, 100);
int br = map(analogRead(A5), 250, 1000, 0, 100);
int left = (tl + bl) / 2, right = (tr + br) / 2;
int top = (tl + tr) / 2, bottom = (bl + br) / 2;
if (abs(right - left) > 4) {
if (right < left && servo_9.read() < 180) servo_9.write(servo_9.read() + 1);
if (right > left && servo_9.read() > 0) servo_9.write(servo_9.read() - 1);
}
if (abs(top - bottom) > 4) {
if (top < bottom && servo_10.read() < 180) servo_10.write(servo_10.read() - 1);
if (top > bottom && servo_10.read() > 0) servo_10.write(servo_10.read() + 1);
}
}
}
Schéma de câblage
Schéma complet (image) : alimentation, servos, LDR en pont diviseur, potentiomètres, LEDs, bouton.
Processus de fabrication
- Projet capteur DHT11 température/humidité avec indicateurs LED et buzzer piézo
- Capteur d'obstacle IR simple avec Arduino — LED IR + Photodiode
- Solar Tracker V2.0 – Système avancé de suivi solaire DIY pour panneau photovoltaïque
- Suiveur Solaire IoT : Gestion Intelligente de l'Énergie avec Arduino
- Construire un Cube LED 4x4x4 avec Arduino Uno et 1Sheeld – Projet LED Interactif
- Compteur RPM Haute Vitesse Arduino – Algorithme « Single Shot » Novelty
- Projet de galvanoplastie au cuivre : Construisez un système intelligent avec Arduino UNO
- Plateforme de suivi solaire à servos de précision pour une capture d'énergie optimale
- Qualité des panneaux solaires : points de contrôle essentiels pour une performance optimale