Pages: [1]   Go Down
Author Topic: DS18B20 Onewire.H  (Read 1662 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai fait l'acquisition d'un capteur de température DS18B20 étanche pour mon projet. J'ai voulu tester ce code là :
Code:
#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;
   
}

Je fais "verifier" et j'ai comme erreur :
Code:
DS18S20:6: error: 'OneWire' does not name a type
DS18S20.ino: In function 'float getTemp()':
DS18S20:27: error: 'ds' was not declared in this scope
DS18S20:33: error: 'OneWire' has not been declared
DS18S20:43: error: 'ds' was not declared in this scope

J'me dis donc que le ".h" n'est pas pris en compte. J'ai essayer de le changer de place, de le mettre dans un dossier demander dans le "reamdme" mais rien n'y fait..
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai réussi, mais maintenant le capteur n'est pas reconnu..

Il m'affiche seulement "-1000" dans le terminal..
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai réussi, mais maintenant le capteur n'est pas reconnu..

Il m'affiche seulement "-1000" dans le terminal..

fait déjà un test avec ça
http://arduino.cc/forum/index.php/topic,138357.0.html
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

--------------
.
.
END OF SCAN.
.

Juste sa..
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Tu as bien mis la résistance entre la broche 2 et VCC ?

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

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour
en plus du conseil de skywodd sur la R
tu a cablé comment ton ds18B20 ,
attention si c'est en mode parastic power de bien relier GND et VCC (c'est etonnant mais c'est prevu comme ça)  smiley-mr-green
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voilà le mien..


* IMG_20130329_121612.jpg (3202.87 KB, 3264x2448 - viewed 77 times.)
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voilà le mien..

a l'oeil c'est mal cablé et en plus il y a des manques de continuité
le signal DQ doit etre pris avant la resistance et mettre le signal sur TX ce n'est pas le "top"
mets ça sur une autre broche (la 8 comme dans mon exemple)

Ta resistance a quelle valeur ?

le bon cablage c'est ça
« Last Edit: March 29, 2013, 07:40:20 am by Artouste » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un énorme merci, ca marche nickel ! smiley

J'aurai un truc a presenté pour ma revue de projet au moins
Logged

Pages: [1]   Go Up
Jump to: