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]