Aller au contenu


Photo
- - - - -

Capteur température


  • Veuillez vous connecter pour répondre
22 réponses à ce sujet

#1 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 27 avril 2013 - 04:05

Bonjour,

Je me lance dans un mini projet pour commencer :
un thermomètre qui affiche la température sur des afficheurs 7 segments

J'ai commencé la prise en main du capteur qui est un DS1820 (pas DS18B20 ni DS18S20 mais bien un DS1820 !).

J'ai récupéré sur le net un programme (j'ai encore un peu de mal à coder les arduino mais ça va venir !) que voici :


#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2

void setup(void) {
Serial.begin(9600);
}

void loop(void) {
float temperature = getTemp();
Serial.println(temperature);

delay(100); //just here to slow down the output so it is easier to read

}


float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}

if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad


for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}

ds.reset_search();

byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;

return TemperatureSum;

}

Vous l'aurez compris, le programme renvoie la température sur la liaison série en permanence.
La température lue devrait avoisiner les 20°C mais j'obtiens 2.75°C
En revanche, la valeur varie bien quand je chauffe ou refroidis le capteur.
J'utilise une résistance de pull-up de 4.8k environ formé à partir de deux résistances de 10k en parallèles.

Si quelqu'un a une idée, elle est la bienvenue !

Merci à vous et bon week end malgré le temps... Parfait pour faire de l'électronique :bye:/>

#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 27 avril 2013 - 04:55

Je ne connais pas le DS1820 et je n'utilise pas d'arduino mais j'ai fait un tour sur la datasheet de DS1820 et j'ai lu qu'il avait une communication sur un fil, qu'il était précis à 0,5° près ( sauf si on fait un calcul supplémentaire ) ...

Es tu sur de cette partie du code

for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}

ds.reset_search();

byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;

Mon petit doigt me dis que tu as fait une erreur ici ... surtout que tu as 0,75 à la fin de ta mesure ... alors que c'est censé être précis à 0,5 près et que visiblement tu ne fais pas le calcul supplémentaire ...

j'ai l'impression que tu as divisé par 2 la valeur de chacun des bits !
et donc que tu reçoit
00001011 que tu traduit donc 2 +0,5+0,25 = 2,75 ... au lieu de 4 + 1 + 0,5 = 5,5° ...

ensuite cela n'explique pas la différence entre 5,5° et 20 ° ... si tu faisais plus de tests ... ça pourrait aider ...

De même explicite la partie du code que j'ai reprise ça pourrait aider... ( à partir de "ds.reset_search();" )

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 27 avril 2013 - 05:35

Salut et merci pour la réponse

je dois t'avouer que j'ai fais un copier coller du code sans trop me poser de questions. Quand j'ai vu que ça ne marchait pas j'ai essayé de décortiquer le programme sans résultat !

Quand je dis 20°C c'est une valeur approximative mais en effet je ne vois pas le lien entre 5.5°C et une valeur approchant les 20°C !

#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 27 avril 2013 - 06:20

Salut et merci pour la réponse

je dois t'avouer que j'ai fais un copier coller du code sans trop me poser de questions. Quand j'ai vu que ça ne marchait pas j'ai essayé de décortiquer le programme sans résultat !

Quand je dis 20°C c'est une valeur approximative mais en effet je ne vois pas le lien entre 5.5°C et une valeur approchant les 20°C !


En fait moi j'ai du mal avec le langage arduino ... mais je vais essayer de te faire un petit truc... tu auras surement à corriger les erreurs de syntaxes du au langage ... mais j'essais de faire ça dans la nuit =)

à bientôt !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#5 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 27 avril 2013 - 08:48

Ok c'est cool merci !
Ne fais pas ça toute la nuit non plus !
:lazy2: :lazy2:

A bientôt alors ! et encore merci

#6 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 28 avril 2013 - 01:38

Ok c'est cool merci !
Ne fais pas ça toute la nuit non plus !
:lazy2:/> :lazy2:/>

A bientôt alors ! et encore merci

essaye ça :

#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2

void setup(void) {
Serial.begin(9600);
}

