Bonjours à toute la communauté de Futura-Sciences! .
Je m'abreuve depuis plusieurs mois des informations contenus sur votre site et m'en voilà à solliciter votre aide..
Je suis en train de monté un suiveur solaire. Pour mieux vous aider à comprendre comment il marche voici sa structure:
-Un trépied est fixé à une sorte de mât en deux partie. La première (fixer de façon covalente au trépied) permet à la structure de ne pas "tournicoter". La seconde (au dessus, est coaxiale).
Un Moteur DC parallèle au mât et relié via une poulie-corroie et permet ainsi la rotation horizontale du suiveur.
-Un panneau à réfraction solaire en haut du premier mat réfléchie les rayon sur un panneau solaire. Ce panneau à refraction peut se lever grâce à un vérin fixer à la deuxième moité du mât.
4 photo-résistances se trouvant perpendiculairement à la la suite du panneaux photovoltaïque, séparé d'une croix, permettent de créé une différence de tension qui peut être lu par la carte Arduino UNO.
Jusqu'ici tout va bien? ok, passons au plus dur:
VOICI LE CODE QUI NE MARCHE PAS:
://xD En faites des erreurs apparaissent et je n'arrive pas à les corrigé (enfin on, nous sommes un groupe et je ne m'y connais pas trop, les autres collègues sont partie en vacances ://
#include "Timer.h"
const int lumtop = A5;
const int lumbottom = A2;
const int lumleft = A4;
const int lumright = A3;
const int MHdirection = 13;
const int MHenable = 11;
const int MHbreak = 8;
const int MVdirection = 12;
const int MVenable = 3;
const int MVbreak = 9;
int position = 0;
Timer time;
int isrunning = 0;
void setup() {
Serial.begin(9600);
Serial.println("suiveursol ");
pinMode(MVdirection,OUTPUT);
pinMode(MVenable,OUTPUT);
pinMode(MVbreak,OUTPUT);
pinMode(MHdirection,OUTPUT);
pinMode(MHenable,OUTPUT);
pinMode(MHbreak,OUTPUT);
time.every(1800, testpourmarcheyy);
}
void loop() {
Testpourlesoleyyy();
}
void testpourmarcheyy() {
if(isrunning) {
return;
} else {
Testpourlesoleyyy();
}
}
int Testpourlesoleyyy() {
int isoKV = 0;
int isoKH = 0;
is running = 1;
restart
;float top = analogRead(lumtop)
;float bottom = analogRead(lumbottom)
;float left = analogRead(lumleft)
;float right = analogRead(lumright)
;float lr = left/right
;float rl = right/left
;float bt = bottom/top
;float tb = top/bottom
if{(left < right)&&(rl < 0.90)){
motor_horizontal(true,false) ;
isokH=0;
} else if ((right < left)&&(rl <0.90)) {
motor_horizontal(true,true);
isokH=0;
}else{
motor_horizontal(false,true);
isokH=1;
}
if((top < bottom)&&(tb < 0.90)) {
motor_vertical(true,false);
isokV=0
} else if ((bottom < top)&&(bt < 0.90)) {
motor_vertical(true,true);
isokV=0
}
if(!isokH || !isokV)
{
delay(100);
goto restart;
} else { isrunning = 0; return true; }
}
void motor_vertical(int enable , int direction)
{
if (enable == 1} {
if(direction == 1)
digitalWrite(MVdirection, HIGHT);
digitalWrite(MVbreak, LOW);
analogWrite(MVenable, 255);
} else {
digitalWrite(MVdirection, LOW);
digitalWrite(MVbreak, LOW);
analogWrite(MVenable, 255);
}
// j'en suis là avec le code mais les erreurs s'accumule, je me suis occupé que du début ( les déclarations des composants mais là..) et bien je galère! :P
Si quelqu'un peut m'aider je lui en serait très reconnaissant! Merci!
-----