top of page

Juillet 2017 , par Techno_fabrik

Difficulté :

Durée :

Réalisation d'un tracker solaire avec 3 photorésistances

LE PROJET  

L'objectif est de réaliser un tracker solaire permettant de suivre une source lumineuse tel que le soleil.

La réalisation de ce tracker va nous permettre de réaliser notre 

Matériel

  carte Arduino (Uno / Mega)

  3 photorésistances 100 kOhms

  3 résistances 10 k Ohms  

  pile 9V

  2 servo-moteurs 9g

PRÉREQUIS :

Connaissance des risques électriques. Montage réalisable par tous. Notion d'électronique et bases en programmation.

RÉALISATION

ETAPE 1 : Capter la lumière

Pour capter une source lumineuse, nous avons utilisé des photorésistances de 100 kOhms.

Les photorésistances sont des résistances qui varient en fonction de l’intensité lumineuse reçue. Plus la photorésistance capte de la lumière et plus sa résistance deviendra faible.

Nous avons utilisé des photorésistances de 100kOhms.

Nous allons connecter la photorésistance en série avec une résistance de 10 kOhms pour pouvoir avoir une variation de la tension au point milieu. Nous connecterons ce point à une entrée analogique de l’Arduino.

ETAPE 2 : Se déplacer pour suivre la source                            lumineuse

Deux servo-moteurs permettent de se déplacer circulairement sur deux axes. En programmant la rotation par rapport aux valeurs des photorésistances, nous pouvons suivre la source lumineuse.

ETAPE 3: Réaliser le tracker

Le module composé des trois photorésistances permet de connaitre sa position par rapport à la lumière. 

Lorsque l'on est parfaitement positionné, les trois photorésistances sont à leur maximum, et sont plus ou moins égaux.

Programme (codé en C)

// 29/07/2017 - Programme C - Tracker solaire -  Carte Arduino ( UNO ) 
// Ce programme a pour objectif de : 
//                                     -  Traiter les informations apportés par les photorésistances
//                                     -  Gérer la rotation et l'inclinaison du module pour suivre une source lumineuse
// Programme réalisé par Techno_Fabrik

//********************BIBLIOTHEQUES****************************
 // bibliothèque permettant d'utiliser les commandes pour servomoteurs facilement
 #include <Servo.h>
//********************DECLARATIONS****************************

float photo_r_0,photo_r_1,photo_r_2; // valeur des photorésisances
int servo1=6; // commande du premier servo
int servo2=7;
int angle_rot=90,angle_inc=90;
// angle des servos
Servo moteur_rotation; 
Servo moteur_inclinaison;

 //*************************INITIALISATION **********************

void setup() {
  
 moteur_rotation.attach(servo1);  
// on relie l'obtet au pin de commande
 moteur_inclinaison.attach(servo2);// on relie l'objet au pin de commande
  Serial.begin(9600); 
  delay(2000);
}

//*************************************** BOUCLE ***************************

void loop() {
 
while ( (angle_rot > 10 )&&(angle_rot< 170) && (angle_inc>10)&&(angle_inc<170))
// sécurité pour les servos
{
photo_r_0=analogRead(A0);Serial.print("R_0 :   ");Serial.println(photo_r_0);
// entrée analogique 8 bits = 1024 valeurs = 0 à 5V
photo_r_1=analogRead(A1);Serial.print("R_1 :   ");Serial.println(photo_r_1);
photo_r_2=analogRead(A2);Serial.print("R_2 :   ");Serial.println(photo_r_2);

   
if ( photo_r_0<photo_r_1-3)  
// selon la valeur des photorésistances, on va moduler l'angle des servomoteurs
{

  angle_rot=angle_rot-1;
  moteur_rotation.write(angle_rot);
}
else if (photo_r_0>photo_r_1+3)
{
  angle_rot=angle_rot+1;
  moteur_rotation.write(angle_rot);
}

if (photo_r_2>photo_r_1+3)
{
  angle_inc=angle_inc-1;
  moteur_inclinaison.write(angle_inc);
}
else if (photo_r_2<photo_r_1-3)
{
  angle_inc=angle_inc+1;
  moteur_inclinaison.write(angle_inc);
}
}
Serial.println(" ANGLE SERVO MAXIMUM ");
}

VIDEO REALISATION
Tracker Solaire
Lire la vidéo
bottom of page