void loop(void) {
float temperature = getTemp();
Serial.println(temperature);

delay(100); //just here to slow down the output so it is easier to read

}


float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}

if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad


for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}

float TemperatureSum = 0.5*data[0]+data[1]+ 2*data[2]+4*data[3]+8*data[4]+16*data[5]+32*data[6]+64*data[7];

return TemperatureSum;

}


regarde ce que cela retourne ( corrige éventuellement les erreur de syntaxe du type "." au lieu de "," si nécessaire ) et poste le résulatat ici =)

Ensuite si cela retourne un truc toujours incohérent

essaye successivement de faire un " return data[0] puis data[1] etc... en gardant une température a peu près constante autour de toi.
et n'hésite pas à la faire plusieurs fois .

Par contre avec la partie du code que j'ai modifié tu as que les valeur positive de température.

Si ça marche je te poste un autre bout de code pour les valeurs négative !

à bientôt !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#7 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 28 avril 2013 - 09:19

Salut et merci !

J'obtient des valeurs très incohérentes :

8039.00
-1000.00
8039.00
-1000.00
8039.00
-1000.00
8039.00
-1000.00
8039.00
-1000.00
8007.00
-1000.00
8007.00
-1000.00
8007.00

Quand je chauffe, ça décend à 7000 etc...
Les valeurs -1000 correspondent à une sorte d'erreur, quand je déconnecte la masse ou le vcc ou l'entrée numérique je reçois en permanence -1000


C'est bizarre... Je vais voir ce que je peux changer dans le programme..

#8 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 28 avril 2013 - 10:06

data[0] : 33
data[1] : -10
data[2] : 75
data[3] : 70
data[4] : 255
data[5] : 255
data[6] : 12
data[7] : 16

Si on fait le calcule on retrouve 7964.5

Mais je crois que ton calcul ne va pas. C'est un chiffre à virgule, du coup c'est plus complexe (il faut tenir compte de la mantisse etc...)

#9 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 28 avril 2013 - 10:38

data[0] : 33
data[1] : -10
data[2] : 75
data[3] : 70
data[4] : 255
data[5] : 255
data[6] : 12
data[7] : 16

Si on fait le calcule on retrouve 7964.5

Mais je crois que ton calcul ne va pas. C'est un chiffre à virgule, du coup c'est plus complexe (il faut tenir compte de la mantisse etc...)


Ok c'est parfaitement normale que ce que je t'ai proposé ne marche pas x) Je pensais que les data[i] etaient des valeurs binaire ...

Si cela marchait c'est que c'était bien le cas ... Sinon je voulais que tu poste ce deuxième message pour me dire quel était la nature de data[i] et visiblement ce sont des int ^^

Donc il est évident que mon calcul ne va pas =) Mais en tout cas je trouve qu'on a avancé !

Reste à comprendre ce que traduisent ces data[i] ... D'ailleur si tu pouvais poster le .h que tu utilise ... je pense que l'explication des data[i] se trouve dedans =)

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#10 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 28 avril 2013 - 02:14

Ok c'est parfaitement normale que ce que je t'ai proposé ne marche pas x) Je pensais que les data[i] etaient des valeurs binaire ...

Si cela marchait c'est que c'était bien le cas ... Sinon je voulais que tu poste ce deuxième message pour me dire quel était la nature de data[i] et visiblement ce sont des int ^^

Donc il est évident que mon calcul ne va pas =) Mais en tout cas je trouve qu'on a avancé !

Reste à comprendre ce que traduisent ces data[i] ... D'ailleur si tu pouvais poster le .h que tu utilise ... je pense que l'explication des data[i] se trouve dedans =)


Vu que l'échantillon donné montre des valeurs de -10 à 255, et en considérant que -10 correspond à une erreur de lecture, ça ressemble à une valeur analogique codé sur un octet (2^8 valeurs de 0 à 2^8-1). Connaissant l'amplitude en température du capteur (tmin, tmax, voir datasheet), ne faudrait-il pas mapper les valeurs de data sur cette amplitude de mesure ?
Dans la datasheet, il doit aussi y avoir des informations sur le format des données renvoyées (voir page 4).
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#11 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 28 avril 2013 - 07:05

