Go Down

Topic: Capteur de température DALLAS DS18S20 (Read 3 times) previous topic - next topic

pierreyves258

Bonjour, j'ai acheter 2 capteurs e température DS18S20.
Sur les capteurs il y a marquer DALLAS DS1820 1121C4 +919AA...

Avec le code de mon-club-elec pour le DS18B20 (http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertCapteursComplexesDS18B20ThermometreSimple) ça m'affiche ça dans le terminal:

Code: [Select]
1 capteur 1-wire present avec code adresse 64 bits : 10 10 96 54 02 08 00 64
Le capteur present n'est pas un capteur de temperature DS18B20.
Verification du code CRC de l'adresse 64 bits de ce capteur : VALIDE !
----- fin de la recherche du capteur ----

Temperature = 2.75 Degres Celsius.
...


Dans ma maison et le thermomètre a coté affiche 21.4°C...

Donc j'aimerais savoir ce qu'il faut modifier pour avoir la température avec le capteur que j'ai ...

Merci de votre aide :)

chicotore

#1
Oct 27, 2011, 12:57 pm Last Edit: Oct 27, 2011, 12:59 pm by chicotore Reason: 1
Tu as un DS18S20 et le code est pour un DS18B20 ....

Code: [Select]
Le capteur present n'est pas un capteur de temperature DS18B20

Il doit donc y avoir une différence sur la transmission des donnés entre ces deux capteurs ;)

Regarde peut-être ça =>

Code: [Select]
#include <LiquidCrystalRus.h>
#include <OneWire.h>
#include <OneWireTempSensor.h>

LiquidCrystalRus lcd(12, 11, 10, 5, 4, 3, 2);
OneWireTempSensor sensors(8);
int numdevs;
int value;
int temp;
byte newChar[8] = {
  B11000,
  B11000,
  B00110,
  B01001,
  B01000,
  B01001,
  B00110,
  B00000
};

void setup()
{
  lcd.createChar(0, newChar);
  lcd.begin(16, 2); 
  numdevs = sensors.getDevices();
}

void loop() {
  value = (int) sensors.getTempC(0);
if (value != 85)
{
    if (value < 10)
    {
      temp = value/10;
    }
    else
    {
      temp = value;
    }
}
lcd.setCursor(0,0);
lcd.print("Tемпература=");
lcd.setCursor(12,0);
lcd.print(temp);
lcd.setCursor(14,0);
lcd.write(0);
}


ici aussi => http://www.arduino.cc/playground/Learning/OneWire
Mon Blog sur l'environnement Arduino ... Tutos fait par un débutant pour les débutants ^^

http://chicowebsite.free.fr/

Artouste


Bonjour, j'ai acheter 2 capteurs e température DS18S20.
Sur les capteurs il y a marquer DALLAS DS1820 1121C4 +919AA...

Avec le code de mon-club-elec pour le DS18B20 (http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertCapteursComplexesDS18B20ThermometreSimple) ça m'affiche ça dans le terminal:

Code: [Select]
1 capteur 1-wire present avec code adresse 64 bits : 10 10 96 54 02 08 00 64
Le capteur present n'est pas un capteur de temperature DS18B20.
Verification du code CRC de l'adresse 64 bits de ce capteur : VALIDE !
----- fin de la recherche du capteur ----

Temperature = 2.75 Degres Celsius.
...


Dans ma maison et le thermomètre a coté affiche 21.4°C...

Donc j'aimerais savoir ce qu'il faut modifier pour avoir la température avec le capteur que j'ai ...

Merci de votre aide :)

bonjour
C'est un probleme récurrent avec les DS18x20
Les DS18S20 ont une résolution fixe de 9 bits
Les DS18B20 ont une résolution programmable entre 9 et 12 bits
la c'est bien un DS18S20 (code famille 10H pour un S, 28H pour un B)
Il faut donc voir le code et le modifier pour qu'il lise en 9 bits 

pierreyves258

chicotore: ça ne marche pas car je pense pense pas avoir la librairie OneWireTempSensor ...

J'avais remarquer que ce n'étais pas les mêmes ;)
Mais alors comment lire en 9bits ? (déja que je sais pas faire en 12bits ^^)

Jean-François

MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Go Up