Probleme Programme Sonde DS18B20(dallas)

Bonjour, je m'exprime car j'ai problème avec mon programme!

le montage est simple, j'ai une écan LCD Keypad shield qui est branché sur la carte Arduino, mais j'aimerais bien branché ma sonde donc DS18B20, ce capteur sur ma carte, et non sur le shield, car ma sonde à un branchement en broche et non en fil, et vu que l'écran keypad shield ne comporte pas d'emplacement de broche pour les branchements, c'est assez embêtant !! Donc tout simplement, je me demandais si je pouvais branché ma sonde juste en dessous de mon écran, genre en Analogique quoi ou en Numérique. (en gros en pin quelque chose^^)
Donc en bref, la sonde capte la température, elle est envoyé à la carte arduino, il affiche la temperature sur l'écran !

Ma demande est simple ce programme ci dessous


 #include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

//DS18b20 connected to D13
#define DS18B20 13
// Connections: Sainsmart LCD/Keypad shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
OneWire ourWire(DS18B20);
DallasTemperature sensors(&ourWire);

void setup()
{
//Serial.begin(9600);
delay(1000);
//start reading
sensors.begin();
//setup the LCD
lcd.begin(16, 2); // start the library
lcd.setCursor(0,0);
lcd.print(“TEMPERATURE”);
}

void loop()
{
//read temperature and output via LCD
sensors.requestTemperatures();
lcd.setCursor(0,1);
lcd.print(sensors.getTempCByIndex(0));
lcd.setCursor(6,1);
lcd.print(“celsius”);
} [code]
---------------------------------------

Ici il y a le code de la sonde sans l'écran ! elle est branché en pin 8

---------------------------------------
[code] #include <OneWire.h>

int DS18S20_Pin = 8; //DS18S20 Signal pin sur le port 8

//Temperature 
OneWire ds(DS18S20_Pin);  //digital pin 8

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

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


float getTemp(){
 //retour de la temperature de la sonde DS18S20 en degrès Celsius

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

 if ( !ds.search(addr)) {
     //Plus de capteur dans la chaîne, nouvelle recherche 
     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); 

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

  
 for (int i = 0; i < 9; i++) { 
   data[i] = ds.read();
 }
  
 ds.reset_search();
  
 byte MSB = data[1];
 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB); 
 float TemperatureSum = tempRead / 16;
  
 return TemperatureSum;
  
} [code]
-------------------------------------


Merci d'avance, je m'y connait pas trop en codage Arduino, mais j'apprend petit à petit..

[/code]
[/code]

Bonjour,

Mets ton code entre balises. Voir ICI

Effectivement le ldc keypad ne rapporte pas les connecteurs de l'arduino

  • soit tu peux y souder des pinheaders femelle (ce que j'ai fait personnellement)
  • soit tu soudes 3 fils (ou 2 fils) pour connecter ton capteur de température.

Remarque: je ne vois pas trop en quoi c'est un problème de programme

Blackasus:
le montage est simple, j'ai une écan LCD Keypad shield qui est branché sur la carte Arduino, mais j'aimerais bien branché ma sonde donc DS18B20, ce capteur sur ma carte, et non sur le shield, car ma sonde à un branchement en broche et non en fil, et vu que l'écran keypad shield ne comporte pas d'emplacement de broche pour les branchements, c'est assez embêtant !! Donc tout simplement, je me demandais si je pouvais branché ma sonde juste en dessous de mon écran, genre en Analogique quoi ou en Numérique. (en gros en pin quelque chose^^)

tu peux inserer entre les deux un "arduino sensor shield v4" et utiliser un des connecteurs analogiques pour cabler ta sonde
il faudra modifier le soft pour utiliser cette pin analogique en digital

kamill:
Bonjour,

Mets ton code entre balises. Voir ICI

Effectivement le ldc keypad ne rapporte pas les connecteurs de l'arduino

  • soit tu peux y souder des pinheaders femelle (ce que j'ai fait personnellement)
  • soit tu soudes 3 fils (ou 2 fils) pour connecter ton capteur de température.

Remarque: je ne vois pas trop en quoi c'est un problème de programme

En gros tu vois ici sur le code Sonde_ecran lcd, la sonde est branché en :

//DS18b20 connected to D13

Moi j'aimerais la branché en :

 int DS18S20_Pin = 8; //DS18S20 Signal pin sur le port 8

//Temperature 
OneWire ds(DS18S20_Pin);  //digital pin 8

Tout simplement voila, mais le problème c'est pas le branchement, c'est juste de modifier le programme pour que je le branche en pin 8 digital c'est tout

Blackasus:
Tout simplement voila, mais le problème c'est pas le branchement, c'est juste de modifier le programme pour que je le branche en pin 8 digital c'est tout

Bonsoir
je ne comprend pas bien ton probleme

il te suffit juste de definir le pin que tu souhaite utiliser pour le 1W juste là :

int DS18S20_Pin = 8;
par
int DS18S20_Pin = ton pin (çà peut etre n'importe quel pin , cis 0,1, ...... X , A0....Ay)
NB tout les pins sont exploitables , mais tous ne sont pas conseillés (exemple 0 et 1 pour un uno)

Blackasus:
En gros tu vois ici sur le code Sonde_ecran lcd, la sonde est branché en :

//DS18b20 connected to D13

Moi j'aimerais la branché en :

 int DS18S20_Pin = 8; //DS18S20 Signal pin sur le port 8

//Temperature
OneWire ds(DS18S20_Pin);  //digital pin 8





Tout simplement voila, mais le problème c'est pas le branchement, c'est juste de modifier le programme pour que je le branche en pin 8 digital c'est tout

et

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

tu ne peux pas mettre le 18s20 sur pin 8