Merci pour vos réponses
Je dois avouer que je me perds un peu dans ce que tu me dis R1D1 ^^

Les data[i] représentent les données dispo dans le registre du capteur mais sous une forme spéciale puisque c'est un chiffre à virgule

Regarde l'explication sur ce lien, c'est très bien expliqué :

http://skyduino.wordpress.com/2012/04/26/arduino-capteur-de-temperature-ds18b20/

En revanche c'est pour un DS18B20 mais le principe reste le même.

#12 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 519 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 28 avril 2013 - 10:04

Étalonner votre sonde avec un thermomètre a coter pour voir la différence de température.
Ensuite vous regarderez le programme.
c'est mon avis.

Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#13 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 28 avril 2013 - 11:32

Merci pour vos réponses
Je dois avouer que je me perds un peu dans ce que tu me dis R1D1 ^^

Les data[i] représentent les données dispo dans le registre du capteur mais sous une forme spéciale puisque c'est un chiffre à virgule

D'après la datasheet que je t'ai mise en lien, comme d'ailleurs le tableau dans le lien que tu donnes, sur les 8 emplacements de la mémoire, seuls deux t'intéressent : ceux d'index 0 et 1, qui contiennent la valeur de température, le premier représentant les LSB, le second les MSB. Dans le cas de ton capteur, les informations contenues dans ces registres sont sûrement :
bit 7  bit 6  bit 5  bit 4  bit 3  bit 2  bit 1  bit 0  
2^6    2^5    2^4    2^3    2^2    2^1    2^0    2^-1
2^7    2^7    2^7    2^7    2^7    2^7    2^7    2^7
Ce qui voudrait dire que le bit 0 du registre 0 correspond à la décimale (0.5°C ou pas), les bits 1 à 7 du registre 0 forment la valeur analogique de température mesurée. Du coup, 0b00110010 équivaut à 25°C (0x64 + 0x32 +1x16 +1x8 +0x4 +0x2 +1x1=25 et 0x0.5 = 0), 0b00101011 équivaut à 21,5°C (0x64 + 0x32 +1x16 +0x8 +1x4 +0x2 +1x1=21 et 1x0.5 = 0.5).
Là où ça se complique, c'est que le registre 1 donne (apparemment) le signe de la mesure. Tant qu'il est à 0, le registre LSB peut être lu comme je viens de le décrire, mais quand il est à 1, la valeur du LSB doit être complémentée à 2 pour être ensuite convertie en valeur en degré.
Par exemple, si tu as : 0xFFCE (soit MSB = 0b11111111 et LSB = 0b11001110), il ne faut pas interpréter le LSB comme valant (64+32+4+2+1+0*0.5) = 103, mais comme (complément à deux de 0xFFCE : 103-128) = -25. L'explication n'est pas forcément exacte (si quelqu'un peut vérifier que je ne me suis pas planté dans mes calculs :)), mais c'est l'idée.

Regarde l'explication sur ce lien, c'est très bien expliqué :

http://skyduino.wordpress.com/2012/04/26/arduino-capteur-de-temperature-ds18b20/

En revanche c'est pour un DS18B20 mais le principe reste le même.

Mieux vaut utiliser la bonne datasheet, même si effectivement, ce tutoriel résume bien le principe général.
Comme l'a dit Melmet, garde un vrai thermomètre à portée de main pour avoir une idée des valeurs que tu devrais lire.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#14 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 29 avril 2013 - 01:32

D'après la datasheet que je t'ai mise en lien, comme d'ailleurs le tableau dans le lien que tu donnes, sur les 8 emplacements de la mémoire, seuls deux t'intéressent : ceux d'index 0 et 1, qui contiennent la valeur de température, le premier représentant les LSB, le second les MSB. Dans le cas de ton capteur, les informations contenues dans ces registres sont sûrement :

bit 7  bit 6  bit 5  bit 4  bit 3  bit 2  bit 1  bit 0  
2^6    2^5    2^4    2^3    2^2    2^1    2^0    2^-1
2^7    2^7    2^7    2^7    2^7    2^7    2^7    2^7
Ce qui voudrait dire que le bit 0 du registre 0 correspond à la décimale (0.5°C ou pas), les bits 1 à 7 du registre 0 forment la valeur analogique de température mesurée. Du coup, 0b00110010 équivaut à 25°C (0x64 + 0x32 +1x16 +1x8 +0x4 +0x2 +1x1=25 et 0x0.5 = 0), 0b00101011 équivaut à 21,5°C (0x64 + 0x32 +1x16 +0x8 +1x4 +0x2 +1x1=21 et 1x0.5 = 0.5).
Là où ça se complique, c'est que le registre 1 donne (apparemment) le signe de la mesure.


D'où le calcul que j'avais proposé ne prenant pas en compte le cas de la valeur négative

de cette façon ...
" float TemperatureSum = 0.5*data[0]+data[1]+ 2*data[2]+4*data[3]+8*data[4]+16*data[5]+32*data[6]+64*data[7]; "

hors data[i] semblerait être un int signé vu les valeurs -10 33 75 etc... qui ont été retournées

Donc ça me chagrine un peu moi qui m'attendait à ce que cela soit des 0 ou des 1 ^^

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#15 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 29 avril 2013 - 08:02

Merci à vous deux !
Je me suis renseigné et il s'avère que le DS1820 n'est plus utilisé car il comporte un beug !! Du coup il faut que je retourne au magasin d'électronique pour le faire échanger par un S20 ou B20

#16 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 30 avril 2013 - 01:40

Merci à vous deux !
Je me suis renseigné et il s'avère que le DS1820 n'est plus utilisé car il comporte un beug !! Du coup il faut que je retourne au magasin d'électronique pour le faire échanger par un S20 ou B20


par curiosité : où as tu eu cette info ? Et quel est le bug en question ?

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#17 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 01 mai 2013 - 12:32

Sur internet on trouve pas mal de forum (souvent anglais) qui dise que ce composant a eu pas mal de problème et qu'il n'est plus commercialisé et a été remplacé car il peut donner une erreur jusqu'à 3°C !

Mais bon, je vais le garder car j'ai réussi à le faire fonctionner avec la bibliothèque DallasTemperature.h :yes:/>

Du coup, je vais afficher la température sur écran à 7 segments, j'ai un écran LCD mais pas envie de l'utiliser pour ça :)/>

