Go Down

Topic: Projet STI2D nécessitant Arduino (Read 1 time) previous topic - next topic

Lolotte

Bonjour à tous. Je suis nouvelle et une débutante en ce qui concerne Arduino.
Je vous expose mon problème : avec deux autres personnes, nous devons monter un projet qui consiste à asperger un panneau photovoltaïque dès que le seuil maximum de température est atteint.
Pour cela, on utilise un capteur de température DS18B20 à placer sur le panneau pour pouvoir envoyer les données sur la carte Arduino. Sur cette carte Arduino est établi un programme. Ce programme doit déclencher le système d'arrosage du panneau (utilisation d'une pompe submersible dans un réservoir qui envoie l'eau à travers des tuyaux et des asperseurs)
J'espère que jusque-là, c'est assez clair. Je ne suis pas très douée en explications ^^'

Revenons à la carte Arduino. J'ai trouvé un code qui correspond quasiment à ce que je veux (je pense qu'il y a des choses à modifier) :

Code: [Select]
// Déclaration des pins utilisées
const int pin_capteur = 0;
const int pin_led_rouge = 2;
const int pin_led_verte = 3;
const int pin_led_jaune = 4;

//Variables
float temperature_max = 313.15;
float temperature_min = 303.15;
float temperature=0.0;

void setup(void)
{
   pinMode(pin_capteur,INPUT);
   pinMode(pin_led_rouge,OUTPUT);
   pinMode(pin_led_verte,OUTPUT);
   pinMode(pin_led_jaune,OUTPUT);
   Serial.begin(9600);
}

void loop (void)
{
   // On récupère la valeur de la tension en sortie du capteur puis à l'aide de l'équation, on trouve la température qui y correspond
   temperature = analogRead(pin_capteur) * 5000L / 1024L  / 10;

   //On remet à zéro les leds de 10mm
   digitalWrite(2, LOW);
   digitalWrite(3, LOW);
   digitalWrite(4, LOW);

   //On compare la température reçue aux seuils que l'on a défini lors des déclarations du programme
   if (temperature<temperature_min)digitalWrite(pin_led_jaune,HIGH);
   else if (temperature>temperature_max)digitalWrite(pin_led_rouge,HIGH);
   else digitalWrite(pin_led_verte,HIGH);

   //On envoie la valeur de la température sur le port série
   Serial.println(temperature);

   //On attend une seconde avant de recommencer
   delay(1000);

}


Je pense qu'il faut modifier le code afin qu'il réponde à ce que je veux faire : si le seuil maximum est éteint, alors la pompe se déclenche. Si le seuil minimum est atteint, alors la pompe s'arrête. Il faut aussi que je puisse brancher un relais sur la carte mais je ne sais pas comment programmer le relais. Si je pouvais avoir une réponse au plus vite, cela m'arrangerait beaucoup. Car nous devons finir le projet avant début Juin. Je vous remercie d'avance pour les éventuelles réponses que vous allez me donner. Et je m'excuse pour mes explications qui, je pense, sont "bidons" ^^'

Peter_n

The DS18B20 is a digital sensor.
It uses a single wire to communicate with the Arduino. The communication is with a digital pin.
The protocol that is used is called "One-Wire".
So you have to use a library for that "One-Wire", and also a library for the DS18B20.

You can find a tutorial here : http://www.adafruit.com/products/374

Lolotte

Do you think I must use the DallasTemperature library ?

XavierMiller

#3
Apr 09, 2014, 04:15 pm Last Edit: Apr 09, 2014, 05:23 pm by Jean-François Reason: 1
Message dans la mauvaise section : le projet n'est pas fini !

68tjs

#4
Apr 09, 2014, 05:25 pm Last Edit: Apr 09, 2014, 05:27 pm by 68tjs Reason: 1
Tu es vraiment très mal partie :
Quote
Je pense qu'il faut modifier le code afin qu'il réponde à ce que je veux faire

