arduino et vérins

j'ai contrôlé au testeur l'ampérage reçu par le panneau de 50 w , en faisant varié le 2èm axe, la tension varie d'environ 0.2 amp,entre un réglage approximatif et un bon centrage, le cumul panneau et parabole nécessite 2 axes, le point de concentration sors du collecteur au bout de 3 à 4 minutes, plus sensible que le panneau.
il me semble que les montures équatoriale sont en 2 axes motorisés, premier prix 400 € , poids admissible, ( à ce prix) 3 kgs maxi.
mon panneau de 50 w produit ente 2.5 et 3 par soleil , entre 10 et 14 h, pas eu le temps ou du moins pas eu assez de soleil, pour faire un test continue dans cette plage horaire.

je réflechi a un montage en 2DOF,. ma foi assez basic. après les bricolages avec tige filetée et écrou et vielle visseuse, je n'y crois pas trop ,éventuellement avec de la tige au pas trapézoïdale, avec un écrou bronze et un bon motoréducteur, car avec l'acier, ça craint, surtout en extérieur.
si on veux du sérieux, il faut une structure galvanisée ou inox( c'est mon job), ça a un coût, donc je cherche a épurer au maximum la structure, moins de matière+ d'économie.+ de fiabilité.
je cherche donc des vérins, quelques pistes, certaines sérieuse d'autres moins.

ma parabole fait 85 cm, j'ai fait l'acquisition d'une sonde de température qui monte jusqu'a 300 °, ça dépasse, et à mon avis pas loin du double, j'ai presque fondu une louche en inox au foyer. maintenant j'ai chauffé de l'eau de 20° à 30° en moins d'une heure et avec un circuit mal purgé, donc pas très efficace, mon échangeur est une cocotte minute avec un serpentin inox soudé sur le couvercle et une pompe de circulation de chauffage auto en 12v.
le problème est résolu, j'attend juste.....le soleil..

68tjs:
Oui mais on ne s'éclaire pas à l'eau chaude :grin:.
Dans un cas on produit de l'électricité et dans l'autre on produit de l'eau chaude.

Au delà du fait que le premier consommateur (et de loin) d'un foyer est le chauffage, vu la différence de quantité d'énergie produite, même avec un sale rendement pour la conversion chaleur/électricité (et encore faut pas déconner, on parle juste d'une turbine à vapeur, si ça avait un sale rendement on en aurait pas dans nos centrales nucléaires :wink: ) on reste toujours largement gagnant. Surtout si on prend en compte le fait qu'un panneau voltaïque perd chaque année en efficacité (et je parle pas de la maintenance onduleur et compagnie)

concernant les montures équatoriale, une simple EQ3 supporte allègrement un minimum de 10kg, contrepoids compris.
Maintenant, c'est vrai qu'il y a de tout sur le marché, du très bon et du très mauvais, comme dans tous les domaines.

Acheter une monture pour tenter de l'adapter n'est pas la solution. Prendre le principe d'une monture et l'appliquer à ton projet peut être une solution.

Concernant le suivi, un seul moteur est utilisé. Il y en a deux sur les montures automatisées car elles doivent être capables de pointer le télescope dans toutes les directions de manière autonome. Les modèles les plus aboutis, par forcément les plus chers d'ailleurs, comportent en prime un GPS et une caméra leur permettant de se repérer seules et trouver pratiquement n'importe quel objet céleste défini en base de donnée sans prépointage ou prépositionnement préalable.

B@tto:

68tjs:
Oui mais on ne s'éclaire pas à l'eau chaude :grin:.
Dans un cas on produit de l'électricité et dans l'autre on produit de l'eau chaude.

Au delà du fait que le premier consommateur (et de loin) d'un foyer est le chauffage, vu la différence de quantité d'énergie produite, même avec un sale rendement pour la conversion chaleur/électricité (et encore faut pas déconner, on parle juste d'une turbine à vapeur, si ça avait un sale rendement on en aurait pas dans nos centrales nucléaires :wink: ) on reste toujours largement gagnant. Surtout si on prend en compte le fait qu'un panneau voltaïque perd chaque année en efficacité (et je parle pas de la maintenance onduleur et compagnie)

le probleme pour un utilisateur ? est la gestion de la chaine thermodynamique.
les echangeurs vapeurs et meme si le rendement n'est pas des meilleurs, il reste le plus simple à utiliser.

L'avenir (rendement production d'electricité directement par la "chaleur" ) sera peut etre fait par de l'effet peltier, mais à ce jour cette techno n'est pas exploitable pour de l'utilisation "simple" en generation

Peltier marche très mal en génération (rendement < 10% mais peut-être que y'a eu des progrès ?). Pour moi c'est le stirling et les fours solaires qui sont de vrais générateurs viables quand on a pas d'hydraulique à dispo (si je me rappelle bien c'est la Suède ou la Norvège qui est 100% verte grâce à cette source) : demande très peu de moyen, aucun danger (à part si on met sa main dans le four à 3000°C évidemment xD), énergie inépuisable, 100% écolo et surtout capable d'être une vraie source compétitive, parce que l'éolien et le photovoltaïque c'est bien gentil mais on est pas près de suppléer notre uranium (ah attendez, on me dit dans l'oreillette qu'on le pille en Afrique).

En plus faire du solaire en Europe alors qu'en Afrique de base on pourrait déjà en produire le double ...

des news, les vérins électriques ne devraient pas tarder à arriver, en attendant , je me penche(beaucoup) sur le code ,toujours avec la carte Arduino UNO et une carte motoshield v1.
j'ai réalisé un capteur avec 3 photorésistances,montées à 120° les unes des autres et donc il y aura les 2 vérins.
petit problème sur le code , mais j'avance , hier les moteurs ne fonctionnaient pas, aujourd'hui ça tourne, mais pas comme je veux,
1 s marche - 1s arrêt et continuellement, et pour chaque moteur
les cellules réagissent bien à la lumière,sur le sérial monitor, je lis les variations de lumière en fonction de la source, mais il doit manquer quelque chose,un lien entre les 2 pour que ça fonctionne bien, je cherche, je n'y connais pas grand chose, voir même ,presque rien, mais c'est très intéressant .
je mets en dessous mon code, je suis plus constructeur que programmateur, je précise, mon tracker 1 axe fonctionne très bien, le panneau solaire de 50 w me sort du 3A, à 11 h au soleil de Décembre. je pense avoir encore de meilleur résultat avec un tracker 2 axes.
merci d'avance de vos conseils,
le code en question:
/*
traque le soleil en utilisant la tension de 3 LDRs

*/

// These constants won't change:
const int sensorPinA0 = A0; // pin that the Bottom/Left sensor is attached to
const int sensorPinA1 = A1; // pin that the Right sensor is attached to
const int sensorPinA2 = A2; // pin that the Top sensor is attached to

//const int pmotorPinA0 = 13; // pin that the pan motor relay is attached to
//const int pmotorPinA1 = 12; // pin that the pan motor relay is attached to
//const int tmotorPinA0 = 11; // pin that the tilt motor relay is attached to
//const int tmotorPinA2 = 8; // pin that the tilt motor relay is attached to

// variables:
int sensorValueA0 = 0; // Bottom/Left photoresistor
int sensorValueA1 = 0; // Right photoresistor
int sensorValueA2 = 0; // Top photoresistor

int panDelay = 1000; // The amount of time the pan and tilt motor will run
int tiltDelay = 1000; // this will vary depending on motor and drive train

void setup() {
//initialize the serial port:
Serial.begin(9600);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);

// Send debugging information via the Serial monitor
Serial.begin(9600);

//Assign and set motor driver pins to low
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
pinMode(12, OUTPUT);
digitalWrite(12, LOW);
pinMode(11, OUTPUT);
digitalWrite(11, LOW);
pinMode(8, OUTPUT);
digitalWrite(8, LOW);

}

void loop() {
// read the sensor:
sensorValueA0 = analogRead(sensorPinA0);
sensorValueA1 = analogRead(sensorPinA1);
sensorValueA2 = analogRead(sensorPinA2);

// Compare sensor readings and drive pan motor left or right
// If the sensor values are equal (what we want) it will skip adjusting the pan motor
// Pan Right
if (sensorValueA0 > sensorValueA1){
digitalWrite(13, HIGH);
delay(panDelay);
digitalWrite(13, LOW);
}
// Pan Left
if (sensorValueA0 < sensorValueA1){
digitalWrite(12, HIGH);
delay(panDelay);
digitalWrite(12, LOW);
}

// Compare sensor readings and drive tilt motor up or down
// If the sensor values are equal (what we want) it will skip adjusting the tilt motor
// Tilt Down
if (sensorValueA0 > sensorValueA2){
digitalWrite(11, HIGH);
delay(tiltDelay);
digitalWrite(11, LOW);
}
// Tilt Up
if (sensorValueA0 < sensorValueA2){
digitalWrite(8, HIGH);
delay(tiltDelay);
digitalWrite(8, LOW);
}

//Print debugging information
Serial.print("Left/Bottom reading = ");
Serial.println(sensorValueA0); // the left/bottom sensor analog reading
Serial.print("Right reading = ");
Serial.println(sensorValueA1); // the right sensor analog reading
Serial.print("Top reading = ");
Serial.println(sensorValueA2); // the top sensor analog reading

delay(1000);
}

jraveneau:
aujourd'hui ça tourne, mais pas comme je veux,
1 s marche - 1s arrêt et continuellement, et pour chaque moteur
...

il te manque la gestion d'hysteresis
ça ne sert à rien de deplacer les moteurs toutes les secondes
selon la luminosité et les dispersions tu rentre en pseudo oscillation.

une mesure et un deplacement toutes les 5 minutes c'est surement amplement suffisant.

la , je sens que ça va me dépasser :wink: , sur l'autre tracker, j'ai mis 2 minutes en delay, c'est amplement suffisant, je fais les modifs, une fois que le code fonctionne, mais la , je ne sais pas ce qu'est la gestion d'hysterisis , donc , ça va pas être simple ......

jraveneau:
la , je sens que ça va me dépasser :wink: , sur l'autre tracker, j'ai mis 2 minutes en delay, c'est amplement suffisant, je fais les modifs, une fois que le code fonctionne, mais la , je ne sais pas ce qu'est la gestion d'hysterisis , donc , ça va pas être simple ......

le plus simple dans ton cas (ou du moins c'est ce que je ferais ou au moins testerais)

demarrer un cycle de mesure/positionnement pendant X secondes (10 à la louche)
ton systeme va s'equilibrer/rechercher l'optimum
une fois ces X secondes depassées, stopper mesures et deplacements moteurs ne plus rien faire pendant Y (5) minutes
à la fin du delai Y minutes demarrer un nouveau cycle mesure/positionnement.

attention , le retour à l'est n'est pas géré

j'ai modifié le pandelay et le tiltdelay à 5000 et le delay du programme à 2000 , ça fonctionne.

ce qui manque à mon avis, c'est la relation entre les LDRs et les moteurs, mon tracker 1 axe fonctionnait avec un moteur PàP
la j'ai 2 petits motoréducteur pour les essais.

mince ,partie trop tôt

1 moteur tourne 5 s s'arrête et c'est l'autre qui démarre,5 s et s'arrête, ainsi de suite.

jraveneau:
mince ,partie trop tôt

1 moteur tourne 5 s s'arrête et c'est l'autre qui démarre,5 s et s'arrête, ainsi de suite.

ta recherche d'optimum procede par approximation sur la course solaire

ce qu'il faut que tu fasse :

faire mesure de PAN , position PAN pendant 1 seconde
faire mesure de TILT , position TILT pendant 1 seconde
repeter ça 5 fois (ou autre) = durée totale 10 secondes
et ne plus rien faire pendant 5 minutes

le test que j'ai effectué, c'est sans les cellules, elles sont connectées sur A0, A1 et A2, j'ai bien la variation de lumière sur le sérial monitor , ça ne résoud pas mon problème, je cherche ce qui ne colle pas, je joins une photo du banc d'essai.
la nuit porte conseil, merci de vos messages. :sleeping:

jraveneau:
le test que j'ai effectué, c'est sans les cellules, elles sont connectées sur A0, A1 et A2, j'ai bien la variation de lumière sur le sérial monitor , ça ne résoud pas mon problème, je cherche ce qui ne colle pas, je joins une photo du banc d'essai.
la nuit porte conseil, merci de vos messages. :sleeping:

là, je suis désolé mais je ne comprend pas ce que tu tente d'expliquer

je pensais que tu testait avec une illumination artificielle ?

si tout va bien , normalement le soleil se leve demain :grin:

bon, comme je ne m'en sors pas, je repars à 0 sur un nouveau code, en essayant d'avancer par étape, c'est pas gagné, mais ça aura au moins le mérite d'essayer. pour l'instant il ne se passe rien , je continue
voici le début du nouveau code, je dis bien le début, car quand je dirais "fin", c'est que ça sera bon :roll_eyes:

//tracker solaire 2 axes-3 cellules
// jackie RAVENEAU
//le 29 -04 -2014

int sensorPinA0 = A0; // pin that the Bottom/Left sensor is attached to
int sensorPinA1 = A1; // pin that the Right sensor is attached to
int sensorPinA2 = A2; // pin that the Top sensor is attached to

int pmotorPinA0 = 13; // pin that the pan motor relay is attached to
int pmotorPinA1 = 12; // pin that the pan motor relay is attached to
int tmotorPinA0 = 11; // pin that the tilt motor relay is attached to
int tmotorPinA2 = 8; // pin that the tilt motor relay is attached to

// variables:
int sensorValueA0 = 0; // Bottom/Left photoresistor
int sensorValueA1 = 0; // Right photoresistor
int sensorValueA2 = 0; // Top photoresistor

int panDelay = 1000; // The amount of time the pan and tilt motor will run
int tiltDelay = 1000; // this will vary depending on motor and drive train

void setup() {

// Send debugging information via the Serial monitor
Serial.begin(9600);

//Assign and set motor driver pins to low
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
pinMode(12, OUTPUT);
digitalWrite(12, LOW);
pinMode(11, OUTPUT);
digitalWrite(11, LOW);
pinMode(8, OUTPUT);
digitalWrite(8, LOW);
}

void loop() {
// read the sensor:
sensorValueA0 = analogRead(sensorPinA0);
sensorValueA1 = analogRead(sensorPinA1);
sensorValueA2 = analogRead(sensorPinA2);

// Compare sensor readings and drive pan motor left or right
// If the sensor values are equal (what we want) it will skip adjusting the pan motor
// Pan Right
if (sensorValueA0 > sensorValueA1){
digitalWrite(13, HIGH);
delay(panDelay);
digitalWrite(13, LOW);
}
// Pan Left
if (sensorValueA0 < sensorValueA1){
digitalWrite(12, HIGH);
delay(panDelay);
digitalWrite(12, LOW);
}

// Compare sensor readings and drive tilt motor up or down
// If the sensor values are equal (what we want) it will skip adjusting the tilt motor
// Tilt Down
if (sensorValueA0 > sensorValueA2){
digitalWrite(11, HIGH);
delay(tiltDelay);
digitalWrite(11, LOW);
}
// Tilt Up
if (sensorValueA0 < sensorValueA2){
digitalWrite(8, HIGH);
delay(tiltDelay);
digitalWrite(8, LOW);
}

//Print debugging information
Serial.print("Left/Bottom reading = ");
Serial.println(sensorValueA0); // the left/bottom sensor analog reading
Serial.print("Right reading = ");
Serial.println(sensorValueA1); // the right sensor analog reading
Serial.print("Top reading = ");
Serial.println(sensorValueA2); // the top sensor analog reading

delay(1000);
}

bon, bie, voila, c'est standbye pour l'instant, j'aurais juste uns question ;
sur mon code tracker avec un moteur PàP, il y a une ligne #include<stepper.h> pour une code avec des servos pareil, mais pour 2 moteurs cc ?
merci

dépannage fait, merci Sam

on passe à la question suivante :smiley:

politage de 2 verins en 12 v pour 3.5 Amp/h?
passer par des relais de puissance?? , utiliser les sorties digitales plutôt que les sorties moteurs de la carte motorshield V1?
il existe des relais inverseurs?

merci d'avance

Les relais, c'est "old"; mais c'est good jusqu'à 5 A. Et si tu prends un relais à double contacts no/nc, to inverseur il est tout fait.