Je posterai ma première création en arduino ici lol

#18 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 09 mai 2013 - 05:59

et voilà petit projet qui avance très bien, plus qu'à placer tous ces fils sur un circuit imprimé :)

d'ailleurs, que faut-il prévoir si je veux faire un circuit imprimé pour la version final ? Un atmega328 avec bootloader ? Un quartz de 16 mega, un reset avec résistance de pull down... ?

Image(s) jointe(s)

  • thermomètre_arduino.png


#19 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 12 mai 2013 - 10:07

Bravo ! smile.gif

Ca fait plaisir de voir des projets avancer !
Pour ce qui est du PCB final, j'aurais tendance à dire qu'il te faut faire un clone de l'Arduino (toute la doc est supposée être sur leur site), et reproduire la connectique que tu as testée sur ta breadboard.
Par contre, c'est à mon avis un peu gâché d'utiliser un Atmega 328 pour une application qui reste simple et dont le code doit être assez réduit. Je te conseille de regarder d'une part les autres modèles d'Arduino (Mini et Nano), pour voir les différences avec la Uno et voir si elles ne seraient pas plus adaptées (en termes d'entrées et de capacités de calculs), et d'autre part, les Atmega correspondant. L'idéal étant, paraît-il, les PIC, pour lesquelles la gamme de puces couvre la plupart des besoins (ce sont les échos que j'ai entendu).


R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#20 Maxuino

Maxuino

    Membre

  • Membres
  • 21 messages

Posté 13 mai 2013 - 08:25

Merci des conseils

Je préfère rester dans la gamme des AVR d'atmel

Je pense garder l'atmega 328 avec le bootloader car sinon j'ai peur de galérer pour programmer si je prend un autre modèle?




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users