Quand je vois ça :
temperature = analogRead(pin_capteur) * 5000L / 1024L  / 10;
qui est valable pour LM35 et non pas un ds18b20 je me dis que tu peux tout recommencer, ou plutôt commencer à travailler : lire les datasheets des composants et chercher les librairies associée sur le site Arduino ou avec gogole au lieu de pomper du code sans le comprendre.
Le sujet tu le connais depuis combien de semaines ?
Tu dois le rendre pour quand ?

Je ne sais pas si tu es en S-SI ou en STI2D mais Cette année les STI2D font très fort, ça sent la cata pour le bac.
Ceux qui savent qu'ils ne savent rien en connaisse autant que ceux qui croient tout savoir et qui n'en connaissent pas plus qu'eux.
Pierre DAC.

infobarquee

bonjour,
je suis du même avis que 68tjs
j'aimerai savoir comment avoir des PV et PS dans les sims free play sur ipad :)
j'attends la réponse histoire de savoir si les bacheliers sont capables de chercher un tant soit peu sur google une information.
je suis certain que tu connais déjà la solution.

par contr pour chercher une info, même pour un truc qu'on ne connait pas, y a plus personne.
tu pompe un prog sur le net, sans savoir ce qu'il fait et pour quel type de sonde avec le culot de changer les commentaires.

juste un truc, ca correspond à quoi ca?
Code: [Select]
float temperature_max = 313.15;
float temperature_min = 303.15;
AUCUNE AIDE PAR MP

Lolotte

Ce sont les seuils de température maximum et minimum en Kelvin (313.15°K = 40°C et 303.15°K = 30°C). Mais je pense qu'il faut que je change tout le programme.

Et ce n'est pas la peine de me parler comme ça. Je vous l'ai dit : je suis nouvelle en ce qui concerne le programme Arduino. Si vous me parliez mieux, je n'aurai pas à être désagréable.

Bref, je reviens sur le sujet : je sais ce que fait le programme. Je l'ai quand même testé avant de le poster ici. Il faudrait quand même que le programme que je dois faire permette de déclencher la pompe grâce aux données envoyées par le capteur. Je ne vais fixer qu'une seule valeur afin de ne pas compliquer le système.

infobarquee


Ce sont les seuils de température maximum et minimum en Kelvin (313.15°K = 40°C et 303.15°K = 30°C). Mais je pense qu'il faut que je change tout le programme.

Et ce n'est pas la peine de me parler comme ça. Je vous l'ai dit : je suis nouvelle en ce qui concerne le programme Arduino. Si vous me parliez mieux, je n'aurai pas à être désagréable.

Bref, je reviens sur le sujet : je sais ce que fait le programme. Je l'ai quand même testé avant de le poster ici. Il faudrait quand même que le programme que je dois faire permette de déclencher la pompe grâce aux données envoyées par le capteur. Je ne vais fixer qu'une seule valeur afin de ne pas compliquer le système.


franchement, tu pompe un prog qui n'a rien a voir avec ton module et tu cherches à le bidouiller pour que ca fonctionne.
DS18B20 arduino sur google donne 350000 réponses avec schéma et tout ce qu'il faut.
entre le fait de ne pas être doué avec arduino et ne pas être doué pour une recherche, il y a un monde.
de plus il y a moulte topics sur le forum concernant ce module, dont certains pas très anciens.
AUCUNE AIDE PAR MP

john_lenfr


Mais je pense qu'il faut que je change tout le programme.

Oui

Quote
Il faudrait quand même que le programme que je dois faire permette de déclencher la pompe grâce aux données envoyées par le capteur.

A toi de nous dire quel processus tu prévois, sans vouloir déjà rentrer dans la programmation Arduino

Quote
Je ne vais fixer qu'une seule valeur afin de ne pas compliquer le système.

Pourquoi, prévois déjà tes seuils mini et maxi, ta programmation n'en sera que meilleure.

Oublies dans un premier temps la programmation sur Arduino, un problème est d'autant plus facile à traduire qu'il est bien posé à la base.

Go Up